예제 #1
0
        public JsonResult SimplifiedRequisitionsPage([FromBody] string option)
        {
            List <SimplifiedRequisitionViewModel> result;

            //‘Requisições simplificadas para Registar’ com estado aprovado
            if (option == "registar")
            {
                result = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.GetByApprovals(2));
                HttpContext.Session.SetString("aprovadoSession", option);
            }
            //Histórico de Requisições simplificadas
            else if (option == "historico")
            {
                result = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.GetByApprovals(3));
                HttpContext.Session.SetString("aprovadoSession", option);
            }
            //‘Requisições simplificadas’ com utilizador
            else
            {
                HttpContext.Session.SetString("aprovadoSession", "");
                result = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.GetByCreateResponsiblePendente(User.Identity.Name));
            }
            if (result != null)
            {
                //Apply User Dimensions Validations
                List <AcessosDimensões> userDimensions = DBUserDimensions.GetByUserId(User.Identity.Name);
                //Regions
                if (userDimensions.Where(y => y.Dimensão == (int)Enumerations.Dimensions.Region).Count() > 0)
                {
                    result.RemoveAll(x => !userDimensions.Any(y => y.Dimensão == (int)Enumerations.Dimensions.Region && (y.ValorDimensão == x.RegionCode || string.IsNullOrEmpty(x.RegionCode))));
                }
                //FunctionalAreas
                if (userDimensions.Where(y => y.Dimensão == (int)Enumerations.Dimensions.FunctionalArea).Count() > 0)
                {
                    result.RemoveAll(x => !userDimensions.Any(y => y.Dimensão == (int)Enumerations.Dimensions.FunctionalArea && (y.ValorDimensão == x.FunctionalAreaCode || string.IsNullOrEmpty(x.FunctionalAreaCode))));
                }
                //ResponsabilityCenter
                if (userDimensions.Where(y => y.Dimensão == (int)Enumerations.Dimensions.ResponsabilityCenter).Count() > 0)
                {
                    result.RemoveAll(x => !userDimensions.Any(y => y.Dimensão == (int)Enumerations.Dimensions.ResponsabilityCenter && (y.ValorDimensão == x.ResponsabilityCenterCode || string.IsNullOrEmpty(x.ResponsabilityCenterCode))));
                }
            }
            return(Json(result));
        }