Example #1
0
 /// <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));
        }
Example #3
0
        /// <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);
        }
Example #4
0
        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);
        }
Example #5
0
 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);
                     }
                 }
             }
         }
     }
 }