private IEnumerable<StoreViewModel> GetStores()
        {
            var list = new List<StoreViewModel>();
            IEnumerable<string> storeNames = LoadStoreNames();
            IEnumerable<string> streetNames = LoadStreetNames();
            IEnumerable<string> firstNames = LoadFirstNames();
            IEnumerable<string> lastNames = LoadLastNames();

            for ( int i=0; i < 25; i++ )
            {
                string storeName = storeNames.ElementAt(_random.Next(0, storeNames.Count() - 1));
                string streetName = streetNames.ElementAt(_random.Next(0, streetNames.Count() - 1));
                string firstName = firstNames.ElementAt(_random.Next(0, firstNames.Count() - 1));
                string lastName = lastNames.ElementAt(_random.Next(0, lastNames.Count() - 1));
                var store =
                    new StoreViewModel
                    {
                        StoreId = _random.Next(100000, 999999),
                        Name = storeName,
                        AddressLine1 = String.Format("{0} {1}", _random.Next(100, 10000), streetName),
                        City = "Atlanta",
                        State = "GA",
                        ZipCode = _random.Next(30000, 31000).ToString(),
                        SalesPerson = String.Format("{0} {1}", firstName, lastName),
                        StoreTypeId = _random.Next(1, 4)
                    };
                list.Add(store);
            }

            return list;
        }
Example #2
0
        public ActionResult Details(int?id, [FetchStore(KeyName = "id")] StoreEntity entity)
        {
            if (id == null || entity == null)
            {
                ModelState.AddModelError("", "参数验证失败.");
                return(View());
            }

            var vo = new StoreViewModel().FromEntity <StoreViewModel>(entity
                                                                      , model => model.Resources = new ResourceViewModel().FromEntities <ResourceViewModel>(
                                                                          _resourceRepo.Get(r => r.SourceId == model.Id &&
                                                                                            r.SourceType == (int)SourceType.StoreLogo).ToList())
                                                                      );

            return(View(vo));
        }
        public void TestPriceIsUpdatedWhenFezSizeChanges()
        {
            
            StoreViewModel target = new StoreViewModel(basket);
            target.SelectedFezSize = new FezSize("Test Fez Size", 1.2);
            target.SelectedFezStyle = new FezStyle("Long Description", "Short", 15.0m, true);
            Assert.AreEqual((15.0 * 1.2), target.Price, "Target price is wrong");

            //target.PropertyChanged += (sender, e) =>
            //{
                
            //};
            target.SelectedFezSize = new FezSize("Test Fez Size", 1.2);
            target.SelectedFezStyle = new FezStyle("FezStyle", "FS", 20.0m, true);
            Assert.AreEqual((20.0 * 1.2), target.Price, "modified price is wrong");
        }
Example #4
0
        public async Task <ActionResult> EditInDatabase(StoreViewModel storeViewModel)
        {
            if (!ModelState.IsValid)
            {
                storeViewModel.companies = await companyRepository.List();

                return(View(storeViewModel));
            }


            Stores store = StoreViewModelConverter.toStore(storeViewModel, new Stores());

            storeRepository.Update(store);

            return(RedirectToAction("Index"));
        }
        public IActionResult Add(StoreViewModel model)
        {
            var rowsAffected = dbConnection.Execute(@"
            INSERT INTO store(Name, Street, City, State, Zip, Phone)
                VALUES (@Name, @Street, @City, @State, @Zip, @Phone)
                ", new {
                Name   = model.Name,
                Street = model.Street,
                City   = model.City,
                State  = model.State,
                Zip    = model.Zip,
                Phone  = model.PhoneNumber,
            });

            return(RedirectToAction("Index"));
        }
        // GET: api/Stores
        //[HttpGet]
        //public async Task<ActionResult<IEnumerable<Stores>>> GetStores()
        //{
        //    return await _context.Stores.ToListAsync();
        //}

        //[HttpGet]
        //public IEnumerable<Store> GetAllStores()
        //{
        //    return _storeRepo.GetStores();
        //}
        //[HttpGet]
        public ActionResult StoreLocations()
        {
            var svm    = new List <StoreViewModel>();
            var stores = _storeRepo.GetStores();

            foreach (var item in stores)
            {
                var store = new StoreViewModel();
                store.StoreId       = item.StoreId;
                store.StoreLocation = item.StoreLocation;
                svm.Add(store);
            }

            return(View(svm));
            //return View(_storeRepo.GetStores());
        }
Example #7
0
        public IActionResult Edit(int id, StoreViewModel storeViewModel)
        {
            var store = _dbContext.Stores.Find(id);

            if (!ModelState.IsValid)
            {
                storeViewModel.Companies   = _dbContext.Companies.ToList();
                storeViewModel.CompanyName = store.Company.Name;
                return(View(storeViewModel));
            }

            store.Name      = storeViewModel.Name;
            store.CompanyId = storeViewModel.SelectedCompany;
            _dbContext.SaveChanges();
            return(RedirectToAction(nameof(StoreList)));
        }
Example #8
0
        public IActionResult AddStore(StoreViewModel storeViewModel)
        {
            if (!ModelState.IsValid || storeViewModel.SelectedCompany == 0)
            {
                storeViewModel.Companies = _dbContext.Companies.ToList();
                return(View(storeViewModel));
            }
            Store store = new Store();

            store.CompanyId = storeViewModel.SelectedCompany;
            store.Name      = storeViewModel.Name;
            _dbContext.Stores.Add(store);
            _dbContext.SaveChanges();

            return(RedirectToAction(nameof(StoreList)));
        }
Example #9
0
        private Mock <IStoreViewModelFactory> CreateStoreViewModelFactory(string[] numbers)
        {
            Mock <IStoreViewModelFactory> factory = new Mock <IStoreViewModelFactory>();

            foreach (var number in numbers)
            {
                var store = new StoreViewModel
                {
                    Number = number
                };
                factory.Setup(
                    r => r.CreateStoreViewModel(It.Is <CreateStoreViewModelParam>(param => param.Store.Number == number)))
                .Returns(store);
            }
            return(factory);
        }
Example #10
0
        public async Task <IActionResult> UpdateStore(StoreViewModel model)
        {
            AddPaymentMethods(StoreData, model);

            bool needUpdate = false;

            if (StoreData.SpeedPolicy != model.SpeedPolicy)
            {
                needUpdate            = true;
                StoreData.SpeedPolicy = model.SpeedPolicy;
            }
            if (StoreData.StoreName != model.StoreName)
            {
                needUpdate          = true;
                StoreData.StoreName = model.StoreName;
            }
            if (StoreData.StoreWebsite != model.StoreWebsite)
            {
                needUpdate             = true;
                StoreData.StoreWebsite = model.StoreWebsite;
            }

            var blob = StoreData.GetStoreBlob();

            blob.NetworkFeeDisabled           = !model.NetworkFee;
            blob.MonitoringExpiration         = model.MonitoringExpiration;
            blob.InvoiceExpiration            = model.InvoiceExpiration;
            blob.LightningDescriptionTemplate = model.LightningDescriptionTemplate ?? string.Empty;
            blob.PaymentTolerance             = model.PaymentTolerance;

            if (StoreData.SetStoreBlob(blob))
            {
                needUpdate = true;
            }

            if (needUpdate)
            {
                await _Repo.UpdateStore(StoreData);

                StatusMessage = "Store successfully updated";
            }

            return(RedirectToAction(nameof(UpdateStore), new
            {
                storeId = StoreData.Id
            }));
        }
        public ActionResult Checkout()
        {
            if (IsActiveSession())
            {
                int       userId = (int)Session["userId"];
                var       data   = UserProcessor.GetUser(userId);
                UserModel model  = new UserModel
                {
                    Id             = data.Id,
                    FirstName      = data.FirstName,
                    LastName       = data.LastName,
                    CompanyName    = data.CompanyName,
                    TaxId          = data.TaxId,
                    TobaccoLicense = data.TobaccoLicense,
                    EmailAddress   = data.EmailAddress,
                    Address1       = data.Address1,
                    Address2       = data.Address2,
                    City           = data.City,
                    State          = data.State,
                    Zip            = data.Zip
                };
                ViewBag.userId         = model.Id;
                ViewBag.FirstName      = model.FirstName;
                ViewBag.LastName       = model.LastName;
                ViewBag.CompanyName    = model.CompanyName;
                ViewBag.TaxId          = model.TaxId;
                ViewBag.TobaccoLicense = model.TobaccoLicense;
                ViewBag.EmailAddress   = model.EmailAddress;
                ViewBag.Address1       = model.Address1;
                ViewBag.Address2       = model.Address2;
                ViewBag.City           = model.City;
                ViewBag.State          = model.State;
                ViewBag.Zip            = model.Zip;

                //getting cart products
                List <CartProductsModel> cartProducts = GetCartProducts(userId);

                //setting store products
                StoreViewModel storeViewModel = new StoreViewModel
                {
                    StoreProducts = null,
                    CartProducts  = cartProducts
                };
                return(View(storeViewModel));
            }
            return(RedirectToAction("Login", "Login", null));
        }
Example #12
0
        [HttpPost] //Add Stores
        public ActionResult AddStores(StoreViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var store = new Store
                {
                    Id      = viewModel.Id,
                    Name    = viewModel.Name,
                    Address = viewModel.Address
                };
                db.Stores.Add(store);
                db.SaveChanges();

                return(Json("OK", JsonRequestBehavior.AllowGet));
            }
            throw new Exception("Invalid Model");
        }
        // Adds a store to the database
        public ActionResult AddStore(StoreViewModel store)
        {
            Store newStore = new Store()
            {
                Id      = store.Id,
                Name    = store.Name,
                Address = store.Address
            };

            if (ModelState.IsValid)
            {
                db.Stores.Add(newStore);
                db.SaveChanges();
            }

            return(Json(store, JsonRequestBehavior.AllowGet));
        }
        public async Task <IActionResult> UpdateStore(StoreViewModel model, string command = null)
        {
            bool needUpdate = false;

            if (StoreData.SpeedPolicy != model.SpeedPolicy)
            {
                needUpdate            = true;
                StoreData.SpeedPolicy = model.SpeedPolicy;
            }
            if (StoreData.StoreName != model.StoreName)
            {
                needUpdate          = true;
                StoreData.StoreName = model.StoreName;
            }
            if (StoreData.StoreWebsite != model.StoreWebsite)
            {
                needUpdate             = true;
                StoreData.StoreWebsite = model.StoreWebsite;
            }

            var blob = StoreData.GetStoreBlob();

            blob.AnyoneCanInvoice             = model.AnyoneCanCreateInvoice;
            blob.NetworkFeeMode               = model.NetworkFeeMode;
            blob.MonitoringExpiration         = model.MonitoringExpiration;
            blob.InvoiceExpiration            = model.InvoiceExpiration;
            blob.LightningDescriptionTemplate = model.LightningDescriptionTemplate ?? string.Empty;
            blob.PaymentTolerance             = model.PaymentTolerance;

            if (StoreData.SetStoreBlob(blob))
            {
                needUpdate = true;
            }

            if (needUpdate)
            {
                await _Repo.UpdateStore(StoreData);

                StatusMessage = "Tienda actualizada correctamente";
            }

            return(RedirectToAction(nameof(UpdateStore), new
            {
                storeId = StoreData.Id
            }));
        }
Example #15
0
        public async Task <IActionResult> Add(StoreViewModel storeViewModel)
        {
            if (ModelState.IsValid)
            {
                var store = await _storeService.AddAsync(storeViewModel);

                if (store)
                {
                    TempData["Success"] = _commonLocalizer.GetLocalizedHtmlString("msg_AddSuccess").ToString();
                    return(RedirectToAction("Index"));
                }
                ViewData["Error"] = _storeLocalizer.GetLocalizedHtmlString("err_AddStoreFailure");
                return(View(storeViewModel));
            }
            Log.Error("Add Store Error");
            return(View(storeViewModel));
        }
Example #16
0
 public ActionResult Edit(StoreViewModel model)
 {
     if (ModelState.IsValid)
     {
         var store = db.Stores.Find(model.Id);
         store.StoreName    = model.StoreName;
         store.StoreAddress = model.StoreAddress;
         db.SaveChanges();
         TempData["Message"] = "Changes have been saved.";
         return(RedirectToAction("Index"));
     }
     else
     {
         TempData["Message"] = "Unable to save changes. Contact the administrator.";
         return(RedirectToAction("Index"));
     }
 }
Example #17
0
        private StoreViewModel ConvertToView(ScoredItem scoredItem)
        {
            var item      = scoredItem.Item;
            var viewModel = new StoreViewModel
            {
                Url          = item.Url(),
                StoreName    = item.GetString(Templates.Store.Fields.StoreName),
                Description  = item.GetString(Templates.Store.Fields.Description),
                Logo         = item.BuildImageItem(Templates.Store.Fields.Logo),
                PhoneNumber  = item.GetString(Templates.Store.Fields.PhoneNumber),
                Contact      = item.GetString(Templates.Store.Fields.Contact),
                NewDate      = item.GetDateTime(Templates.Store.Fields.NewDate),
                PostDate     = item.GetDateTime(Templates.SchedulableContent.Fields.PostDate),
                ExpiryDate   = item.GetDateTime(Templates.SchedulableContent.Fields.ExpiryDate),
                UnitNo       = item.GetString(Templates.Store.Fields.UnitNo),
                Brands       = item.GetString(Templates.Store.Fields.Brands),
                Keywords     = item.GetString(Templates.Store.Fields.Keywords),
                OpeningHours = item.GetString(Templates.Store.Fields.OpeningHours),
                Categories   = this.ConvertToStoreCategoriesView(item),
                Offers       = this.ConvertToStoreOffersView(item),
                Id           = IdHelper.NormalizeGuid(item.ID)
            };
            var mallSite = item.GetAncestorOrSelfOfTemplate(Foundation.Multisite.Templates.Site.ID);

            if (mallSite != null)
            {
                viewModel.Mall = mallSite.DisplayName;
            }

            var currentdate = DateTime.UtcNow;

            if (currentdate >= viewModel.PostDate && currentdate < viewModel.NewDate)
            {
                viewModel.Status = StoreStatus.Upcoming;
            }
            else if (currentdate >= viewModel.NewDate && currentdate < (viewModel.NewDate.AddMonths(3)))
            {
                viewModel.Status = StoreStatus.New;
            }
            else
            {
                viewModel.Status = StoreStatus.Normal;
            }

            return(viewModel);
        }
Example #18
0
        public IActionResult AddPizza()
        {
            List <Pizza> listPizzas = _ur.ShowMenu(currentPizzaDict);


            var s = new StoreViewModel()
            {
                Username   = currentStore.Name,
                Password   = currentStore.Password,
                StoreId    = currentStore.StoreId,
                Address    = currentStore.Address,
                Pizzas     = listPizzas,
                ClientName = currentUser.Name
            };

            return(View("AddPizza", s));
        }
Example #19
0
        public IActionResult GetStoreHistory()
        {
            StoreViewModel model = new StoreViewModel();

            model.SelectedStoreName = TempData.Peek("SelectedStoreName") as string;
            model.StoreOrderHistory = _repo.GetStoreOrders(model.SelectedStoreName).ToList();
            double revenue = 0;

            foreach (var item in model.StoreOrderHistory)
            {
                revenue = revenue + item.Price;
            }

            model.Revenue = revenue;

            return(View("StoreOrderHistory", model));
        }
Example #20
0
        public async Task <IActionResult> Create(StoreViewModel store)
        {
            if (ModelState.IsValid)
            {
                StoreDTO storeDTO = new StoreDTO()
                {
                    Id           = store.Id,
                    Address      = store.Address,
                    Name         = store.Name,
                    OpeningTimes = store.OpeningTimes
                };
                await _storeService.CreateStoreAsync(storeDTO);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(store));
        }
Example #21
0
        public IActionResult Stores()
        {
            StoreViewModel storeViewModel = new StoreViewModel();
            var            stores         = storeRepository.StoreList();

            storeViewModel.StoreList = new List <Store>();
            foreach (var store in stores)
            {
                if (string.IsNullOrEmpty(store.StoreName) || string.IsNullOrEmpty(store.StoreNumber))
                {
                    continue;
                }
                storeViewModel.StoreList.Add(store);
            }

            return(View(storeViewModel));
        }
Example #22
0
        public async Task <IActionResult> UpdateStore(StoreViewModel model, string command = null)
        {
            bool needUpdate = false;

            if (CurrentStore.SpeedPolicy != model.SpeedPolicy)
            {
                needUpdate = true;
                CurrentStore.SpeedPolicy = model.SpeedPolicy;
            }
            if (CurrentStore.StoreName != model.StoreName)
            {
                needUpdate             = true;
                CurrentStore.StoreName = model.StoreName;
            }
            if (CurrentStore.StoreWebsite != model.StoreWebsite)
            {
                needUpdate = true;
                CurrentStore.StoreWebsite = model.StoreWebsite;
            }

            var blob = CurrentStore.GetStoreBlob();

            blob.AnyoneCanInvoice             = model.AnyoneCanCreateInvoice;
            blob.NetworkFeeMode               = model.NetworkFeeMode;
            blob.MonitoringExpiration         = model.MonitoringExpiration;
            blob.InvoiceExpiration            = model.InvoiceExpiration;
            blob.LightningDescriptionTemplate = model.LightningDescriptionTemplate ?? string.Empty;
            blob.PaymentTolerance             = model.PaymentTolerance;

            if (CurrentStore.SetStoreBlob(blob))
            {
                needUpdate = true;
            }

            if (needUpdate)
            {
                await _Repo.UpdateStore(CurrentStore);

                TempData[WellKnownTempData.SuccessMessage] = "Store successfully updated";
            }

            return(RedirectToAction(nameof(UpdateStore), new
            {
                storeId = CurrentStore.Id
            }));
        }
Example #23
0
        public IActionResult Login(StoreViewModel store)
        {
            // super bodge job to verify login
            if (storeViewModel.Login(store.Name) is null)
            {
                store.Name = null;
            }

            ModelState.Remove("StoreSelected");
            if (ModelState.IsValid)
            {
                TempData["StoreLoggedIn"] = store.Name;
                TempData.Keep("StoreLoggedIn");
                return(Redirect("/Store"));
            }
            return(View());
        }
 public ActionResult DeleteStores([FromBody] StoreViewModel storeViewModel)
 {
     try
     {
         if (storeViewModel.Id > 0)
         {
             Store store = db.Store.SingleOrDefault(s => s.Id == storeViewModel.Id);
             db.Remove(store);
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
     return(Json(new { result = true }));
 }
Example #25
0
        public async Task <IActionResult> UpdateStoreAsync([FromBody] StoreViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Ok(new ResponseModel <StoreViewModel> {
                    Data = null, IsSuccess = false, Message = "Errors found"
                }));
            }

            var response = await _storeService.UpdateStore(model);

            var updatedStore = await _storeService.FindStore(model.Id);

            return(Ok(new ResponseModel <StoreViewModel> {
                Data = updatedStore, IsSuccess = true, Message = "Updated successfully"
            }));
        }
	    private static StoreTaxJurisdictionViewModel[] GetAvailableTaxJurisdictions(StoreViewModel parentVM,
	        IStoreRepository repository)
	    {
	        var result = new StoreTaxJurisdictionViewModel[]
	        {
	            new StoreTaxJurisdictionViewModel(
	                new StoreTaxJurisdiction() {StoreId = parentVM.InnerItem.StoreId, TaxJurisdiction = "China"},
	                repository),
	            new StoreTaxJurisdictionViewModel(
	                new StoreTaxJurisdiction() {StoreId = parentVM.InnerItem.StoreId, TaxJurisdiction = "Canada"},
	                repository),
	            new StoreTaxJurisdictionViewModel(
	                new StoreTaxJurisdiction() {StoreId = parentVM.InnerItem.StoreId, TaxJurisdiction = "USA"}, repository)
	        };

	        return result;
	    }
        private JsonResult EditData(StoreViewModel model)
        {
            if (model.CheckCode != model.Store.Code)
            {
                if (_service.ExistedCode(model.Store.Code))
                {
                    return(Json(new { result = Constants.DuplicateCode }));
                }
            }

            if (model.CheckName != model.Store.Name)
            {
                if (_service.ExistedName(model.Store.Name))
                {
                    return(Json(new { result = Constants.Duplicate }));
                }
            }

            var entity = _service.GetByKey(model.Store.Id);

            if (!Convert.ToBase64String(model.Store.Timestamp).Equals(Convert.ToBase64String(entity.Timestamp)))
            {
                return(Json(new { result = Constants.DataJustChanged }));
            }

            try
            {
                entity.Code        = model.Store.Code;
                entity.Name        = model.Store.Name;
                entity.CountryId   = model.Store.CountryId;
                entity.Address     = model.Store.Address;
                entity.Tel         = model.Store.Tel;
                entity.Phone       = model.Store.Phone;
                entity.Description = model.Store.Description;
                entity.iModified   = model.LoginId;
                entity.dModified   = DateTime.Now;
                _service.Update(entity);

                return(Json(new { result = Constants.Success }));
            }
            catch (Exception e)
            {
                Log.Error("Update Store!", e);
                return(Json(new { result = Constants.UnSuccess }));
            }
        }
Example #28
0
        /// <summary>
        /// 取得所有館別資料
        /// </summary>
        /// <returns></returns>
        public ActionResult Store()
        {
            try
            {
                //驗證授權:管理員
                var pass = roleAuth.AdminAuth();
                if (pass == true)
                {
                    ViewBag.UserName = roleAuth.UserName();
                    ViewBag.RoleName = "Admin";
                }
                else
                {
                    TempData["Msg"] = "無權限瀏覽該網頁,請登入會員瀏覽,謝謝!";
                    return(RedirectToAction("Login", "Home"));
                }

                StoreOperation op       = new StoreOperation();
                var            allStore = op.Get();

                List <StoreViewModel> lstModel = new List <StoreViewModel>();
                foreach (var item in allStore)
                {
                    StoreViewModel model = new StoreViewModel();
                    model.StoreNo     = item.StoreNo;
                    model.Name        = item.Name;
                    model.Address     = item.Address;
                    model.Tel         = item.Tel;
                    model.ServiceInfo = item.ServiceInfo;
                    model.ParkingInfo = item.ParkingInfo;
                    model.MemberInCnt = item.MemberInCnt.ToString();
                    model.AccessLimit = item.AccessLimit.ToString();

                    lstModel.Add(model);
                }

                return(View(lstModel));
            }

            catch (Exception ex)
            {
                TempData["Msg"] = ex.ToString();
                return(RedirectToAction("Logout", "Home"));
            }
        }
Example #29
0
 public ActionResult Create(StoreViewModel model)
 {
     try
     {
         // TODO: Add insert logic here
         if (ModelState.IsValid)
         {
             int id = storeRepositery.addStore(model);
             return(RedirectToAction("Details", new { id = id }));
         }
         ViewBag.cities = util.getCities();
         return(View(model));
     }
     catch
     {
         return(View("Error"));
     }
 }
Example #30
0
 public static void CreateNewStore(StoreViewModel model)
 {
     try
     {
         Db.Stores.Add(new Store()
         {
             Id      = model.Id,
             Name    = model.Name,
             Address = model.Address,
         });
         Db.SaveChanges();
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
Example #31
0
 public ActionResult Create(StoreViewModel model)
 {
     if (ModelState.IsValid)
     {
         var store = new Store();
         store.StoreName    = model.StoreName;
         store.StoreAddress = model.StoreAddress;
         db.Stores.Add(store);
         db.SaveChanges();
         TempData["Message"] = "New record has been created.";
         return(RedirectToAction("Index"));
     }
     else
     {
         TempData["Message"] = "Unable to create Store. Contact the administrator.";
         return(RedirectToAction("Index"));
     }
 }
Example #32
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Store store = await _context.Stores.FindAsync(id);

            if (store == null)
            {
                return(NotFound());
            }

            StoreViewModel model = _converterHelper.ToStoreViewModel(store);

            return(View(model));
        }
 private void OnNavigation(string destination)
 {
     switch (destination)
     {
         case "home":
             CurrentViewModel = new HomeViewModel();
             break;
         case "pvp":
             CurrentViewModel = new PvPViewModel();
             break;
         case "world":
             CurrentViewModel = new WorldViewModel();
             break;
         case "store":
             CurrentViewModel = new StoreViewModel();
             break;
         case "account":
             CurrentViewModel = new AccountViewModel();
             break;
         default:
             throw new ArgumentException($"Failed to navigate to '{destination}', the destination was not recognized");
     }
 }
		private static List<StoreCardTypeViewModel> GetAvailableStoreCardTypes(StoreViewModel parentVM,
			IStoreRepository repository)
		{
			var result = new List<StoreCardTypeViewModel>();
			result.Add(
				new StoreCardTypeViewModel(new StoreCardType() { StoreId = parentVM.InnerItem.StoreId, CardType = "Visa" },
					repository));
			result.Add(
				new StoreCardTypeViewModel(
					new StoreCardType() { StoreId = parentVM.InnerItem.StoreId, CardType = "MasterCard" }, repository));
			result.Add(
				new StoreCardTypeViewModel(new StoreCardType() { StoreId = parentVM.InnerItem.StoreId, CardType = "Amex" },
					repository));
			return result;
		}
		public void create_storeviewmodel_in_detailmode_and_edit()
		{
			var overviewVmFactory = new TestFulfillmentViewModelFactory<IStoreOverviewStepViewModel>(
				ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Catalog),
				ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));

			var navigationVmFactory = new TestFulfillmentViewModelFactory<IStoreNavigationStepViewModel>(
				ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Catalog),
				ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));

			var localizationVmFactory = new TestFulfillmentViewModelFactory<IStoreLocalizationStepViewModel>(
				ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Catalog),
				ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));

			var taxesVmFactory = new TestFulfillmentViewModelFactory<IStoreTaxesStepViewModel>(
				ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Catalog),
				ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));

			var paymentsVmFactory = new TestFulfillmentViewModelFactory<IStorePaymentsStepViewModel>(
				ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Catalog),
				ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));

			var linkedStoresVmFactory = new TestFulfillmentViewModelFactory<IStoreLinkedStoresStepViewModel>(
				ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Catalog),
				ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));

			var settingVmFactory = new TestFulfillmentViewModelFactory<IStoreSettingStepViewModel>(
				ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Catalog),
				ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));

			var entityFactory = new StoreEntityFactory();
			var item = entityFactory.CreateEntity<Store>();

			var repositoryFactory =
				new DSRepositoryFactory<IStoreRepository, DSStoreClient, StoreEntityFactory>(
					ServManager.GetUri(ServiceNameEnum.Store));

			var navigationManager = new TestNavigationManager();



			//fill the properties of InnerItem;
			item.Name = "testName";
			item.Catalog = "testcatalog";
			item.Languages.Add(new StoreLanguage() { LanguageCode = "ru-ru", StoreId = item.StoreId });
			item.DefaultLanguage = "ru-ru";
			item.Currencies.Add(new StoreCurrency() { CurrencyCode = "RUR", StoreId = item.StoreId });
			item.DefaultCurrency = "RUR";

			using (var repository = repositoryFactory.GetRepositoryInstance())
			{
				repository.Add(item);
				repository.UnitOfWork.Commit();
			}


			var detailStoreViewModel = new StoreViewModel(repositoryFactory, entityFactory, overviewVmFactory, localizationVmFactory, taxesVmFactory, paymentsVmFactory, navigationVmFactory, settingVmFactory, linkedStoresVmFactory, null, null,
				navigationManager, item);
			Assert.NotNull(detailStoreViewModel);
			detailStoreViewModel.InitializeForOpen();


			//edit various properties
			detailStoreViewModel.InnerItem.Name = "EditingName";
			detailStoreViewModel.InnerItem.Catalog = "EditedCatalog";


			detailStoreViewModel.InnerItem.Languages.Add(new StoreLanguage()
			{
				LanguageCode = "de-de",
				StoreId = detailStoreViewModel.InnerItem.StoreId
			});
			detailStoreViewModel.InnerItem.DefaultLanguage = "de-de";

			detailStoreViewModel.InnerItem.Currencies.Add(new StoreCurrency()
			{
				CurrencyCode = "USD",
				StoreId = detailStoreViewModel.InnerItem.StoreId
			});


			detailStoreViewModel.TaxesStepViewModel.AvailableTaxCodes[0].IsChecked = true;
			detailStoreViewModel.TaxesStepViewModel.AvailableTaxCodes[1].IsChecked = true;
			detailStoreViewModel.TaxesStepViewModel.AvailableTaxJurisdictions[0].IsChecked = true;

			detailStoreViewModel.PaymentsStepViewModel.AvailableStoreCardTypes[0].IsChecked = true;

			(detailStoreViewModel.NavigationStepViewModel as StoreNavigationStepViewModel).SettingFilteredNavigation
				.LongTextValue = "NewNavigationText";

			detailStoreViewModel.SaveWithoutUIChanges();


			Store storeFromDb = null;
			using (var repository = repositoryFactory.GetRepositoryInstance())
			{
				storeFromDb =
					repository.Stores.Where(s => s.StoreId == detailStoreViewModel.InnerItem.StoreId).SingleOrDefault();

				Assert.NotNull(storeFromDb);
				Assert.True(storeFromDb.Name == "EditingName");
			}


			//edit various properties

			var detailStoreViewModel2 = new StoreViewModel(repositoryFactory, entityFactory, overviewVmFactory, localizationVmFactory, taxesVmFactory, paymentsVmFactory, navigationVmFactory, settingVmFactory, linkedStoresVmFactory, null, null,
			   navigationManager, item);
			Assert.NotNull(detailStoreViewModel2);
			detailStoreViewModel2.InitializeForOpen();

			detailStoreViewModel.InnerItem.Name = "2 edit";
			detailStoreViewModel.TaxesStepViewModel.AvailableTaxCodes[0].IsChecked = false;
			detailStoreViewModel.TaxesStepViewModel.AvailableTaxCodes[1].IsChecked = false;

			detailStoreViewModel.InnerItem.Settings.Add(new StoreSetting()
			{
				Name = "testSettings",
				ValueType = "0",
				ShortTextValue = "ShortTextValue",
				StoreId = detailStoreViewModel.InnerItem.StoreId
			});


			detailStoreViewModel.SaveWithoutUIChanges();


			using (var repository = repositoryFactory.GetRepositoryInstance())
			{
				var itemFromDb =
					repository.Stores.Where(s => s.StoreId == detailStoreViewModel.InnerItem.StoreId).Expand(s => s.Settings).SingleOrDefault();

				Assert.NotNull(itemFromDb);
				Assert.True(itemFromDb.Name == "2 edit");


				var setting = itemFromDb.Settings.SingleOrDefault(ss => ss.Name == "testSettings");
				Assert.NotNull(setting);

			}

		}
	    private static StoreTaxCodeViewModel[] GetAvailableTaxCodes(StoreViewModel parentVM, IStoreRepository repository)
	    {
	        var result = new StoreTaxCodeViewModel[]
	        {
	            new StoreTaxCodeViewModel(new StoreTaxCode() {StoreId = parentVM.InnerItem.StoreId, TaxCode = "Shipping"},
	                repository),
	            new StoreTaxCodeViewModel(new StoreTaxCode() {StoreId = parentVM.InnerItem.StoreId, TaxCode = "Goods"},
	                repository),
	            new StoreTaxCodeViewModel(new StoreTaxCode() {StoreId = parentVM.InnerItem.StoreId, TaxCode = "none"},
	                repository)
	        };
	        return result;
	    }