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); }
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")); } }
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")); } }
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); } }
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); } }