Пример #1
0
        public async Task <IActionResult> Get()
        {
            // PaginationSet<OfferViewModel> pagedSet = new PaginationSet<OfferViewModel>();
            List <Offer> _offers = null;

            try
            {
                //if (await _authorizationService.AuthorizeAsync(User, "AdminOnly"))
                //{
                //int currentPage = page.Value;
                //int currentPageSize = pageSize.Value;

                int _totalOffers = new int();


                /*_offers = _offerRepository
                 *  .OrderBy(a => a.StartTime)
                 *  //.Skip(currentPage * currentPageSize)
                 *  //Take(currentPageSize)
                 *  .ToList();*/

                _offers = _offerRepository.GetAll().ToList();

                _totalOffers = _offerRepository.GetAll().Count();

                IEnumerable <OfferViewModel> _offersVM = Mapper.Map <IEnumerable <Offer>, IEnumerable <OfferViewModel> >(_offers);

                /* pagedSet = new PaginationSet<OfferViewModel>()
                 * {
                 *   Page = currentPage,
                 *   TotalCount = _totalOffers,
                 *   TotalPages = (int)Math.Ceiling((decimal)_totalOffers / currentPageSize),
                 *   Items = _offersVM
                 * };*/
                //}

                /*   else
                 * {
                 *     CodeResultStatus _codeResult = new CodeResultStatus(401);
                 *     return new ObjectResult(_codeResult);
                 * } */
            }
            catch (Exception ex)
            {
                _loggingRepository.Add(new Error()
                {
                    Message = ex.Message, StackTrace = ex.StackTrace, DateCreated = DateTime.Now
                });
                _loggingRepository.Commit();
            }

            return(new ObjectResult(_offers));
        }
Пример #2
0
        public IEnumerable <Offer> GetAll()
        {
            var dbOffers = _offerRepository.GetAll();
            var offers   = Mapper.Map <IEnumerable <Offer> >(dbOffers);

            return(offers);
        }
Пример #3
0
        public IEnumerable <Action> GetAll()
        {
            var a = new List <Action>();

            a.AddRange(Investments.GetAll());
            a.AddRange(Offers.GetAll());
            return(a);
        }
Пример #4
0
        public decimal CalculateTotalCost()
        {
            var sum = _purchasedProducts.Sum(pair => _products.GetPrice(pair.Key) * pair.Value);

            var discounts = _offers.GetAll().Sum(offer => offer.GetDiscount(this));

            sum -= discounts;

            return(Math.Round(sum, DecimalsToShow));
        }
Пример #5
0
        public decimal GetTotal(Basket basket)
        {
            if (basket?.Products == null ||
                basket.Products.Length == 0)
            {
                return(0);
            }

            var currentProductPrices = _productRepository.GetProductsPrices();

            var productsWithPrices = basket
                                     .Products
                                     .Select(p => new PricedProduct(p, currentProductPrices[p]))
                                     .ToArray();

            var offers = _offerRepository.GetAll();

            foreach (var offer in offers)
            {
                offer.Apply(productsWithPrices);
            }

            return(productsWithPrices.Sum(p => p.DiscountedPrice));
        }
Пример #6
0
 public List <Offer> GetAll()
 {
     return(offerRepository.GetAll());
 }
Пример #7
0
 public IEnumerable <Offer> GetOffers()
 {
     return(OfferRepository.GetAll());
 }
Пример #8
0
        public static void CompareOffer(List <string> topWordsList, IOfferRepository offerRepositiry)
        {
            //List<string> result = one.Union(two).ToList();

            var          listAllOffer = offerRepositiry.GetAll().OrderBy(x => x.IT_ID).ToList();
            List <Offer> result       = new List <Offer>();
            double       progress     = 0.0;
            var          watch        = Stopwatch.StartNew();

            foreach (var offer in listAllOffer.Take(100))
            {
                List <string> keyWordsList = new List <string>();
                foreach (var word in topWordsList)
                {
                    var value = offer.GetType().GetProperty(word).GetValue(offer, null);
                    if (value.Equals("1"))
                    {
                        keyWordsList.Add(word);
                    }
                }

                if (keyWordsList.Count() > 0)
                {
                    result.Add(new Offer(offer.IT_ID, keyWordsList));
                }
            }

            Console.WriteLine(progress);

            foreach (var item in result)
            {
                progress += 1.28;
                string query = String.Empty;

                var last = item.keyWordsList.Last();
                foreach (var attr in item.keyWordsList)
                {
                    if (attr.Equals(last))
                    {
                        query += attr + "=\"1\"";
                    }
                    else
                    {
                        query += attr + "=\"1\" OR ";
                    }
                }

                var listAllSimilarOffer = listAllOffer.Where(query).ToList();
                listAllSimilarOffer.Remove(listAllOffer.FirstOrDefault(x => x.IT_ID.Equals(item.offerId)));

                foreach (var similarOffer in listAllSimilarOffer)
                {
                    List <string> keyWordsList = new List <string>();
                    foreach (var word in topWordsList)
                    {
                        var value = similarOffer.GetType().GetProperty(word).GetValue(similarOffer, null);
                        if (value.Equals("1"))
                        {
                            keyWordsList.Add(word);
                        }
                    }

                    double intersectCount = item.keyWordsList.Select(x => x).Intersect(keyWordsList).Count();
                    double unionCounter   = item.keyWordsList.Union(keyWordsList).ToList().Count();
                    double divideResult   = unionCounter.Equals(0) ? 0 : (intersectCount / unionCounter);
                    item.similarOfferList.Add(new Similar(similarOffer.IT_ID, divideResult));
                }

                Console.Clear();
                progress += 1.28;
                Console.Write(progress);
            }

            watch.Stop();
            Console.Clear();
            Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss}", watch.Elapsed);

            foreach (var item in result)
            {
                item.similarOfferList = item.similarOfferList.OrderByDescending(x => x.percentSimilar).ToList();

                Console.WriteLine("Offer: " + item.offerId);
                Console.WriteLine("Similar: " + item.similarOfferList.First().offerId + " Percent: " + item.similarOfferList.First().percentSimilar);
                Console.WriteLine();
            }
        }
Пример #9
0
        public async Task <IEnumerable <OfferModel> > GetAllOffers()
        {
            var data = await _offerRepo.GetAll();

            return(data);
        }
Пример #10
0
        public IEnumerable <Offer> GetOffers()
        {
            var offers = offersRepository.GetAll();

            return(offers);
        }
Пример #11
0
        public IEnumerable <OffersDto> GetAll()
        {
            var offers = offerRepository.GetAll();

            return(mapper.Map <IEnumerable <OffersDto> >(offers));
        }
Пример #12
0
 public ActionResult k_jRead([DataSourceRequest] DataSourceRequest request)
 {
     return(Json(repository.GetAll().ToDataSourceResult(request)));
 }
Пример #13
0
 public IEnumerable <Offer> GetAllOffers()
 {
     return(_offerRepo.GetAll());
 }
Пример #14
0
        public static void CompareOffer(List<string> topWordsList, IOfferRepository offerRepositiry)
        {
            //List<string> result = one.Union(two).ToList();

            var listAllOffer = offerRepositiry.GetAll().OrderBy(x => x.IT_ID).ToList();
            List<Offer> result = new List<Offer>();
            double progress = 0.0;
            var watch = Stopwatch.StartNew();

            foreach (var offer in listAllOffer.Take(100))
            {
                List<string> keyWordsList = new List<string>();
                foreach (var word in topWordsList)
                {
                    var value = offer.GetType().GetProperty(word).GetValue(offer, null);
                    if (value.Equals("1"))
                    {
                        keyWordsList.Add(word);
                    }
                }

                if(keyWordsList.Count() > 0)
                {
                    result.Add(new Offer(offer.IT_ID, keyWordsList));
                }
            }

            Console.WriteLine(progress);

            foreach (var item in result)
            {
                progress += 1.28;
                string query = String.Empty;

                var last = item.keyWordsList.Last();
                foreach (var attr in item.keyWordsList)
                {
                    if (attr.Equals(last))
                    {
                        query += attr + "=\"1\"";
                    }
                    else
                    {
                        query += attr + "=\"1\" OR ";
                    }
                }

                var listAllSimilarOffer = listAllOffer.Where(query).ToList();
                listAllSimilarOffer.Remove(listAllOffer.FirstOrDefault(x => x.IT_ID.Equals(item.offerId)));

                foreach(var similarOffer in listAllSimilarOffer)
                {
                    List<string> keyWordsList = new List<string>();
                    foreach (var word in topWordsList)
                    {
                        var value = similarOffer.GetType().GetProperty(word).GetValue(similarOffer, null);
                        if (value.Equals("1"))
                        {
                            keyWordsList.Add(word);
                        }
                    }

                    double intersectCount = item.keyWordsList.Select(x => x).Intersect(keyWordsList).Count();
                    double unionCounter = item.keyWordsList.Union(keyWordsList).ToList().Count();
                    double divideResult = unionCounter.Equals(0) ? 0 : (intersectCount / unionCounter);
                    item.similarOfferList.Add(new Similar(similarOffer.IT_ID, divideResult));
                }

                Console.Clear();
                progress += 1.28;
                Console.Write(progress);
            }

            watch.Stop();
            Console.Clear();
            Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss}", watch.Elapsed);

            foreach (var item in result)
            {
                item.similarOfferList = item.similarOfferList.OrderByDescending(x => x.percentSimilar).ToList();

                Console.WriteLine("Offer: " + item.offerId);
                Console.WriteLine("Similar: " + item.similarOfferList.First().offerId + " Percent: " + item.similarOfferList.First().percentSimilar);
                Console.WriteLine();
            }
        }
Пример #15
0
 public IEnumerable <Offer> GetAll()
 {
     return(Offers.GetAll());
 }