Ejemplo n.º 1
0
        public async Task <NewPricelistDto> GetPricelist(int pricelistId)
        {
            var priceHourly = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist).FirstOrDefaultAsync(pr => pr.Item.Type == "Hourly" && pr.Pricelist.Active);

            var priceDaily = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist).FirstOrDefaultAsync(pr => pr.Item.Type == "Daily" && pr.Pricelist.Active);

            var priceMonthly = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist).FirstOrDefaultAsync(pr => pr.Item.Type == "Monthly" && pr.Pricelist.Active);

            var priceAnnual = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist).FirstOrDefaultAsync(pr => pr.Item.Type == "Annual" && pr.Pricelist.Active);

            var prToRet = new NewPricelistDto
            {
                Active       = true,
                From         = priceHourly.Pricelist.From,
                To           = priceHourly.Pricelist.To,
                IdHourly     = priceHourly.Id,
                IdDaily      = priceDaily.Id,
                IdMonthly    = priceMonthly.Id,
                IdAnnual     = priceAnnual.Id,
                PriceHourly  = priceHourly.Price,
                PriceDaily   = priceDaily.Price,
                PriceMonthly = priceMonthly.Price,
                PriceAnnual  = priceAnnual.Price
            };

            return(prToRet);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UpdatePricelist(int pricelistId, NewPricelistDto pricelist)
        {
            var result = await _publicTransportRepository.UpdatePricelist(pricelistId, pricelist);

            if (result != null)
            {
                return(Ok(result));
            }
            else
            {
                return(BadRequest("Failed to update pricelist"));
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> AddPricelist(NewPricelistDto pricelist)
        {
            var result = await _publicTransportRepository.AddPricelist(pricelist);

            if (result != null)
            {
                return(Ok(result));
            }
            else
            {
                return(BadRequest("Failed while creating new pricelist"));
            }
        }
Ejemplo n.º 4
0
        public async Task <PricelistItem> UpdatePricelist(int pricelistId, NewPricelistDto pricelist)
        {
            var priceHourly = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist).FirstOrDefaultAsync(pr => pr.Item.Type == "Hourly" && pr.Id == pricelist.IdHourly);

            priceHourly.Pricelist.From   = pricelist.From;
            priceHourly.Pricelist.To     = pricelist.To;
            priceHourly.Pricelist.Active = pricelist.Active;

            _context.Update(priceHourly);
            await SaveAll();

            var priceDaily = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist).FirstOrDefaultAsync(pr => pr.Item.Type == "Daily" && pr.Id == pricelist.IdDaily);

            var priceMonthly = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist).FirstOrDefaultAsync(pr => pr.Item.Type == "Monthly" && pr.Id == pricelist.IdMonthly);

            var priceAnnual = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist).FirstOrDefaultAsync(pr => pr.Item.Type == "Annual" && pr.Id == pricelist.IdAnnual);

            priceHourly.Price  = pricelist.PriceHourly;
            priceDaily.Price   = pricelist.PriceDaily;
            priceMonthly.Price = pricelist.PriceMonthly;
            priceAnnual.Price  = pricelist.PriceAnnual;

            _context.Update(priceHourly);
            _context.Update(priceDaily);
            _context.Update(priceMonthly);
            _context.Update(priceAnnual);

            if (pricelist.Active)
            {
                var pricelistFromDb = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist)
                                      .Where(pr => pr.Pricelist.Active == true && priceHourly.Pricelist.Id != pr.Pricelist.Id).ToListAsync();

                foreach (var pr in pricelistFromDb)
                {
                    pr.Pricelist.Active = false;
                }
            }

            if (await SaveAll())
            {
                return(priceHourly);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 5
0
        public async Task <PricelistItem> AddPricelist(NewPricelistDto pricelist)
        {
            var prl = new Pricelist()
            {
                From   = pricelist.From,
                To     = pricelist.To,
                Active = pricelist.Active
            };

            _context.Pricelists.Add(prl);
            await SaveAll();


            var hourItem = await _context.Items.FirstOrDefaultAsync(i => i.Type == "Hourly");

            var dayItem = await _context.Items.FirstOrDefaultAsync(i => i.Type == "Daily");

            var monthItem = await _context.Items.FirstOrDefaultAsync(i => i.Type == "Monthly");

            var annualItem = await _context.Items.FirstOrDefaultAsync(i => i.Type == "Annual");

            var priceHourly  = new PricelistItem();
            var priceDaily   = new PricelistItem();
            var priceMonthly = new PricelistItem();
            var priceAnnual  = new PricelistItem();

            _mapper.Map(pricelist, priceHourly);
            _mapper.Map(pricelist, priceDaily);
            _mapper.Map(pricelist, priceMonthly);
            _mapper.Map(pricelist, priceAnnual);

            priceHourly.Item      = hourItem;
            priceHourly.Price     = pricelist.PriceHourly;
            priceHourly.Pricelist = prl;

            priceDaily.Item      = dayItem;
            priceDaily.Price     = pricelist.PriceDaily;
            priceDaily.Pricelist = prl;

            priceMonthly.Item      = monthItem;
            priceMonthly.Price     = pricelist.PriceMonthly;
            priceMonthly.Pricelist = prl;

            priceAnnual.Item      = annualItem;
            priceAnnual.Price     = pricelist.PriceAnnual;
            priceAnnual.Pricelist = prl;

            if (pricelist.Active)
            {
                var pricelistFromDb = await _context.PricelistItems.Include(pr => pr.Item).Include(pr => pr.Pricelist)
                                      .Where(pr => pr.Pricelist.Active == true).ToListAsync();

                foreach (var pr in pricelistFromDb)
                {
                    pr.Pricelist.Active = false;
                }
            }

            _context.PricelistItems.Add(priceHourly);
            _context.PricelistItems.Add(priceDaily);
            _context.PricelistItems.Add(priceMonthly);
            _context.PricelistItems.Add(priceAnnual);

            if (await SaveAll())
            {
                return(priceAnnual);
            }
            else
            {
                return(null);
            }
        }