/// <summary> /// Load ViewModel items asynchronous /// </summary> public async Task LoadDataAsync(bool forceRefresh = false) { var loadTasks = new Task[] { NavigateModel.LoadItemsAsync(forceRefresh), SpecialOffersModel.LoadItemsAsync(forceRefresh), }; await Task.WhenAll(loadTasks); }
public ActionResult Edit(NavigateModel model) { if (ModelState.IsValid) { Navigate navigate = mapper.Map(model, navigateService.GetNavigate(model.ID)); navigateService.Update(navigate); return(RedirectToAction("Index")); } ViewBag.Navigates = navigateService.GetNavigates().AsQueryable().ProjectTo <NavigateModel>(mapperConfigProvider); return(View(model)); }
/// <summary> /// 获取导航属性 /// </summary> /// <param name="type"></param> /// <returns></returns> private static NavigateModel GetNavigate(System.Type type) { var navigate = new NavigateModel(); type.GetProperties().ToList().ForEach(a => { var attribute = a.GetCustomAttribute <NavigateAttribute>(); if (attribute != null) { navigate.Appand.Add(attribute.Appand); navigate.Name.Add(a.Name); navigate.Key.Add(attribute.Name); } }); return(navigate); }
public static bool ContainsNavigateName(NavigateModel parentNavigate, string navigateName) { if (parentNavigate.Name == navigateName) { return(true); } foreach (NavigateModel navigate in parentNavigate.Children.Where(nav => nav.Active)) { if (ContainsNavigateName(navigate, navigateName)) { return(true); } } return(false); }
private void InitNavigate(List <Navigate> navigates, List <NavigateModel> models, List <int> ids) { if (navigates.Any()) { foreach (var item in navigates) { var model = new NavigateModel { Id = item.Id, Action = item.Action, Name = item.Name, Controller = item.Controller, Icon = item.Icon, Sort = item.Sort }; models.Add(model); if (item.Childrens.Any()) { foreach (var child in item.Childrens.Where(x => ids.Contains(x.Id)).ToList()) { var childModel = new NavigateModel { Id = child.Id, Action = child.Action, Name = child.Name, Controller = child.Controller, Icon = child.Icon, Sort = child.Sort }; model.Childrens.Add(childModel); if (child.Childrens.Any()) { var chids = new List <NavigateModel>(); childModel.Childrens = chids; InitNavigate(child.Childrens.Where(x => ids.Contains(x.Id)).ToList(), chids, ids); } } } } } }