public ActionResult SearchTabsPost(TabsViewModel viewModel) { var dic = new RouteValueDictionary() { { "tabkey", viewModel.TabKey }, { "tabid", viewModel.TabId }, { "MetalFilter", viewModel.MetalFilter }, { "OrderByPrice", viewModel.OrderByPrice }, { "itemsperpage", viewModel.ItemsPerPage } }; var counter = 0; if (viewModel.CustomFilters != null) { foreach (var filterValue in viewModel.CustomFilters) { //TODO do tis strongly typed with reflaction dic.Add("CustomFilters" + "[" + counter.ToString() + "].Value", filterValue.Value); dic.Add("CustomFilters" + "[" + counter.ToString() + "].Name", filterValue.Name); counter++; } dic.Add("page", 1); } else { dic.Add("page", viewModel.Page); } return(RedirectToRoute("Tabs", dic)); }
/// <summary> /// 新增Tab /// </summary> /// <param name="viewModel"></param> /// <param name="cid"></param> /// <returns></returns> public ActionResult SaveTab(TabsViewModel viewModel, Guid cid) { var column = _repository.Find(cid); string tab = column.Tab; var listTab = Newtonsoft.Json.JsonConvert.DeserializeObject <List <TabsViewModel> >(tab); if (viewModel.Id == Guid.Parse("00000000-0000-0000-0000-000000000000")) { viewModel.Id = Guid.NewGuid(); listTab.Add(viewModel); } else { //修改 var first = listTab.First(s => s.Id == viewModel.Id); first.Name = viewModel.Name; first.Icon = viewModel.Icon; first.Img = viewModel.Img; first.Intro = viewModel.Intro; first.Url = viewModel.Url; } column.Tab = Newtonsoft.Json.JsonConvert.SerializeObject(listTab); _repository.Update(column); _unitOfWork.Commit(); return(Json(true)); }
public void OrderBy_ShouldOrderByLowToHighWhenDefaultOrderingIsUsed() { //Arrange var jewelryRepository = MockRepository.GenerateMock <IJewelRepository>(); var tabsRepository = CreateStubTabsRepository(TabKey); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15001"); var orderBy = new DynamicOrderBy("price", "asc"); jewelryRepository.Expect(x => x.OrderJewelryItemsBy(Arg <DynamicOrderBy> .Is.Equal(orderBy))).Repeat.Once(); var viewModel = new TabsViewModel(); viewModel.TabKey = TAB_KEY; viewModel.TabId = TAB_ID1; viewModel.MetalFilter = JewelMediaType.WhiteGold; var tabsViewModelBuilder = new TabsViewModelBuilder(viewModel, xmldoc_regular3tabs, tabsRepository, jewelryRepository, fileSystem); tabsViewModelBuilder.Build(); //Act //Assert jewelryRepository.VerifyAllExpectations(); }
public void PresentTabs_ShouldReturntheRightNumberOfItemsAfterMetalWhiteGoldFilter() { //Arrange var tabKey = "diamond-rings"; var tabId = "engagement-rings"; var xmlSource = new XmlSourceFactory(); var tabsRepository = new TabsRepository(xmlSource); var jewelryRepository = new JewelRepository(new SettingManager()); var fileSystem = new FileSystem(); var pathBarGenerator = MockRepository.GenerateStub <IPathBarGenerator>(); var mapper = MockRepository.GenerateStub <IMappingEngine>(); TabsController controller = new TabsController(tabsRepository, jewelryRepository, fileSystem, xmlSource, pathBarGenerator, mapper); var viewModel = new TabsViewModel(); viewModel.TabKey = tabKey; viewModel.TabId = tabId; viewModel.MetalFilter = JewelMediaType.WhiteGold; //Act var resultview = controller.SearchTabs(viewModel); //Assert var model = resultview.Model as TabsViewModel; model.JewelryInTabContainersCollection.Should().HaveCount(9).And.OnlyContain(x => x.PictureURL.Contains("wg")); }
public TabsPage(TabsViewModel tabsViewModel) { NavigationPage.SetHasBackButton(this, false); NavigationPage.SetHasNavigationBar(this, false); InitializeComponent(); BindingContext = tabsViewModel; }
public ViewResult SearchTabs(TabsViewModel viewModel) { XDocument tabsource = xmlSourceFactory.TabSource(); TabsViewModelBuilder modelBuilder = new TabsViewModelBuilder(viewModel, tabsource, tabsRepository, jewelRepository, fileSystem); viewModel = modelBuilder.Build(); viewModel.PathBarItems = pathBarGenerator.GenerateUsing <TabsPathBarResolver, ITabsViewModel>(viewModel); return(View("PresentTabs", viewModel)); }
public IActionResult Index(TabsViewModel vm) { if (vm == null) { vm = new TabsViewModel { ActiveTab = Tab.List }; } return(View(vm)); }
public override async Task HandleArriveAsync(NavigationKind navigationKind) { if (navigationKind == NavigationKind.New) { _viewModel = ServiceProvider.GetRequiredService <TabsViewModel>(); } _viewModel.SelectionRequested += ViewModel_SelectionRequested; if (navigationKind == NavigationKind.New) { await Navigation.PushAsync(new TabsPage(_viewModel)); } }
private static void ShowNewWindow(TabsViewModel mvm, Point location) { var activeWindow = Current.Windows.OfType <Window>().FirstOrDefault(w => w.IsActive) ?? Current.MainWindow; MainWindow mainWindow = new() { DataContext = mvm, WindowStartupLocation = WindowStartupLocation.Manual, Left = activeWindow.Left + location.X, Top = activeWindow.Top + location.Y }; mainWindow.Show(); } }
public List <TabsViewModel> GetTabs() { List <TabsViewModel> result = new List <TabsViewModel>(); var tabs = Entities.Tabs; foreach (var tab in tabs) { TabsViewModel current = new TabsViewModel(tab); result.Add(current); } return(result); }
public List <TabsViewModel> GetTabs(Func <TabsViewModel, bool> predicate) { List <TabsViewModel> result = new List <TabsViewModel>(); var tabs = Entities.Tabs; foreach (var tab in tabs) { TabsViewModel current = new TabsViewModel(tab); if (predicate(current)) { result.Add(current); } } return(result); }
public IActionResult CreateTemplate(CreateTempViewModel model) { var tabModel = new TabsViewModel(); var coModel = new TestViewModel(); if (ModelState.IsValid) { _fileService.CreateFile(model.TemplateName, model.TemplateText); coModel.Template = model.TemplateName; tabModel.ActiveTab = Tab.Test; tabModel.TestModel = coModel; } else { tabModel.CreateTempModel = model; tabModel.ActiveTab = Tab.Temps; } return(RedirectToAction("Index", tabModel)); }
private TabsViewModelBuilder CreateDefaultTabsViewModelBuilderWithAllMetalFilter() { var settingManager = new FakeSettingManager(); var tabsRepository = CreateStubTabsRepository(TabKey); var jewelryRepository = new FakeJewelRepository(settingManager); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15421"); var model = new TabsViewModel() { MetalFilter = JewelMediaType.All, TabKey = TabKey, TabId = TabID1 }; TabsViewModelBuilder tabsViewModelBuilder = new TabsViewModelBuilder(model, xmldoc_regular3tabs, tabsRepository, jewelryRepository, fileSystem); return(tabsViewModelBuilder); }
public void Build_ShouldAddACustmFilterToTheRapository() { //Arrange var jewelryRepository = MockRepository.GenerateMock <IJewelRepository>(); var tabsRepository = CreateStubTabsRepository(TabKey); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15001"); jewelryRepository.Expect(x => x.AddFilterList(Arg <List <DynamicSQLWhereObject> > .Matches( m => m[0].Pattern == "cs_type = @0" && m[0].Valuelist.Contains("ruby") ))).Repeat.Once(); var viewModel = new TabsViewModel(); viewModel.TabKey = TAB_KEY; viewModel.TabId = TAB_ID1; viewModel.CustomFilters = new List <CustomTabFilterViewModel> { new CustomTabFilterViewModel() { Name = "gemstone-center-stone", Value = (int)GemstoneCenterStoneFilterValues.Ruby } }; var tabsViewModelBuilder = new TabsViewModelBuilder(viewModel, xmldoc_tabswithgeneralfilter, tabsRepository, jewelryRepository, fileSystem); //Act tabsViewModelBuilder.Build(); //Assert jewelryRepository.VerifyAllExpectations(); }
public void Build_IfGivenATabKeyWithSpecialTebsReturnIsShowTabsToFalse() { //Arrange var jewelryRepository = MockRepository.GenerateMock <IJewelRepository>(); var tabsRepository = CreateStubTabsRepository(TabKey); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15001"); var viewModel = new TabsViewModel(); viewModel.TabKey = TAB_KEY; viewModel.TabId = SPECIAL_TABID1; var tabsViewModelBuilder = new TabsViewModelBuilder(viewModel, xmldoc_specialtab, tabsRepository, jewelryRepository, fileSystem); viewModel = tabsViewModelBuilder.Build(); //Act viewModel.IsShowTabs.Should().BeFalse(); //Assert }
public void Build_IfGivenAViewModelWithNoMetalFilterSetToDefaultOf1() { //Arrange var jewelryRepository = MockRepository.GenerateMock <IJewelRepository>(); var tabsRepository = CreateStubTabsRepository(TabKey); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15001"); var viewModel = new TabsViewModel(); viewModel.TabKey = TAB_KEY; viewModel.TabId = TAB_ID1; TabsViewModelBuilder tabsViewModelBuilder = new TabsViewModelBuilder(viewModel, xmldoc_regular3tabs, tabsRepository, jewelryRepository, fileSystem); viewModel = tabsViewModelBuilder.Build(); //Act var tabsContainers = viewModel.JewelryInTabContainersCollection; //Assert tabsContainers.Should().OnlyContain(x => x.Metal == "White Gold 18K"); }
public void Build_ShouldPassTheCurrentValueOfTheGeneralFilterToTheViewModelForPresistance() { //Arrange //Arrange var jewelryRepository = MockRepository.GenerateMock <IJewelRepository>(); var tabsRepository = CreateStubTabsRepository(TabKey); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15001"); var viewModel = new TabsViewModel { TabKey = TAB_KEY, TabId = TAB_ID1, CustomFilters = new List <CustomTabFilterViewModel> { new CustomTabFilterViewModel() { Name = "gemstone-center-stone", Value = (int)GemstoneCenterStoneFilterValues.Ruby } } }; var tabsViewModelBuilder = new TabsViewModelBuilder(viewModel, xmldoc_tabswithgeneralfilter, tabsRepository, jewelryRepository, fileSystem); //Act var result = tabsViewModelBuilder.Build(); //Assert result.CustomFilters[0].Value.Should().Be(1); }
public IActionResult SwitchToTabs(string tabname) { var vm = new TabsViewModel(); switch (tabname) { case "List": vm.ActiveTab = Tab.List; break; case "Temps": vm.ActiveTab = Tab.Temps; break; case "Test": vm.ActiveTab = Tab.Test; break; default: vm.ActiveTab = Tab.List; break; } return(RedirectToAction("Index", vm)); }
/// <summary> /// Register commands /// </summary> private void RegisterCommands() { SelectGreatestTab = new RelayCommand(() => { if (SelectedTab is GreatestTabViewModel) { return; } foreach (var greatestTab in Tabs.OfType <GreatestTabViewModel>()) { SelectedTab = greatestTab; } }); SelectPopularTab = new RelayCommand(() => { if (SelectedTab is PopularTabViewModel) { return; } foreach (var popularTab in Tabs.OfType <PopularTabViewModel>()) { SelectedTab = popularTab; } }); SelectRecentTab = new RelayCommand(() => { if (SelectedTab is RecentTabViewModel) { return; } foreach (var recentTab in Tabs.OfType <RecentTabViewModel>()) { SelectedTab = recentTab; } }); SelectSearchTab = new RelayCommand(() => { if (SelectedTab is SearchTabViewModel) { return; } foreach (var searchTab in Tabs.OfType <SearchTabViewModel>()) { SelectedTab = searchTab; } }); SelectFavoritesTab = new RelayCommand(() => { if (SelectedTab is FavoritesTabViewModel) { return; } foreach (var favoritesTab in Tabs.OfType <FavoritesTabViewModel>()) { SelectedTab = favoritesTab; } }); SelectSeenTab = new RelayCommand(() => { if (SelectedTab is SeenTabViewModel) { return; } foreach (var seenTab in Tabs.OfType <SeenTabViewModel>()) { SelectedTab = seenTab; } }); }
public static MvcHtmlString TabsOptions(this HtmlHelper html, TabsViewModel model) { return(html.JsonScript(model.Id + "_op", model)); }
public Layout() { InitializeComponent(); DataContext = new TabsViewModel(); }