Пример #1
0
        public IEnumerable <Affiliate> GetAffiliates(AffiliateRequest request)
        {
            request = request ?? new AffiliateRequest();

            var cacheKey = string.Format("{0}.{1}", CacheKeyBase, request.ToString());

            return(request.UseCache ? _cacheStorage.Retrieve(cacheKey, () => GetAffiliatesInternal(request)) : GetAffiliatesInternal(request));
        }
Пример #2
0
        public IEnumerable <Affiliate> GetAffiliates(AffiliateRequest request = null)
        {
            const string cacheKey = "UserService.Affiliates";

            request = request ?? new AffiliateRequest();

            return(request.UseCache ? _cacheStorage.Retrieve(cacheKey, () => GetAffiliatesInternal(request)) : GetAffiliatesInternal(request));
        }
Пример #3
0
        public Affiliate CreateAffiliate(AffiliateRequest affiliateRequest)
        {
            var url = GetRequestUrl("/affiliates/");

            var payLoad = JsonConvert.SerializeObject(affiliateRequest);

            var response = HttpClient.PostAsync(url, new StringContent(payLoad)).Result;

            return(GetResponse <Affiliate>(response));
        }
Пример #4
0
        public Affiliate GetAffiliate(int id)
        {
            var request = new AffiliateRequest
            {
                AffiliateID  = id,
                UseCache     = false,
                IncludeLogos = true
            };

            return(_affiliateService.GetAffiliates(request).FirstOrDefault());
        }
Пример #5
0
        private IEnumerable <Affiliate> GetAffiliatesInternal(AffiliateRequest request)
        {
            var query = _affiliateRepository.GetAll <Affiliate>()
                        .AsNoTracking()
                        .Include("Features")
                        .Include("Features.Settings")
                        .Include("Features.Feature")
                        .Include("Features.Feature.Settings");

            if (request.AffiliateID > 0)
            {
                query = query.Where(a => a.AffiliateID == request.AffiliateID);
            }

            if (request.IncludeLogos)
            {
                query = query.Include("Logos")
                        .Include("Logos.LogoType")
                        .Include("Logos.FileInfo");
            }

            if (request.IncludeSamlConfiguration)
            {
                query = query.Include("SamlConfiguration")
                        .Include("SamlConfiguration.ConfigurationType")
                        .Include("SamlConfiguration.ConfigurationType.Settings")
                        .Include("SamlConfiguration.ConfigurationSettings")
                        .Include("SamlConfiguration.ConfigurationSettings.Environment")
                        .Include("SamlConfiguration.ConfigurationSettings.Setting");
            }

            var affiliates = request.IncludeUserCount ? GetAffiliateUserCounts(query).ToList() : query.OrderBy(a => a.Name).ToList();

            if (request.IncludeLogos)
            {
                var logoTypes = _affiliateRepository.GetAll <AffiliateLogoType>().ToList();

                foreach (var affiliate in affiliates)
                {
                    foreach (var logoType in logoTypes.Where(logoType => !affiliate.Logos.Any(l => l.AffiliateLogoTypeID == logoType.AffiliateLogoTypeID)))
                    {
                        affiliate.Logos.Add(new AffiliateLogo()
                        {
                            AffiliateID         = affiliate.AffiliateID,
                            AffiliateLogoTypeID = logoType.AffiliateLogoTypeID,
                            LogoType            = logoType
                        });
                    }
                }
            }

            return(affiliates);
        }
Пример #6
0
        private IEnumerable <Affiliate> GetAffiliatesInternal(AffiliateRequest request)
        {
            var query = _userRepository.GetAll <Affiliate>()
                        .Include("Logos");

            if (request.AffiliateID > 0)
            {
                query = query.Where(a => a.AffiliateID == request.AffiliateID);
            }

            return(request.IncludeUserCount ? GetAffiliateUserCounts(query).ToList() : query.ToList());
        }
Пример #7
0
        public IEnumerable <AffiliateFeature> GetAffiliateFeatures(int affiliateId)
        {
            var request = new AffiliateRequest
            {
                AffiliateID  = affiliateId,
                UseCache     = false,
                IncludeLogos = true
            };

            var affiliate = GetAffiliates(request).FirstOrDefault();

            if (affiliate == null)
            {
                throw new Exception("Invalid Affiliate ID");
            }

            // Get all available features
            var features = GetFeatures().ToList();

            // Add any missing features
            foreach (var feature in features.Where(feature => affiliate.Features.All(f => f.FeatureID != feature.FeatureID)))
            {
                affiliate.Features.Add(new AffiliateFeature()
                {
                    AffiliateID = affiliate.AffiliateID,
                    FeatureID   = feature.FeatureID,
                    Feature     = feature,
                    IsEnabled   = false
                });
            }

            // Now add any missing feature settings
            foreach (var affiliateFeature in affiliate.Features)
            {
                var feature = features.First(f => f.FeatureID == affiliateFeature.FeatureID);

                foreach (var setting in feature.Settings.Where(setting => affiliateFeature.Settings.All(s => s.FeatureSettingID != setting.FeatureSettingID)))
                {
                    affiliateFeature.Settings.Add(new AffiliateFeatureSetting()
                    {
                        FeatureSettingID   = setting.FeatureSettingID,
                        AffiliateFeatureID = affiliateFeature.AffiliateFeatureID
                    });
                }
            }

            return(affiliate.Features.OrderBy(f => f.Feature.Name).ToList());
        }
Пример #8
0
        public IEnumerable <dynamic> GetAffiliates([FromUri] AffiliateRequest request)
        {
            request = request ?? new AffiliateRequest();

            return(_affiliateService.GetAffiliates(request).OrderBy(a => a.Name).Select(a => new
            {
                a.AffiliateID,
                a.Name,
                a.ExternalID,
                Phone = a.Phone.FormatAsPhoneNo(),
                a.WebsiteUrl,
                Address = a.Address.Replace(Environment.NewLine, "<br/>"),
                a.UserCount,
                a.ModifyDateUtc
            }));
        }
Пример #9
0
        public IEnumerable <Affiliate> GetAffiliates(AffiliateRequest request)
        {
            var proxy = _affiliateService.CreateProxy();

            return(proxy.GetAffiliates(request));
        }