Exemplo n.º 1
0
        public async Task <IResponse <Dictionary <string, int> > > GetLossCountLastDaysAsync(int dayCount = 10)
        {
            var result = new Response <Dictionary <string, int> >();

            try
            {
                var cache = (Response <Dictionary <string, int> >)_cacheProvider.Get(LossCountLastDaysCacheKey());
                if (cache != null)
                {
                    return(cache);
                }

                result.Result = await _appUow.LossRepo.GetLossCountLastDaysAsync(dayCount);

                if (result.Result.Count() == 0)
                {
                    return new Response <Dictionary <string, int> > {
                               Message = ServiceMessage.RecordNotExist
                    }
                }
                ;

                result.IsSuccessful = true;
                result.Message      = ServiceMessage.Success;
                _cacheProvider.Add(LossCountLastDaysCacheKey(), result, DateTimeOffset.Now.AddMinutes(30));

                return(result);
            }
            catch (Exception e)
            {
                FileLoger.Error(e);
                return(result);
            }
        }
Exemplo n.º 2
0
        public MenuModel GetAvailableActions(Guid userId, List <MenuSPModel> spResult = null, string urlPrefix = "")
        {
            var userMenu = (MenuModel)_cache.Get(GlobalVariables.CacheSettings.MenuModelCacheKey(userId));

            if (userMenu != null)
            {
                return(userMenu);
            }

            userMenu = new MenuModel();
            if (spResult == null)
            {
                spResult = _dashboardMenuSp.GetUserMenu(userId).ToList();
            }

            #region Find Default View
            foreach (var menuItem in spResult)
            {
                if (menuItem.IsAction && menuItem.IsDefault)
                {
                    userMenu.DefaultUserAction = new UserAction
                    {
                        Action     = menuItem.ActionName,
                        Controller = menuItem.ControllerName
                    };
                    break;
                }
                var actions = menuItem.ActionsList;
                if (actions.Any(x => x.IsDefault))
                {
                    userMenu.DefaultUserAction = new UserAction
                    {
                        Action     = actions.FirstOrDefault(x => x.IsDefault).ActionName,
                        Controller = actions.FirstOrDefault(x => x.IsDefault).ControllerName
                    };
                    break;
                }
            }
            if (userMenu.DefaultUserAction == null || userMenu.DefaultUserAction.Controller == null)
            {
                return(null);
            }
            #endregion
            var userActions = new List <UserAction>();
            foreach (var item in spResult)
            {
                if (item.IsAction)
                {
                    userActions.Add(new UserAction
                    {
                        Controller = item.ControllerName.ToLower(),
                        Action     = item.ActionName.ToLower(),
                        RoleId     = item.RoleId,
                        RoleNameFa = item.RoleNameFa
                    });
                }
                if (item.ActionsList != null)
                {
                    foreach (var child in item.ActionsList)
                    {
                        userActions.Add(new UserAction
                        {
                            Controller = child.ControllerName.ToLower(),
                            Action     = child.ActionName.ToLower(),
                            RoleId     = child.RoleId,
                            RoleNameFa = child.RoleNameFa
                        });
                    }
                }
            }
            userActions         = userActions.Distinct().ToList();
            userMenu.Menu       = GetAvailableMenu(spResult, urlPrefix);
            userMenu.ActionList = userActions;

            _cache.Add(GlobalVariables.CacheSettings.MenuModelCacheKey(userId), userMenu, DateTime.Now.AddMinutes(30));
            return(userMenu);
        }