Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }