public GetImageDomainResponse GetImageDomain(GetImageDomainRequest request)
        {
            GetImageDomainResponse response    = new GetImageDomainResponse();
            ImageDomain            imageDomain = imageDomainRepository.GetImageDomain(request.ImageDomainId);

            if (imageDomain != null)
            {
                response.ImageDomainViewModel = Mapper.Map <ImageDomain, ImageDomainViewModel>(imageDomain);
            }
            return(response);
        }
        void isValidImageDomain(ImageDomain imageDomain)
        {
            IEnumerable <BusinessRule> brokenRules = imageDomain.GetBrokenRules();

            if (brokenRules.Any())
            {
                StringBuilder brokenRulesBuilder = new StringBuilder();
                foreach (BusinessRule rule in brokenRules.Distinct())
                {
                    brokenRulesBuilder.AppendLine(rule.RuleDescription);
                }

                throw new UnsupportedOperationException(brokenRulesBuilder.ToString());
            }
        }
        ImageDomainViewModel updateImageDomain(ImageDomainViewModel imageDomainViewModel)
        {
            ImageDomain imageDomain = Mapper.Map <ImageDomainViewModel, ImageDomain>(imageDomainViewModel);

            isValidImageDomain(imageDomain);
            bool isDuplicate = imageDomainRepository.IsDuplicateImageDomain(imageDomain);

            if (isDuplicate)
            {
                var message = "[|Image domain |] \"" + imageDomain.Domain + "\" [|already exists. Please choose a different domain.|]";
                throw new UnsupportedOperationException(message);
            }

            imageDomainRepository.Update(imageDomain);
            ImageDomain updatedImageDomain = unitOfWork.Commit() as ImageDomain;

            Logger.Current.Informational("Image domain updated successfully.");
            AddImageDomainBinding(imageDomain.Domain);
            return(Mapper.Map <ImageDomain, ImageDomainViewModel>(updatedImageDomain));
        }
        public InsertImageDomainResponse InsertImageDomain(InsertImageDomainRequest request)
        {
            InsertImageDomainResponse response = new InsertImageDomainResponse();
            ImageDomain imageDomain            = Mapper.Map <ImageDomainViewModel, ImageDomain>(request.ImageDomainViewModel);

            isValidImageDomain(imageDomain);
            bool isDuplicate = imageDomainRepository.IsDuplicateImageDomain(imageDomain);

            if (isDuplicate)
            {
                var message = "[|Image domain |] \"" + imageDomain.Domain + "\" [|already exists. Please choose a different domain.|]";
                throw new UnsupportedOperationException(message);
            }
            imageDomainRepository.Insert(imageDomain);
            ImageDomain          newImageDomain       = unitOfWork.Commit() as ImageDomain;
            ImageDomainViewModel imageDomainViewModel = Mapper.Map <ImageDomain, ImageDomainViewModel>(newImageDomain);

            AddImageDomainBinding(imageDomain.Domain);
            response.ImageDomainViewModel = imageDomainViewModel;
            return(response);
        }