public KorpaStavka Update(int id, KorpaStavkaInsertRequest request) { var entity = _context.KorpaStavka.Find(id); var UkupnoUSkladistu = 0; if (request.BiciklId != null) { UkupnoUSkladistu = _context.BiciklStanje.Where(x => x.BiciklId == request.BiciklId && x.Aktivan).Sum(x => x.Kolicina); } else if (request.DioId != null) { UkupnoUSkladistu = _context.DioStanje.Where(x => x.DioId == request.DioId && x.Aktivan && x.KupacId == null).Count(); } else if (request.OpremaId != null) { UkupnoUSkladistu = _context.OpremaStanje.Where(x => x.OpremaId == request.OpremaId && x.Aktivan && x.KupacId == null).Count(); } if (UkupnoUSkladistu < request.Kolicina) { throw new UserException("Proizvod nije dostupan u traženoj količini."); } entity.Kolicina = request.Kolicina; _context.SaveChanges(); return(_mapper.Map <Model.KorpaStavka>(entity)); }
public KorpaStavka Insert(KorpaStavkaInsertRequest request) { var StavkaQry = _context.KorpaStavka.Where(x => x.KlijentId == _korisnikService.GetCurrentUser().Klijent.Id).AsQueryable(); var UkupnoUSkladistu = 0; if (request.BiciklId != null) { StavkaQry = StavkaQry.Where(x => x.BiciklId == request.BiciklId); UkupnoUSkladistu = _context.BiciklStanje.Where(x => x.BiciklId == request.BiciklId && x.Aktivan).Sum(x => x.Kolicina); } else if (request.DioId != null) { StavkaQry = StavkaQry.Where(x => x.DioId == request.DioId); UkupnoUSkladistu = _context.DioStanje.Where(x => x.DioId == request.DioId && x.Aktivan && x.KupacId == null).Count(); } else if (request.OpremaId != null) { StavkaQry = StavkaQry.Where(x => x.OpremaId == request.OpremaId); UkupnoUSkladistu = _context.OpremaStanje.Where(x => x.OpremaId == request.OpremaId && x.Aktivan && x.KupacId == null).Count(); } var entity = StavkaQry.FirstOrDefault(); if (entity != null) { if (entity.Kolicina + request.Kolicina > UkupnoUSkladistu) { throw new UserException("Proizvod nije dostupan u traženoj količini."); } entity.Kolicina += request.Kolicina; } else { if (UkupnoUSkladistu < request.Kolicina) { throw new UserException("Proizvod nije dostupan u traženoj količini."); } entity = _mapper.Map <Data.EntityModels.KorpaStavka>(request); entity.KlijentId = _korisnikService.GetCurrentUser().Klijent.Id; _context.KorpaStavka.Add(entity); } _context.SaveChanges(); return(_mapper.Map <Model.KorpaStavka>(entity)); }