Beispiel #1
0
        public async Task <List <StandDTO> > GetAllAsync(HttpRequest request, string hallId)
        {
            // Get language from header
            StringValues language = LanguageConstants.LanguageDefault;

            request?.Headers?.TryGetValue("Accept-Language", out language);

            var stands = await _standsRepository.GetAllAsync(hallId);

            MapperConfiguration mapperConfiguration      = null;
            MapperConfiguration mapperConfigurationPhoto = null;
            List <StandDTO>     standsDTO = new List <StandDTO>();

            if (stands != null)
            {
                // Create mapping depending on language
                switch (language)
                {
                case LanguageConstants.LanguageRu:
                    mapperConfiguration      = StandsMappingConfigurations.GetAllRuConfiguration;
                    mapperConfigurationPhoto = StandsMappingConfigurations.GetAllRuPhotoConfiguration;
                    break;

                case LanguageConstants.LanguageEn:
                    mapperConfiguration      = StandsMappingConfigurations.GetAllEnConfiguration;
                    mapperConfigurationPhoto = StandsMappingConfigurations.GetAllEnPhotoConfiguration;
                    break;

                case LanguageConstants.LanguageBy:
                    mapperConfiguration      = StandsMappingConfigurations.GetAllByConfiguration;
                    mapperConfigurationPhoto = StandsMappingConfigurations.GetAllByPhotoConfiguration;
                    break;

                default:
                    mapperConfiguration      = StandsMappingConfigurations.GetAllEnConfiguration;
                    mapperConfigurationPhoto = StandsMappingConfigurations.GetAllEnPhotoConfiguration;
                    break;
                }
                var mapper = new Mapper(mapperConfiguration);
                standsDTO = mapper.Map <List <StandDTO> >(stands);
                mapper    = new Mapper(mapperConfigurationPhoto);
                for (int i = 0; i < stands.Count; i++)
                {
                    var photoInfoDTO = mapper.Map <PhotoInfoDTO>(stands[i].Photo);
                    standsDTO[i].Photo = photoInfoDTO;
                }
                return(standsDTO);
            }
            return(null);
        }