Beispiel #1
0
        protected override Offer GetTunedOffer(Offer offer, RawOffer rawOffer)
        {
            var gender = rawOffer.Gender switch {
                "female" => Gender.Woman,
                "male" => Gender.Man,
                "unisex" => Gender.Unisex,
                _ => Gender.Undefined
            };

            if (gender != Gender.Undefined)
            {
                offer.Gender = gender;
            }
            else if (offer.Gender == Gender.Undefined)
            {
                offer.Gender = Gender.Unisex;
            }

            if (offer.Age == Age.Undefined)
            {
                offer.Age = Age.Adult;
            }

            return(offer);
        }
    }
Beispiel #2
0
 public Offer Process(
     Offer offer,
     RawOffer rawOffer)
 {
     offer.Currency = Currency.USD;
     return(offer);
 }
Beispiel #3
0
 protected override Offer GetTunedOffer(
     Offer offer,
     RawOffer rawOffer)
 {
     offer.Age = Age.Child;
     return(offer);
 }
Beispiel #4
0
        public Offer Process(Offer offer, RawOffer rawOffer)
        {
            var rawId = $"{offer.ShopId}:{rawOffer.OfferId}";

            offer.Id = HashHelper.GetMd5Hash(rawId);
            return(offer);
        }
Beispiel #5
0
 protected override void FillParams(
     IExtendedOffer extendedOffer,
     RawOffer rawOffer)
 {
     extendedOffer.Age    = Age.Adult;
     extendedOffer.Gender = Gender.Woman;
     base.FillParams(extendedOffer, rawOffer);
 }
Beispiel #6
0
 public Offer Process(
     Offer offer,
     RawOffer rawOffer)
 {
     offer.Age    = Age.Adult;
     offer.Gender = Gender.Woman;
     return(offer);
 }
Beispiel #7
0
 protected override void FillParams(
     IExtendedOffer extendedOffer,
     RawOffer rawOffer)
 {
     extendedOffer.Age    = Age.Adult;
     extendedOffer.Gender = Gender.Woman;
     rawOffer.Params      = RawParamHelper.GetRawParamFromNameAnabel(rawOffer.Name);
     base.FillParams(extendedOffer, rawOffer);
 }
Beispiel #8
0
        public Offer Process(
            Offer offer,
            RawOffer rawOffer)
        {
            if (offer.Model.IsNullOrWhiteSpace())
            {
                offer.Model = offer.CategoryPath;
            }

            return(offer);
        }
Beispiel #9
0
        // protected override string GetClearlyVendor(
        //     string vendor ) =>
        //     "adidas";

        protected override void FillParams(
            IExtendedOffer extendedOffer,
            RawOffer rawOffer)
        {
            rawOffer.Params = FixSizeParams(rawOffer.Params);
            base.FillParams(extendedOffer, rawOffer);
            if (extendedOffer.Gender == Gender.Undefined)
            {
                extendedOffer.Gender = Gender.Unisex;
            }
        }
Beispiel #10
0
        protected override Offer GetTunedOffer(
            Offer offer,
            RawOffer rawOffer)
        {
            var ageParam    = rawOffer.Params.FirstOrDefault(p => p.Name == AgeParamName);
            var genderParam = rawOffer.Params.FirstOrDefault(p => GenderParamName.Contains(p.Name));

            if (ageParam != null)
            {
                offer.Age = ageParam.Value switch {
                    "взрослый" => Age.Adult,
                    "none" => Age.All,
                    "дети" => Age.Child,
                    "младший" => Age.Child,
                    "ребенок" => Age.Child,
                    _ => Age.All
                };
            }

            if (genderParam != null)
            {
                var gender = genderParam.Value switch {
                    "женщина" => Gender.Woman,
                    "мужчина" => Gender.Man,
                    "none" => Gender.Unisex,
                    _ => throw new ArgumentOutOfRangeException()
                };
                if (offer.Age == Age.Adult)
                {
                    offer.Gender = gender;
                }

                if (offer.Age == Age.Child)
                {
                    if (gender == Gender.Man)
                    {
                        offer.Gender = Gender.Boy;
                    }

                    if (gender == Gender.Woman)
                    {
                        offer.Gender = Gender.Girl;
                    }
                }
            }

            return(offer);
        }
    }
}
Beispiel #11
0
        protected override Offer GetTunedOffer(Offer offer, RawOffer rawOffer)
        {
            offer.Age = Age.Adult;
            var genderParam = GetParamValueByName(rawOffer.Params, GenderParamName)?.ToLower().Trim();

            offer.Gender = genderParam switch {
                "м" => Gender.Man,
                "ж" => Gender.Woman,
                _ => Gender.Unisex
            };

            return(offer);
        }
    }
Beispiel #12
0
        protected override Offer GetTunedOffer(Offer offer, RawOffer rawOffer)
        {
            offer.Age    = Age.Adult;
            offer.Gender = Gender.Woman;
            var countryParam = offer.Params.FirstOrDefault(p => p.Name == CountryParam);

            if (countryParam != null && countryParam.Values.Any(v => v.IsNotNullOrWhiteSpace()))
            {
                offer.CountryId = DbHelper.GetCountryId(countryParam.Values.FirstOrDefault(v => v.IsNotNullOrWhiteSpace()));
            }
            if (offer.Model.IsNullOrWhiteSpace())
            {
                offer.Model = offer.CategoryPath;
            }
            return(offer);
        }
Beispiel #13
0
        protected override Offer GetTunedOffer(
            Offer offer,
            RawOffer rawOffer)
        {
            //делаем из
            //https://anabel24.ru/image/cache/catalog/public/b5/4d/a3/5447e1acd270687b4ab66a9393098226d4-200x200.jpg
            //вот такое
            //https://anabel24.ru/image/catalog/public/b5/4d/a3/5447e1acd270687b4ab66a9393098226d4.jpg
            if (offer.Photos != null &&
                offer.Photos.Any())
            {
                offer.Photos = offer.Photos
                               .Select(p => p.Replace("/cache", string.Empty))
                               .Select(p => p.Replace("-200x200", string.Empty)).ToList();
            }

            return(offer);
        }
Beispiel #14
0
        protected override void FillParams(
            IExtendedOffer extendedOffer,
            RawOffer rawOffer)
        {
            base.FillParams(extendedOffer, rawOffer);
            var materialParams = rawOffer.Params.Where(p => p.Name.Contains(Constants.Params.MaterialName));

            foreach (var param in materialParams)
            {
                var materials = param.Value.Split(
                    ParamSplitter,
                    StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
                foreach (var material in materials)
                {
                    extendedOffer.AddParamIfNeed(new RawParam {
                        NameFromXml = Constants.Params.MaterialName, ValueFromXml = material
                    });
                }
            }
        }
Beispiel #15
0
        protected override Offer GetTunedOffer(Offer offer, RawOffer rawOffer)
        {
            if (rawOffer.CategoryPath.Contains(Boys))
            {
                offer.Age    = Age.Child;
                offer.Gender = Gender.Boy;
            }
            else if (rawOffer.CategoryPath.Contains(Girls))
            {
                offer.Age    = Age.Child;
                offer.Gender = Gender.Girl;
            }
            var param = rawOffer.Params.FirstOrDefault(p => p.Name == SizeParam);

            if (param != null)
            {
                if (param.UnitFromXml == Mounth ||
                    param.UnitFromXml == Month)
                {
                    offer.Age    = Age.Child;
                    offer.Gender = Gender.Child;
                }
                else if (param.UnitFromXml == Years)
                {
                    var year = GetYear(param.Value);
                    if (year <= 3)
                    {
                        offer.Age    = Age.Child;
                        offer.Gender = Gender.Child;
                    }
                    else if (year <= 15)
                    {
                        offer.Age = Age.Child;
                    }
                }
            }

            return(offer);
        }
Beispiel #16
0
 public Offer Process(Offer offer, RawOffer rawOffer)
 {
     offer.SoldOut = rawOffer.Available == false;
     return(offer);
 }
Beispiel #17
0
 public Offer Process(Offer offer, RawOffer rawOffer)
 {
     throw new NotImplementedException();
 }
Beispiel #18
0
 protected override Offer GetTunedOffer(Offer offer, RawOffer rawOffer)
 {
     var rawParams = new[] {