コード例 #1
0
        public Dtos.SubscribersDto GetSubscriber(Dtos.GetSubscribersInput input)
        {
            //Get the Subscriber(s)  
            //NOTE:  If multiple subscribers come back than we need to filter based on subscribers associated to criteria for a company
            //NOTE:  May need to refactor by adding CompanyRefId to Subscriber
            List<Subscriber> subscribers = new List<Subscriber>();
            Subscriber subscriber = new Subscriber();
            SubscribersDto subscriberDto = new SubscribersDto();
            try
            {
                if (input.SubscribersEmail != string.Empty)
                {
                    subscribers = _subscribersRepository.GetSubscriberByEmail(input.SubscribersEmail);
                    if (subscribers.Count > 1)
                    {
                        int subscriberId = 0;
                        foreach (var item in subscribers)
                        {
                            List<SubscriberCriteria> scList =
                                _subscribersValuesRepository.GetSubscribersCriteriaValues(item.Id, input.CompanyId.Value);
                            if (scList != null)
                            {
                                if (scList.Count > 0)
                                {
                                    subscriberId = item.Id;
                                }
                            }
                        }
                        subscriber = subscribers.Where(s => s.Id == subscriberId).FirstOrDefault();
                        subscriberDto = subscriber.MapTo<SubscribersDto>();
                    }
                    else
                    {
                        subscriber = subscribers.FirstOrDefault();
                        subscriberDto = subscriber.MapTo<SubscribersDto>();
                        if (subscriber != null)
                        {
                            //Get subscriber images from DocumentHero
                            #region Get Subscriber Image
                            var inputFileExt = new List<FileExtDto>();
                            var inputFileExtValue = new FileExtDto()
                            {
                                Key = "SubscriberId",
                                Value = subscriber.Id.ToString(),
                                FileRefId = input.CompanyId.Value
                            };
                            inputFileExt.Add(inputFileExtValue);
                            GetFileInput fileInput = new GetFileInput();
                            fileInput.ApiKey = input.CompanyId;
                            fileInput.FileMetadata = inputFileExt;
                            //var _fileExtRepository = _iocResolver.Resolve<IFileExtRepository>();
                            //var fileService = IocManager.Instance.Resolve<FileAppService>();
                            //var imageUri = fileService.GetFiles(fileInput);

                            //DocumentHero.Files.FileAppService fileAppService = new FileAppService();
                            var resultsImage = _documentHeroService.GetAllByKeyValue(fileInput);
                            if (resultsImage.Files != null)
                            {
                                subscriberDto.ImageUri = resultsImage.Files[0].Uri;
                            }
                        }
                        #endregion

                    }
                }

                return subscriberDto;
            }
            catch(System.Exception exc)
            {
                Logger.ErrorFormat("CH_SAS_000", exc.StackTrace);
                throw exc;
            }
        }