public async Task ItShouldProvideTheChallengeMissingViewIfGetChallengeFormThrowsAnyException() { var navResponse = new NavViewModel { Current = SupportServiceResourceKey.EmployerAccountFinance, Items = new[] { new NavItem { Href = "", Key = SupportServiceResourceKey.EmployerAccountTeam, Title = "" } } }; MockManifestRepository.Setup(x => x.GetNav(_resourceKey, _resourceId)).Returns(Task.FromResult(navResponse)); MockManifestRepository.Setup(x => x.GenerateHeader(_resourceKey, _resourceId)) .Returns(Task.FromResult(new ResourceResultModel())); MockManifestRepository.Setup(x => x.GetChallengeForm(_resourceKey, _challengeKey, _resourceId, _url)).Throws <Exception>(); ActionResultResponse = await Unit.Challenge(_resourceKey, _challengeKey, _resourceId, _url); Assert.IsInstanceOf <ViewResult>(ActionResultResponse); var viewResult = (ViewResult)ActionResultResponse; Assert.IsInstanceOf <NavViewModel>(viewResult.ViewBag.SubNav); Assert.IsInstanceOf <object>(viewResult.ViewBag.SubHeader); Assert.AreEqual("Missing", viewResult.ViewName); Assert.IsNull(viewResult.Model); }
public void TestCategorySelection() { // Arrange Mock <IProductRepository> mockBuilder = new Mock <IProductRepository>(); mockBuilder.Setup(m => m.Products).Returns(new Product[] { new Product { ProductId = 1, Name = "P1", Category = "Apples" }, new Product { ProductId = 2, Name = "P2", Category = "Apples" }, new Product { ProductId = 3, Name = "P3", Category = "Plums" }, new Product { ProductId = 4, Name = "P4", Category = "Oranges" } }); NavController controller = new NavController(mockBuilder.Object); String categoryToSelect = "Apples"; // Act NavViewModel viewModel = (NavViewModel)controller.Menu(categoryToSelect).Model; // Assert Assert.AreEqual(viewModel.SelectedCategory, categoryToSelect); }
public static IHtmlContent MenuNavItem(this IHtmlHelper htmlHelper, NavViewModel NavViewModel) { if (NavViewModel == null || NavViewModel.Applications == null || NavViewModel.Menus == null) { return(null); } ChoiceMenu = NavParent(htmlHelper, NavViewModel); var html = new DefaultTagHelperContent(); foreach (var application in NavViewModel.Applications) { var tag = new TagBuilder("li"); tag.MergeAttribute("class", "heading"); var tagH3 = new TagBuilder("h3"); tagH3.MergeAttribute("class", "uppercase"); tagH3.InnerHtml.AppendHtml(application.Name); tag.InnerHtml.AppendHtml(tagH3); html.AppendHtml(tag); var appMenus = NavViewModel.Menus.Where(a => a.ApplicationID == application.ID && a.IsNav); foreach (var item in appMenus.Where(a => a.ParentID == default(Guid))) { html.AppendHtml(CreateMenuTag(appMenus, item)); } } return(html); }
// GET: Nav/Create public ActionResult Create() { NavViewModel model = new NavViewModel(); GetViewModel(model); return(View(model)); }
public async Task ItShouldProvideTheChallengeSubView() { var navResponse = new NavViewModel { Current = SupportServiceResourceKey.EmployerAccountTeam, Items = new[] { new NavItem { Href = "", Key = SupportServiceResourceKey.EmployerAccountTeam, Title = "" } } }; //MockManifestRepository.Setup(x => x.ChallengeExists(_challengeKey)).Returns(Task.FromResult(true)); MockManifestRepository.Setup(x => x.GetNav(_resourceKey, _resourceId)).Returns(Task.FromResult(navResponse)); MockManifestRepository.Setup(x => x.GenerateHeader(_resourceKey, _resourceId)) .Returns(Task.FromResult(new ResourceResultModel())); MockManifestRepository.Setup(x => x.GetChallengeForm(_resourceKey, _challengeKey, _resourceId, _url)) .Returns(Task.FromResult("<div></div.")); ActionResultResponse = await Unit.Challenge(_resourceKey, _challengeKey, _resourceId, _url); Assert.IsInstanceOf <ViewResult>(ActionResultResponse); var viewResult = (ViewResult)ActionResultResponse; Assert.IsInstanceOf <NavViewModel>(viewResult.ViewBag.SubNav); Assert.IsInstanceOf <object>(viewResult.ViewBag.SubHeader); Assert.AreEqual("Sub", viewResult.ViewName); Assert.IsInstanceOf <ResourceResultModel>(viewResult.Model); }
public ActionResult SiteMapFooterNav() { var data = new NavViewModel(); data.SectionCode = ""; // irrelevant as not used var sql = new Sql("where ShowInMainNav=1 and parentpageid is null"); sql.AndIsActive <Page>(); var pages = PageList.Load(sql); foreach (var page in pages) { var item = new NavItem { PageID = page.ID, Title = page.GetNavTitle(), Url = page.GetFullUrl(), PageCode = page.PageCode, IsExternalUrl = page.LinkUrlIsExternal }; data.NavItems.Add(item); //item.SubPages = GetChildren(page, null).FindAll(p => p.); foreach (var childPage in page.ChildPages.Active) { if (childPage.ShowInMainNav) { item.SubPages.Add(new NavItem(childPage)); } } } return(View(data)); }
public void TestCategories() { // Arrange Mock <IProductRepository> mockBuilder = new Mock <IProductRepository>(); mockBuilder.Setup(m => m.Products).Returns(new Product[] { new Product { ProductId = 1, Name = "P1", Category = "Apples" }, new Product { ProductId = 2, Name = "P2", Category = "Apples" }, new Product { ProductId = 3, Name = "P3", Category = "Plums" }, new Product { ProductId = 4, Name = "P4", Category = "Oranges" } }); NavController controller = new NavController(mockBuilder.Object); // Act NavViewModel viewModel = (NavViewModel)controller.Menu().Model; // Assert String[] categories = viewModel.Categories.ToArray(); Assert.AreEqual(categories.Length, 3); Assert.AreEqual(categories[0], "Apples"); Assert.AreEqual(categories[1], "Oranges"); Assert.AreEqual(categories[2], "Plums"); }
// GET: Navigation public PartialViewResult Menu() { NavViewModel navViewModel = new NavViewModel { ActiveController = HttpContext.Request.RequestContext.RouteData.Values["Controller"].ToString() }; return(PartialView(navViewModel)); }
public NavView() { this.InitializeComponent(); vm = new NavViewModel(); hamburgerMenuControl.ItemsSource = vm.MainMenuItems; hamburgerMenuControl.OptionsItemsSource = vm.OptionalMenuItems; contentFrame.Navigate(typeof(Views.HomePageView)); }
public PartialViewResult Nav() { var navModel = new NavViewModel { MovieCategorys = movieCategoryAppService.GetAll().Items.ToList() }; return(PartialView(navModel)); }
public PartialViewResult Menu(NavViewModel model, int CategoryId = 0, int SubCategoryId = 0) { ViewBag.SelectedCategory = CategoryId; ViewBag.SelectedSubCategory = SubCategoryId; model.Categories = repository.Categories.ToList(); model.SubCategories = repository.SubCate.ToList(); return(PartialView(model)); }
public async Task <IViewComponentResult> InvokeAsync() { var navVM = new NavViewModel(); navVM.Categories = await _categoryService.GetCategories(); navVM.Collections = await _collectionService.GetCollections(); return(View(navVM)); }
public async Task <NavViewModel> GetNav(SupportServiceResourceKey key, string id) { var navViewModel = new NavViewModel { Current = key, Items = _serviceConfiguration.GetNavItems(key, id).ToArray() }; return(await Task.FromResult(navViewModel)); }
/// <summary> /// 导航 /// </summary> /// <returns></returns> public ActionResult Navigation() { var model = new NavViewModel(); var dal = new BrandDal(); model.BrandTypeList = dal.GetListByProduct(); model.BrandList = dal.GetList(); var pdal = new ProductTypeDal(); model.ProductTypeList = pdal.GetTypeFList(); return(PartialView(model)); }
// GET: Nav public PartialViewResult Menu(String category = null) { NavViewModel viewModel = new NavViewModel { Categories = m_repository.Products .Select(x => x.Category) .Distinct() .OrderBy(x => x), SelectedCategory = category }; return(PartialView(viewModel)); }
public PartialViewResult Menu(string category = null) { var categories = new NavViewModel { Categories = repository.Guitars .Select(product => product.Category) .Distinct() .OrderBy(x => x), CurrentCategory = category }; return(PartialView(categories)); }
/// <summary> /// Render a breadcrumb navigation based on where the page is in the site structure. /// The other kind of breadcrumb is called TrackingBreadcrumb /// </summary> public ActionResult StructuralBreadcrumbWithAltTitle(string sectionCode, int currentPageID, string altTitle, List <NavItem> extraBreadcrumbs) { var data = new NavViewModel(); data.SectionCode = sectionCode; data.CurrentPageID = currentPageID; var breadPage = Page.LoadID(currentPageID); if (breadPage == null || breadPage.PageCode == "Home") { return(Content("")); } if (extraBreadcrumbs != null && extraBreadcrumbs.Count > 0) { // Make the last item from the page hierarchy clickable data.NavItems.Add(new NavItem { Title = breadPage.GetNavTitle(), Url = breadPage.GetFullUrl(), PageCode = breadPage.PageCode }); // Add the last extra bradcrumb as the non clickable item anb remove it from the list of clickable items ViewData["BreadcrumbCurrentPageTitle"] = extraBreadcrumbs.Last().Title; extraBreadcrumbs.Remove(extraBreadcrumbs.Last()); } else { ViewData["BreadcrumbCurrentPageTitle"] = altTitle.IsNotBlank() ? altTitle : breadPage.GetNavTitle(); } while (breadPage.ParentPageID != null) { breadPage = breadPage.ParentPage; data.NavItems.Add(new NavItem { Title = breadPage.GetNavTitle(), Url = breadPage.GetFullUrl(), PageCode = breadPage.PageCode }); } // Add Home data.NavItems.Add(new NavItem { Title = "Home", Url = Web.BaseUrl }); data.NavItems.Reverse(); //todo make original loop do the reverse // Add extra breadcrumbs if (extraBreadcrumbs != null) { data.NavItems.AddRange(extraBreadcrumbs); } return(View("Breadcrumb", data)); }
private void GetViewModel(NavViewModel model) { model.ParentItems = _navService.GetQuery(a => a.NavId.Length <= 6).ToList().Select(a => new ListItemEntity() { ID = a.NavId, ParentID = a.ParentId, Title = a.NavName, Selected = a.ParentId == model.ParentId }).ToList(); model.ParentItems.Add(new ListItemEntity() { ID = "-1", ParentID = "", Title = "----根节点----" }); }
/* * /// <summary> * /// Render the primary naviation along the top * /// </summary> * /// <param name="sectionCode"></param> * /// <param name="currentPageID"></param> * /// <returns></returns> * public ActionResult MainNav(string sectionCode, int currentPageID) { * var data = new NavViewModel(); * data.SectionCode = sectionCode; * var sql = new Sql("where ShowInMainNav=1 and ParentPageID is null"); * sql.AndIsActive<Page>(); * sql.Paging(6); // get first 6 only * data.NavItems = PageList.Load(sql); * data.CurrentPageID = currentPageID; * return View(data); * } * * /// <summary> * /// Render the small nav in the corner at the very top * /// </summary> * /// <param name="sectionCode"></param> * /// <param name="currentPageID"></param> * /// <returns></returns> * public ActionResult SecondaryNav(string sectionCode, int currentPageID) { * var data = new NavViewModel(); * data.SectionCode = sectionCode; * data.CurrentPageID = currentPageID; * var sql = new Sql("where ShowInSecondaryNav=1"); * sql.AndIsActive<Page>(); * data.Pages = PageList.Load(sql); * return View(data); * } * * /* not used * /// <summary> * /// Render subnav (single level only) * /// </summary> * /// <param name="sectionCode"></param> * /// <param name="currentPageID"></param> * /// <returns></returns> * public ActionResult SubNavSingleLevel(string sectionCode, int currentPageID) { * var data = new NavViewModel(); * data.SectionCode = sectionCode; * data.CurrentPageID = currentPageID; * var currentTopPage = Models.Page.LoadByPageCode(sectionCode); * if (currentTopPage != null) { * data.Pages = currentTopPage.ChildPages.Active; * } * return View(data); * } */ // public ActionResult FooterNav(string sectionCode, int currentPageID) { public ActionResult FooterNav() { var data = new NavViewModel(); data.SectionCode = ""; // irrelevant as not used var sql = new Sql("where ShowInFooterNav=1"); sql.AndIsActive <Page>(); var pages = PageList.Load(sql); foreach (var page in pages) { if (true) { var item = new NavItem(page); data.NavItems.Add(item); } else { //all footers var item = new NavItem { PageID = page.ID, Title = page.GetNavTitle(), Url = page.GetFullUrl(), PageCode = page.PageCode, IsExternalUrl = page.LinkUrlIsExternal }; //item.SubPages = GetChildren(page, null).FindAll(p => p.); foreach (var childPage in page.ChildPages.Active) { if (childPage.ShowInFooterNav) { item.SubPages.Add(new NavItem(childPage)); if (childPage.ChildPages != null) { foreach (var subChildPage in childPage.ChildPages.Active) { if (subChildPage.ShowInFooterNav) { item.SubPages.Add(new NavItem(subChildPage)); } } } } } data.NavItems.Add(item); } } return(View("FooterNav", data)); }
public ActionResult Create(NavViewModel model) { try { if (ModelState.IsValid) { var entity = model.ToEntity(); _navService.Add(entity); } return(RedirectToAction("Index")); } catch { return(View()); } }
// // GET: /Navigation/ /// <summary> /// Render primary navigation, including top level items and optionally also with first level of children underneath. /// This can be used for top navigation with dropdown menus. /// </summary> public ActionResult MainNav(string sectionCode, Page currentPage, bool includeChildren) { var data = new NavViewModel(); sectionCode = sectionCode + ""; data.SectionCode = sectionCode; var sql = new Sql("where ShowInMainNav=1 and ParentPageID is null"); sql.AndIsActive <Page>(); //var pages = PageList.Load(sql); var pages = PageCache.MainNav; foreach (var page in pages) { var item = new NavItem(page); if (page.ID == currentPage.SectionPageID) { item.IsSelected = true; //} else if (page.PageCode.IsNotBlank() && page.PageCode.ToLower()==sectionCode.ToLower()) { // item.IsSelected = true; } if (page.LinkUrlIsExternal) { item.IsExternalUrl = true; } if (includeChildren) { item.SubPages = GetChildren(page, sectionCode); } data.NavItems.Add(item); } // set css classes int selectedItemIndex = data.NavItems.FindIndex(item => item.IsSelected); if (selectedItemIndex > -1) { data.NavItems[selectedItemIndex].CssClass = "active"; } data.CurrentPageID = currentPage.ID; return(View(data)); }
public IViewComponentResult Invoke() { NavViewModel nav = new NavViewModel(); List <NavViewModel> navList = new List <NavViewModel>(); var items = from n in _context.HSCTable select n; List <HSCTable> tableList = items.ToList <HSCTable>(); for (int i = 0; i < tableList.Count(); i++) { nav.Id = tableList[i].ID; nav.DepartmentName = tableList[i].DepartmentName; nav.sel = tableList[i].sel; navList.Add(nav); } return(View("_SideNav", tableList)); }
/// <summary> /// 如果当前页面为权限菜单,则返回父级菜单,否则返回当前菜单 /// </summary> /// <param name="htmlHelper"></param> /// <param name="NavViewModel"></param> /// <returns></returns> private static Menu NavParent(IHtmlHelper htmlHelper, NavViewModel NavViewModel) { var controllerName = Convert.ToString(htmlHelper.ViewContext.RouteData.Values["controller"]); var actionName = Convert.ToString(htmlHelper.ViewContext.RouteData.Values["action"]); var areaName = Convert.ToString(htmlHelper.ViewContext.RouteData.Values["area"]); var currMenu = NavViewModel.Menus.FirstOrDefault(a => string.Equals(a.ControllerName, controllerName, StringComparison.CurrentCultureIgnoreCase) && string.Equals(a.ActionName, actionName, StringComparison.CurrentCultureIgnoreCase)); if (currMenu == null) { return(null); } if (currMenu.IsNav) { return(currMenu); } return(NavViewModel.Menus.FirstOrDefault(a => a.ID == currMenu.ParentID)); }
public ActionResult SecondaryNav() { var data = new NavViewModel(); data.SectionCode = ""; // irrelevant as not used var sql = new Sql("where ShowInSecondaryNav=1"); sql.AndIsActive <Page>(); var pages = PageList.Load(sql); foreach (var page in pages) { var item = new NavItem(page); data.NavItems.Add(item); } if (data.NavItems.Count > 0) { data.NavItems[0].CssClass = "first"; } return(View("SecondaryNav", data)); }
public ActionResult SubNav(string sectionCode, Models.Page page) { var data = new NavViewModel(); //var sql = new Sql("where ParentPageID=", page.ID); var sql = new Sql(); if (page.ParentPageID != null) { sql.Add("where ParentPageID=", page.ParentPageID.Value); } else { sql.Add("where ParentPageID=", page.ID); } sql.AndIsActive <Page>(); var pages = PageList.Load(sql); foreach (var childPage in pages) { var item = new NavItem(childPage); if (childPage.ID == page.ID) { item.IsSelected = true; } data.NavItems.Add(item); } int selectedItemIndex = data.NavItems.FindIndex(item => item.IsSelected); if (selectedItemIndex > -1) { data.NavItems[selectedItemIndex].CssClass = "active"; } return(View(data)); }
public PartialViewResult Nav() { var model = new NavViewModel(); model.Ledgers = _db.Query(new GetAllLedgersQuery()).Where(l => l.IsActive).ToList(); var action = ControllerContext.ParentActionViewContext.RouteData.Values["action"] as string ?? "Index"; var controller = ControllerContext.ParentActionViewContext.RouteData.Values["controller"] as string ?? "Home"; if (action == "Unreconciled") { var id = (string)RouteData.Values["id"]; model.SelectedNav = model.Ledgers.Single(l => l.Ledger.ToString() == id).LedgerDesc; } else if (controller == "Ledger" || controller == "Account" || controller == "Import") { model.SelectedNav = "Admin"; } else { model.SelectedNav = action; } return(PartialView(model)); }
public async Task ItShouldReturnAnUnRedirectedSubViewofTheChallengePage() { var challengeResult = new ChallengeResult { Page = "<html><div>Challenge</div></<html>", RedirectUrl = null }; var navResponse = new NavViewModel { Current = SupportServiceResourceKey.EmployerAccountTeam, Items = new[] { new NavItem { Href = "", Key = SupportServiceResourceKey.EmployerAccountTeam, Title = "" } } }; MockManifestRepository.Setup(x => x.SubmitChallenge(_resourceId, It.IsAny <Dictionary <string, string> >())) .Returns(Task.FromResult(challengeResult)); MockManifestRepository.Setup(x => x.GetNav(_resourceKey, _resourceId)).Returns(Task.FromResult(navResponse)); MockManifestRepository.Setup(x => x.GenerateHeader(_resourceKey, _resourceId)) .Returns(Task.FromResult(new ResourceResultModel())); ActionResultResponse = await Unit.Challenge(_resourceKey, _challengeKey, _resourceId, _formCollection); Assert.IsInstanceOf <ViewResult>(ActionResultResponse); var viewResult = (ViewResult)ActionResultResponse; Assert.IsInstanceOf <NavViewModel>(viewResult.ViewBag.SubNav); Assert.IsInstanceOf <object>(viewResult.ViewBag.SubHeader); Assert.AreEqual("Sub", viewResult.ViewName); Assert.IsInstanceOf <ResourceResultModel>(viewResult.Model); Assert.AreEqual(challengeResult.Page, ((ResourceResultModel)viewResult.Model).Resource); }
public NavView() { InitializeComponent(); BindingContext = new NavViewModel(); }
public PartialViewResult Menu2(NavViewModel model, int CategoryId = 0) { model.Categories = repository.Categories.ToList(); return(PartialView(model)); }
private void initialize() { if (vm == null) { vm = SimpleIoc.Default.GetInstance <NavViewModel>(); DataContext = vm; unlockSettingsControl.DataContext = vm; passwordModalControl.DataContext = vm; busyModal.DataContext = vm; } this.Visibility = Visibility.Visible; //check for gps offsett setting using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var repo = dp.SettingsRepository; var offsetSetting = repo.FindSingle(s => s.Key == TruckClientSettingKeys.GPS_OFFSET_FEET); if (offsetSetting == null) { repo.UpsertSetting(TruckClientSettingKeys.GPS_OFFSET_FEET, "45"); GPSDataProvider.SetGpsOffsetFeet(45.0); } else { GPSDataProvider.SetGpsOffsetFeet(double.Parse(offsetSetting.Value)); } } if (!vm.HasCloudSettings) { MessageBox.Show("Data sync settings have not been configured. Please configure then restart the application."); navTabControl.SelectedIndex = 2; } else { Task.Run(() => { try { try { if (!TagDataProvider.IsConnected) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Looking for RFID reader..." }); //System.Threading.Thread.Sleep(35000); int tryNumber = 1; do { //todo fix error hangs when no reader on rugged pc TagDataProvider.Connect(); tryNumber++; System.Threading.Thread.Sleep(3000); } while (tryNumber < 10 && !TagDataProvider.IsConnected); //Messenger.Default.Send<BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Connecting to RFID reader..." }); //TagDataProvider.Connect(); //System.Threading.Thread.Sleep(1400); } if (!TagDataProvider.IsConnected) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Not connected to RFID Reader." }); System.Threading.Thread.Sleep(1200); } else { TagDataProvider.Stop(); Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "RFID Reader found." }); TagDataProvider.SyncReaderTime(); System.Threading.Thread.Sleep(1200); } } catch (Exception readerExc) { Logging.Logger.Log(readerExc); } Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Initializing shaft sensor..." }); QuadratureEncoderDataProvider.StartEvents(); System.Threading.Thread.Sleep(1000); if (!QuadratureEncoderDataProvider.IsStarted) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Shaft Sensor not found." }); System.Threading.Thread.Sleep(1200); } if (!GPSDataProvider.IsConnected) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Connecting to GPS receiver..." }); Task.Run(() => { GPSDataProvider.Connect(); }); int waitCount = 0; while (waitCount < 60 && !GPSDataProvider.IsConnected) { System.Threading.Thread.Sleep(500); waitCount++; } if (GPSDataProvider.IsConnected) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "GPS connected." }); System.Threading.Thread.Sleep(1000); } else { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "GPS not connected." }); System.Threading.Thread.Sleep(2000); } } Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = false, Message = "" }); TagDataProvider.Initialize(); AggregateDataProvider.Initialize(); CottonDBMS.TruckApp.Tasks.TruckPullFromCloudTask.Init(); readerSettingsControl.Initialize(); } catch (Exception exc) { CottonDBMS.Logging.Logger.Log(exc); } }); } navTabControl.Height = canvasLayout.ActualHeight; navTabControl.Width = canvasLayout.ActualWidth; modalBG.Height = canvasLayout.ActualHeight; modalBG.Width = canvasLayout.ActualWidth; }