public ActionResult Index()
        {
            var  response  = new AllKpiAchievementsResponse();
            bool isAdmin   = this.UserProfile().IsSuperAdmin;
            var  privilege = this.UserProfile().RolePrivilegeName;

            ViewBag.IsSuperAdmin = isAdmin;
            if (this.UserProfile().IsSuperAdmin)
            {
                response = _kpiAchievementService.GetAllKpiAchievements();
            }
            else
            {
                response = _kpiAchievementService.GetKpiAchievementsByRole(new GetKpiAchievementsConfigurationRequest {
                    RoleGroupId = this.UserProfile().RoleId
                });
            }

            if (response.IsSuccess)
            {
                var viewModel = response.MapTo <IndexKpiAchievementViewModel>();
                return(View(viewModel));
            }

            return(base.ErrorPage(response.Message));
        }
示例#2
0
        public AllKpiAchievementsResponse GetKpiAchievementsByRole(GetKpiAchievementsConfigurationRequest request)
        {
            var response = new AllKpiAchievementsResponse();

            try
            {
                var kpiAchievements = DataContext.Kpis
                                      .Include(x => x.Measurement)
                                      .Include(x => x.Type)
                                      .Include(x => x.RoleGroup)
                                      .Where(x => x.RoleGroup.Id == request.RoleGroupId)
                                      .AsEnumerable()
                                      .OrderBy(x => x.Order)
                                      .GroupBy(x => x.RoleGroup).ToDictionary(x => x.Key);

                foreach (var item in kpiAchievements)
                {
                    var kpis = new List <AllKpiAchievementsResponse.Kpi>();
                    foreach (var val in item.Value)
                    {
                        kpis.Add(val.MapTo <AllKpiAchievementsResponse.Kpi>());
                    }

                    response.RoleGroups.Add(new AllKpiAchievementsResponse.RoleGroup
                    {
                        Id   = item.Key.Id,
                        Name = item.Key.Name,
                        Kpis = kpis
                    });
                }

                response.IsSuccess = true;
            }
            catch (ArgumentNullException argumentNullException)
            {
                response.Message = argumentNullException.Message;
            }
            catch (InvalidOperationException invalidOperationException)
            {
                response.Message = invalidOperationException.Message;
            }

            return(response);
        }