public List <ApplicationDTO> GetApplicationsList(ApplicationListFilterDTO filter)
        {
            var dtos = new List <ApplicationDTO>();

            try
            {
                var isInactive = (filter.IsActive == true) ? "N" : "S";

                //Select application and its profiles
                var apps = _appRepo.SelectWhere(app => app.IsInactive.ToUpper() == isInactive).ToList();

                var validations = new List <ValidationResult>();
                apps.AsParallel().ForAll(a => { a.Validate(); validations.AddRange(a.Validation.Results); });

                if (validations.Any())
                {
                    throw new ServiceException(validations);
                }

                //Initialize the DTO to return
                dtos = apps.Map <List <SsoApplication>, List <ApplicationDTO> >();
            }
            catch (Exception ex)
            {
                LogHelper.ExceptionAndThrow(ex);
            }

            return(dtos);
        }
示例#2
0
        public List <ApplicationDTO> GetApplicationsList(ApplicationListFilterDTO filter)
        {
            var dtos = new List <ApplicationDTO>();

            try
            {
                //Select application and its profiles
                var ssoApps = _ssoApplicationRepo.SelectWhere(app => app.IsInactive.ToUpper() == "N").ToList();

                var validations = new List <ValidationResult>();
                ssoApps.AsParallel().ForAll(apps => { apps.Validate(); validations.AddRange(apps.Validation.Results); });

                if (validations.Any())
                {
                    throw new ServiceException(validations);
                }

                var appsIds = ssoApps.Select(sa => sa.Id.ToLower()).ToList();
                var translationParameters = new List <string> {
                    CommonTranslationParameter.TRANS_TP_EXC_APPL.ToString()
                };
                var translations = LoadTranslations(appsIds, translationParameters, filter.LanguageCultureName);

                //Adds profiles to applications
                ssoApps.AsParallel().ForAll(app => app.AddTranslations(translations));

                //Initialize the DTO to return
                dtos = ssoApps.Map <List <SsoApplication>, List <ApplicationDTO> >();
            }
            catch (Exception ex)
            {
                LogHelper.ExceptionAndThrow(ex);
            }

            return(dtos);
        }