using System.Linq;
using System.Web.Mvc;
using Organization.Project.Common.Dal.Objects;
using Organization.Project.Common.Enums.Bll;
using Organization.Project.Common.Enums.UI;
using Organization.Project.Common.Authentication;
using Organization.Project.Common.Bll;
using Organization.Project.Common.Configuration;
using Organization.Project.Web.Helpers;
using Organization.Project.Web.Models.Popups;
using Organization.Project.Web.Models.Stores;
using Organization.Project.Web.ViewData;
using Organization.Project.Web.Extensions;
using System.Collections.Generic;
namespace Organization.Project.Web.Controllers
{
///
/// Controller for stores-related operations
///
public class StoresController : BaseController
{
#region User Defined Variables
private readonly IStoresManager storesManager;
private readonly IReferenceBookManager referenceBookManager;
#endregion
#region Constructor
///
/// Constructor
///
/// authentication instance
/// account manager instance
/// cart instance
/// Project configuration instance
/// reference books instance
/// stores manager instance
public StoresController(IAuthentication auth, IAccountManager authManager, IProjectCart cart, IProjectConfiguration config, IReferenceBookManager referenceBookManager, IStoresManager storesManager)
: base(auth, authManager, cart, config)
{
this.storesManager = storesManager;
this.referenceBookManager = referenceBookManager;
}
#endregion
#region Public Methods
///
/// Shows view for searching of stores
///
/// view for stores search
[ForceNoCache]
public ActionResult Index()
{
var viewData = CreateViewData(ProjectWebPage.Where2Buy);
var countries = referenceBookManager.GetAllCountries().ToArray();
ICountry firstCountry = countries.FirstOrDefault();
viewData.StoresModel = new StoresModel
{
Countries = countries.Select(c => new KeyValuePair