Ejemplo n.º 1
0
        public ActionResult AukcijaFull(int id)
        {
            Aukcija a = db.Aukcijas.Find(id);

            //var res = (from b in db.Bids where b.AukcijaID==a.AukcijaID orderby b.Vreme descending select new { Bid = b }).Take(10);
            if (Session["ID"] != null)
            {
                var kor = db.Korisniks.Find(Session["ID"]);
                ViewBag.idk      = Session["ID"].ToString();
                ViewBag.brtokena = kor.BrojTokena;
            }
            ViewBag.users = new String[10];
            int i    = 0;
            var bids = db.Bids.Include(b => b.Korisnik);

            bids = bids.Where(s => s.AukcijaID == a.AukcijaID);
            bids = bids.OrderByDescending(s => s.Vreme);
            bids = bids.Take(10);
            foreach (var bx in bids)
            {
                int kid = bx.KorisnikID;
                ViewBag.users[i++] = db.Korisniks.Find(kid).Ime + " " + db.Korisniks.Find(kid).Prezime + " " + bx.PonCena;
            }
            if (a.VremeZatvaranja != null)
            {
                ViewBag.vreme = (a.VremeZatvaranja.Value - DateTime.UtcNow).TotalSeconds;
            }
            return(View(a));
        }
Ejemplo n.º 2
0
        public static void KupiOdmah(int aukcijaId, int korisnikId, BHaoDataContext context)
        {
            IAukcijaRepository aukcijaRepo = new AukcijaRepository(context);
            IPonudaRepository  ponudaRepo  = new PonudaRepository(context);

            Aukcija aukcija = aukcijaRepo.Get(aukcijaId);

            if (!aukcija.Zavrsena && aukcija.Zavrsetak > DateTime.Now)
            {
                Ponuda ponuda = new Ponuda();
                ponuda.Vrijeme         = DateTime.Now;
                ponuda.Iznos           = (decimal)aukcija.KupiOdmahCijena;
                ponuda.MaksimalanIznos = (decimal)aukcija.KupiOdmahCijena;
                ponuda.KorisnikId      = korisnikId;
                ponuda.AukcijaId       = aukcija.Id;

                ponudaRepo.Insert(ponuda);

                aukcija.Zavrsetak         = ponuda.Vrijeme;
                aukcija.KupacId           = korisnikId;
                aukcija.Zavrsena          = true;
                aukcija.NajveciPonudjacId = korisnikId;
                aukcija.NajvecaPonuda     = aukcija.KupiOdmahCijena;
                aukcija.Provizija         = ObracunProvizije(aukcija);

                aukcijaRepo.Update(aukcija);
            }
            else
            {
                throw new Exception("Aukcija već zavrsena!");
            }
        }
Ejemplo n.º 3
0
 public ActionResult NapraviAukciju(String Proizvod, String Trajanje, String PocetnaCena, HttpPostedFileBase upload)
 {
     if (Proizvod != null && Trajanje != "" && PocetnaCena != "" && upload != null && upload.ContentLength > 0)
     {
         byte[] image = new byte[upload.ContentLength];
         upload.InputStream.Read(image, 0, image.Length);
         double x = Double.Parse(PocetnaCena);
         x = (double)Math.Round((Decimal)x, 3, MidpointRounding.AwayFromZero);
         var newAuction = new Aukcija()
         {
             Proizvod       = Proizvod,
             Trajanje       = Int32.Parse(Trajanje),
             PocetnaCena    = x,
             VremeKreiranja = DateTime.UtcNow,
             Status         = "READY",
             TrenutnaCena   = x,
             Slika          = image
         };
         db.Aukcijas.Add(newAuction);
         db.SaveChanges();
         ViewBag.Message = "Uspesno";
         return(View());
     }
     else
     {
         ViewBag.Message = "Doslo je do greske";
         return(View());
     }
     return(View());
 }
Ejemplo n.º 4
0
        public HttpResponseMessage Kreiraj(HttpRequestMessage request, [FromBody] AukcijaKreirajDTO aukcijaModel)
        {
            int prijavljeniKorisnik = User.Identity.GetUserId <int>();

            HttpResponseMessage response = null;

            try
            {
                using (AukcijeClient proxy = new AukcijeClient())
                {
                    proxy.Open();

                    Aukcija a = proxy.KreirajAukciju(aukcijaModel, prijavljeniKorisnik);
                    response = request.CreateResponse <int>(HttpStatusCode.OK, a.Id);
                    proxy.Close();
                }
            }
            catch (FaultException ex)
            {
                response = request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
            }
            catch (Exception ex)
            {
                response = request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
            }

            return(response);
        }
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            Aukcija aukcija         = (Aukcija)value;
            var     minimalnaCijena = String.Format("{0} KM", aukcija.MinimalnaCijena.ToString());
            var     najvecaPonuda   = String.Format("{0} KM", aukcija.NajvecaPonuda.ToString());

            return(aukcija.NajvecaPonuda == null ? minimalnaCijena : najvecaPonuda);
        }
Ejemplo n.º 6
0
        public void testing_repository_access( )
        {
            using (BHaoDataContext context = new BHaoDataContext( ))
            {
                IAukcijaRepository repo = new AukcijaRepository(context);

                Aukcija aukcija = repo.Get(4);

                Assert.IsTrue(aukcija != null);
            }
        }
Ejemplo n.º 7
0
        public ActionResult ObrisiAukciju(int id)
        {
            if (Session["Admin"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            Aukcija a = db.Aukcijas.Find(id);

            a.Status          = "DRAFT";
            db.Entry(a).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 8
0
        //[HttpPost]
        public ActionResult IzmeniAukciju(int id)
        {
            if (Session["Admin"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            Aukcija a = db.Aukcijas.Find(id);

            if (a.Status != "READY")
            {
                return(RedirectToAction("Index", "Home"));
            }
            return(View(a));
        }
Ejemplo n.º 9
0
        // GET: Auction
        public ActionResult Index(int id = -1)
        {
            if (id == -1)
            {
                return(RedirectToAction("Index", "Home"));
            }
            Aukcija aukcija = null;

            using (var context = new IEPVebAukcijaEntities7())
            {
                aukcija = context.Aukcijas.Find(id);
                if (aukcija == null)
                {
                    return(HttpNotFound());
                }

                var bids = context.Bids
                           .Where(n => n.AukcijaID == id)
                           .OrderByDescending(n => n.PonCena)
                           .Take(10);

                foreach (var bid in bids)
                {
                    Korisnik korisnik = context.Korisniks.Find(bid.KorisnikID);
                    bid.KorisnikImePrezime = korisnik.Ime + " " + korisnik.Prezime;
                }

                aukcija.Top10Bids = bids;

                aukcija.Top10Bids = aukcija.Top10Bids.ToList();

                if ((aukcija.VremeZatvaranja != null) && (!aukcija.VremeZatvaranja.Equals("")) && (aukcija.Status.Equals("OPEN")))
                {
                    aukcija.PreostaloVreme = ((DateTime)aukcija.VremeZatvaranja - DateTime.Now).TotalSeconds;
                }
                else
                if ((aukcija.VremeOtvaranja != null) && (!aukcija.VremeOtvaranja.Equals("")) && (!aukcija.Status.Equals("OPEN")))
                {
                    //auk.PreostaloVreme = ((DateTime)auk.VremeZatvaranja - (DateTime)auk.VremeOtvaranja).TotalSeconds;
                    aukcija.PreostaloVreme = -1;
                }
                else
                {
                    aukcija.PreostaloVreme = (double)aukcija.Trajanje;
                }
            }
            return(View(aukcija));
        }
Ejemplo n.º 10
0
        public void OcijeniKorisnika(OcjenaKorisnika ocjena)
        {
            try
            {
                if (ocjena.Ocjena < 1)
                {
                    throw new FaultException("Morate odabrati ocjenu!");
                }

                using (BHaoDataContext context = new BHaoDataContext())
                {
                    IDataRepository <OcjenaKorisnika> ocjenaRepo = new DataRepositoryBase <OcjenaKorisnika>(context);
                    AukcijaRepository aukcijaRepo = new AukcijaRepository(context);

                    Aukcija aukcija = aukcijaRepo.Get(ocjena.AukcijaId);

                    if ((ocjena.OcjenjivacId == aukcija.ProdavacId || ocjena.OcjenjivacId == aukcija.KupacId) &&
                        (ocjena.OcijenjeniKorisnikId == aukcija.ProdavacId || ocjena.OcijenjeniKorisnikId == aukcija.KupacId))
                    {
                        if (ocjenaRepo.GetAll().Where(x => x.OcjenjivacId == ocjena.OcjenjivacId &&
                                                      x.OcijenjeniKorisnikId == ocjena.OcijenjeniKorisnikId && x.AukcijaId == ocjena.AukcijaId).FirstOrDefault() != null)
                        {
                            throw new FaultException("Možete ocijeniti korisnika samo jednom!");
                        }
                        else
                        {
                            ocjena.Datum = DateTime.Now;
                        }
                        ocjenaRepo.Insert(ocjena);
                    }
                    else
                    {
                        throw new FaultException("Ocjenjivać i ocijenjeni korisnik moraju biti kupac ili prodavac!");
                    }
                }
            }
            catch (FaultException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new FaultException(ex.Message);
            }
        }
Ejemplo n.º 11
0
        public ActionResult AddAuction(NewAuctionModel model)
        {
            if (checkAdmin())
            {
                return(RedirectToAction("Login", "Account"));
            }
            else
            {
                if (ModelState.IsValid)
                {
                    DateTime localDate = DateTime.Now;
                    byte[]   image     = null;

                    if (model.Slika != null)
                    {
                        // Convert HttpPostedFileBase to byte array.
                        image = new byte[model.Slika.ContentLength];
                        model.Slika.InputStream.Read(image, 0, image.Length);
                    }

                    using (var context = new IEPVebAukcijaEntities7())
                    {
                        var newAuction = new Aukcija()
                        {
                            Proizvod       = model.Proizvod,
                            Trajanje       = model.Trajanje,
                            PocetnaCena    = (decimal)model.PocetnaCena,
                            VremeKreiranja = localDate,
                            Status         = "READY",
                            TrenutnaCena   = (decimal)model.PocetnaCena,
                            Slika          = image
                        };

                        context.Aukcijas.Add(newAuction);
                        context.SaveChanges();

                        logger.Error("CREATE AUCTION: AuctionID: " + newAuction.AukcijaID + ", AuctionName: " + newAuction.Proizvod + ", AuctionStatus: " + newAuction.Status);

                        return(RedirectToAction("Index", "Admin"));
                    }
                }
                return(View());
            }
        }
Ejemplo n.º 12
0
        public void OcijeniArtikal(OcjenaArtikla ocjena)
        {
            try
            {
                if (ocjena.Ocjena < 1)
                {
                    throw new FaultException("Morate odabrati ocjenu!");
                }

                using (BHaoDataContext context = new BHaoDataContext())
                {
                    IDataRepository <OcjenaArtikla> ocjenaRepo = new DataRepositoryBase <OcjenaArtikla>(context);
                    AukcijaRepository aukcijaRepo = new AukcijaRepository(context);

                    Aukcija aukcija = aukcijaRepo.Get(ocjena.AukcijaId);

                    if (aukcija.KupacId == ocjena.OcijenioId)
                    {
                        if (ocjenaRepo.GetAll().Where(x => x.ArtikalId == ocjena.ArtikalId && x.OcijenioId == aukcija.KupacId && x.AukcijaId == ocjena.AukcijaId).FirstOrDefault() != null)
                        {
                            throw new FaultException("Možete ocijeniti artikal samo jednom!");
                        }
                        else
                        {
                            ocjena.Datum = DateTime.Now;
                            ocjenaRepo.Insert(ocjena);
                        }
                    }
                    else
                    {
                        throw new FaultException("Morate biti kupac da bi mogli ocijeniti artikal!");
                    }
                }
            }
            catch (FaultException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new FaultException(ex.Message);
            }
        }
Ejemplo n.º 13
0
        public Aukcija KreirajAukciju(AukcijaKreirajDTO aukcijaModel, int prijavljeniKorisnik)
        {
            Aukcija aukcija = new Aukcija();

            try
            {
                using (BHaoDataContext context = new BHaoDataContext())
                {
                    Artikal artikal = new Artikal();

                    DateTime pocetakAukcije = DateTime.Now;

                    IArtikalRepository      artikalRepo = new ArtikalRepository(context);
                    IAukcijaRepository      aukcijaRepo = new AukcijaRepository(context);
                    IDataRepository <Slika> slikeRepo   = new DataRepositoryBase <Slika>(context);

                    aukcija.ArtikalId       = artikalRepo.KreirajIzAukcije(aukcijaModel.Naziv, aukcijaModel.Model, aukcijaModel.Proizvodjac);
                    aukcija.Pocetak         = pocetakAukcije;
                    aukcija.Zavrsetak       = pocetakAukcije.AddDays(aukcijaModel.Trajanje);
                    aukcija.MinimalnaCijena = aukcijaModel.MinimalnaCijena;
                    aukcija.KupiOdmahCijena = aukcijaModel.KupiOdmahCijena;
                    aukcija.Napomena        = aukcijaModel.Napomena;
                    aukcija.DetaljanOpis    = aukcijaModel.DetaljanOpis;
                    aukcija.NacinPlacanjaId = aukcijaModel.NacinPlacanjaId;
                    aukcija.KategorijaId    = aukcijaModel.KategorijaId;
                    aukcija.ProdavacId      = prijavljeniKorisnik;

                    aukcija = aukcijaRepo.Insert(aukcija);

                    foreach (var slika in aukcijaModel.Slike)
                    {
                        slika.AukcijaId = aukcija.Id;
                        slikeRepo.Insert(slika);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new FaultException(ex.Message);
            }

            return(aukcija);
        }
Ejemplo n.º 14
0
        public String Otkucalo(int id)
        {
            String  s = "";
            Aukcija a = db.Aukcijas.Find(id);

            if (a.Status == "OPEN" && a.VremeZatvaranja.Value < DateTime.UtcNow)
            {
                if (a.BidID != null)
                {
                    a.Status = "SOLD";
                }
                else
                {
                    a.Status = "EXPIRED";
                }
                db.Entry(a).State = EntityState.Modified;
                db.SaveChanges();
                s = a.Status;
            }
            return(s);
        }
Ejemplo n.º 15
0
 public void EvidentirajPlacanje(int aukcijaId, DateTime datumPlacanja)
 {
     using (BHaoDataContext context = new BHaoDataContext())
     {
         try
         {
             AukcijaRepository repo    = new AukcijaRepository(context);
             Aukcija           aukcija = repo.Get(aukcijaId);
             aukcija.DatumPlacanja = datumPlacanja;
             repo.Update(aukcija);
         }
         catch (FaultException ex)
         {
             throw ex;
         }
         catch (Exception ex)
         {
             throw new FaultException(ex.Message);
         }
     }
 }
Ejemplo n.º 16
0
        public String Licitiraj(int id, out String ime, out double Cena, int idk)
        {
            ime  = "Nemate dovoljno tokena";
            Cena = 0;
            Aukcija  a = db.Aukcijas.Find(id);
            Korisnik k = db.Korisniks.Find(idk);

            if (k.BrojTokena > 0)
            {
                if (a.Status == "OPEN")
                {
                    Bid b = new Bid();
                    b.AukcijaID    = a.AukcijaID;
                    b.KorisnikID   = idk;
                    b.PonCena      = a.TrenutnaCena + 0.5;
                    a.TrenutnaCena = b.PonCena;
                    b.Vreme        = DateTime.UtcNow;
                    TimeSpan?t = a.VremeZatvaranja - b.Vreme;
                    String   s = "OK";
                    if (t.Value.TotalSeconds < 10)
                    {
                        a.Trajanje = a.Trajanje + 10;
                        DateTime startTime = a.VremeOtvaranja.Value;
                        DateTime endTime   = startTime.AddSeconds((int)a.Trajanje);
                        a.VremeZatvaranja = endTime;
                        s = "DODAJ";
                    }

                    ime  = db.Korisniks.Find(b.KorisnikID).Ime + " " + db.Korisniks.Find(b.KorisnikID).Prezime;
                    Cena = (double)a.TrenutnaCena;
                    db.Bids.Add(b);
                    db.SaveChanges();
                    return(s);
                }
                return("CLOSED");
            }
            return("TOKEN");
        }
Ejemplo n.º 17
0
        public void Ukloni(int aukcijaId)
        {
            try
            {
                using (BHaoDataContext context = new BHaoDataContext())
                {
                    AukcijaRepository repo    = new AukcijaRepository(context);
                    Aukcija           aukcija = repo.Get(aukcijaId);
                    aukcija.isDeleted = true;
                    aukcija.Zavrsena  = true;
                    aukcija.Zavrsetak = DateTime.Now;
                    repo.Update(aukcija);

                    Artikal artikal = context.Artikli.Find(aukcija.ArtikalId);

                    Poruka poruka = new Poruka()
                    {
                        Datum        = DateTime.Now,
                        PosiljalacId = 14,
                        PrimalacId   = aukcija.ProdavacId,
                        TextPoruke   = "Vaša aukcija za " + artikal.Naziv + " " + artikal.Proizvodjac + " " + artikal.Model + " je uklonjena!",
                        AukcijaId    = aukcija.Id
                    };

                    PorukaRepository porukaRepo = new PorukaRepository(context);
                    porukaRepo.Insert(poruka);
                }
            }
            catch (FaultException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new FaultException(ex.Message);
            }
        }
Ejemplo n.º 18
0
        public void BidAuction(int auctionID, int userID, out string fullUserName, out string newPrice, out bool tokens, out double timeRemaining)
        {
            try
            {
                Aukcija  aukcija  = null;
                Korisnik korisnik = null;
                using (var context = new IEPVebAukcijaEntities7())
                {
                    aukcija  = context.Aukcijas.Find(auctionID);
                    korisnik = context.Korisniks.Find(userID);
                }

                if ((aukcija != null) && (korisnik != null))
                {
                    if ((korisnik.BrojTokena > 0) && (aukcija.Status == "OPEN"))
                    {
                        tokens = false;
                        double newPriceDouble = (double)aukcija.TrenutnaCena + 1;

                        aukcija.TrenutnaCena = (decimal)newPriceDouble;

                        double preostalo = ((DateTime)aukcija.VremeZatvaranja - DateTime.Now).TotalSeconds;

                        DateTime newDate = (DateTime)aukcija.VremeZatvaranja;
                        if (preostalo <= 10)
                        {
                            double increment = preostalo * (-1);
                            increment += 10;

                            newDate = newDate.AddSeconds(increment);
                        }

                        aukcija.VremeZatvaranja = newDate;
                        timeRemaining           = aukcija.PreostaloVreme = ((DateTime)aukcija.VremeZatvaranja - DateTime.Now).TotalSeconds;

                        Bid newBid = new Bid()
                        {
                            PonCena     = (decimal)newPriceDouble,
                            VremeSlanja = DateTime.Now,
                            KorisnikID  = userID,
                            AukcijaID   = auctionID
                        };

                        using (var context = new IEPVebAukcijaEntities7())
                        {
                            context.Entry(aukcija).State = System.Data.Entity.EntityState.Modified;
                            context.SaveChanges();

                            context.Bids.Add(newBid);
                            context.SaveChanges();

                            logger.Error("AUCTION BIDED: AuctionID: " + aukcija.AukcijaID + ", AuctionCurrentPrice: " + aukcija.TrenutnaCena + ", UserBidedID: " + userID);

                            fullUserName = korisnik.Ime + " " + korisnik.Prezime;
                            newPrice     = "" + newPriceDouble;
                        }
                    }
                    else
                    {
                        fullUserName = newPrice = null;

                        if (aukcija.Status != "OPEN")
                        {
                            tokens        = false;
                            timeRemaining = -1;
                        }
                        else
                        {
                            tokens        = true;
                            timeRemaining = 1;
                        }
                    }
                }
                else
                {
                    fullUserName  = newPrice = null;
                    tokens        = true;
                    timeRemaining = -1;
                }
            }
            catch (FormatException)
            {
                fullUserName  = newPrice = null;
                tokens        = true;
                timeRemaining = -1;
                Console.WriteLine("Something went wrong.");
            }
        }
Ejemplo n.º 19
0
 public override void PostaviPonudu(double iznos)
 {
     Aukcija.DodajPonudu(iznos);
 }
Ejemplo n.º 20
0
        public static AukcijaDTO Licitiraj(Ponuda ponuda, BHaoDataContext _context)
        {
            IAukcijaRepository       aukcijaRepo   = new AukcijaRepository(_context);
            IInkrementRepository     inkrementRepo = new InkrementRepository(_context);
            IDataRepository <Ponuda> ponudaRepo    = new DataRepositoryBase <Ponuda>(_context);
            KorisnikRepository       korisnikRepo  = new KorisnikRepository(_context);

            AukcijaDTO aukcijaDTO = new AukcijaDTO();

            Aukcija aukcija = aukcijaRepo.Get(ponuda.AukcijaId);

            if (aukcija.ProdavacId == ponuda.KorisnikId)
            {
                throw new PonudaCreateException("Prodavac ne može licitirati na vlastitu aukciju!");
            }

            if (ponuda.MaksimalanIznos <= aukcija.MinimalnaCijena || ponuda.MaksimalanIznos <= aukcija.NajvecaPonuda)
            {
                throw new PonudaCreateException("Maksimalna ponuda mora biti veća od početne cijene ili trenutne najveće ponude!");
            }

            if (aukcija.Zavrsena || aukcija.Zavrsetak < DateTime.Now)
            {
                throw new PonudaCreateException("Vrijeme aukcije isteklo, aukcija završena!");
            }

            List <Ponuda> topDvijePonude = ponudaRepo.GetAll().Where(x => x.AukcijaId == ponuda.AukcijaId)
                                           .OrderByDescending(x => x.MaksimalanIznos).ThenByDescending(x => x.Id).Take(2).ToList();

            Ponuda trenutnaNajveca = new Ponuda();

            if (topDvijePonude.Count > 0)
            {
                trenutnaNajveca = topDvijePonude[0];
            }

            if (aukcija.NajvecaPonuda == null)
            {
                aukcija.NajvecaPonuda = aukcija.MinimalnaCijena > 0 ? aukcija.MinimalnaCijena : 1;
                ponuda.Iznos          = (decimal)aukcija.NajvecaPonuda;

                ponudaRepo.Insert(ponuda);

                aukcija.NajvecaPonuda     = ponuda.Iznos;
                aukcija.NajveciPonudjacId = ponuda.KorisnikId;
                aukcijaRepo.Update(aukcija);

                aukcijaDTO.NajvecaPonuda = ponuda;
            }
            else
            {
                if (aukcija.NajveciPonudjacId == ponuda.KorisnikId)
                {
                    throw new PonudaCreateException("Već imate najveću ponudu!");
                }

                //Inkrement inkrement = inkrementRepo.GetInkrementByIznosPonude((decimal)aukcija.NajvecaPonuda);

                if (ponuda.MaksimalanIznos > trenutnaNajveca.MaksimalanIznos)
                {
                    Inkrement inkrement = inkrementRepo.GetInkrementByIznosPonude(trenutnaNajveca.MaksimalanIznos);
                    if ((trenutnaNajveca.MaksimalanIznos + inkrement.IznosInkrementa) <= ponuda.MaksimalanIznos)
                    {
                        ponuda.Iznos = trenutnaNajveca.MaksimalanIznos + inkrement.IznosInkrementa;
                    }
                    else
                    {
                        ponuda.Iznos = ponuda.MaksimalanIznos;
                    }



                    ponudaRepo.Insert(ponuda);

                    if (trenutnaNajveca.Iznos != trenutnaNajveca.MaksimalanIznos)
                    {
                        trenutnaNajveca.Iznos = trenutnaNajveca.MaksimalanIznos;
                        ponudaRepo.Insert(trenutnaNajveca);
                    }


                    aukcija.NajvecaPonuda     = ponuda.Iznos;
                    aukcija.NajveciPonudjacId = ponuda.KorisnikId;
                    aukcijaRepo.Update(aukcija);

                    aukcijaDTO.NajvecaPonuda = ponuda;
                }
                else
                {
                    Ponuda novaNajveca = new Ponuda();
                    novaNajveca.AukcijaId       = trenutnaNajveca.AukcijaId;
                    novaNajveca.KorisnikId      = trenutnaNajveca.KorisnikId;
                    novaNajveca.MaksimalanIznos = trenutnaNajveca.MaksimalanIznos;

                    Inkrement inkrement = inkrementRepo.GetInkrementByIznosPonude(ponuda.MaksimalanIznos);
                    if (trenutnaNajveca.MaksimalanIznos > (ponuda.MaksimalanIznos + inkrement.IznosInkrementa))
                    {
                        novaNajveca.Iznos   = ponuda.MaksimalanIznos + inkrement.IznosInkrementa;
                        novaNajveca.Vrijeme = DateTime.Now;
                    }
                    else
                    {
                        novaNajveca.Iznos   = trenutnaNajveca.MaksimalanIznos;
                        novaNajveca.Vrijeme = DateTime.Now;
                    }

                    ponuda.Iznos = ponuda.MaksimalanIznos;

                    ponudaRepo.Insert(ponuda);
                    ponudaRepo.Insert(novaNajveca);

                    aukcija.NajvecaPonuda     = novaNajveca.Iznos;
                    aukcija.NajveciPonudjacId = novaNajveca.KorisnikId;
                    aukcijaRepo.Update(aukcija);

                    aukcijaDTO.NajvecaPonuda = novaNajveca;
                }

                //ponuda.Iznos = (decimal)aukcija.NajvecaPonuda + inkrement.IznosInkrementa < ponuda.MaksimalanIznos
                //    ? (decimal)aukcija.NajvecaPonuda + inkrement.IznosInkrementa : ponuda.MaksimalanIznos;
            }



            //if (topDvijePonude.Count > 1)
            //{
            //    Ponuda ponuda1 = topDvijePonude.First();
            //    Ponuda ponuda2 = topDvijePonude.Last();

            //    if (ponuda1.KorisnikId != ponuda2.KorisnikId)
            //    {

            //        Inkrement inkrement = inkrementRepo.GetInkrementByIznosPonude(ponuda2.MaksimalanIznos);

            //        ponuda1.Iznos = (ponuda2.MaksimalanIznos + inkrement.IznosInkrementa) > ponuda1.MaksimalanIznos ? ponuda1.MaksimalanIznos : ponuda2.MaksimalanIznos + inkrement.IznosInkrementa;

            //        ponudaRepo.Insert(ponuda1);


            //        aukcija.NajvecaPonuda = ponuda1.Iznos;
            //        aukcija.NajveciPonudjacId = ponuda1.KorisnikId;
            //        aukcijaRepo.Update(aukcija);

            //        aukcijaDTO.NajveciPonudjacId = aukcija.NajveciPonudjacId;
            //        aukcijaDTO.NajvecaPonuda = ponuda1;
            //        aukcijaDTO.NajveciPonudjac = korisnikRepo.GetById(aukcija.NajveciPonudjacId);
            //        aukcijaDTO.Prodavac = korisnikRepo.GetById(aukcija.ProdavacId);
            //        return aukcijaDTO;
            //    }


            //    aukcijaDTO.NajveciPonudjacId = ponuda1.KorisnikId;
            //    aukcijaDTO.NajvecaPonuda = ponuda1;
            //    aukcijaDTO.NajveciPonudjac = korisnikRepo.GetById(ponuda1.KorisnikId);

            //    return aukcijaDTO;
            //}

            //aukcija.NajvecaPonuda = ponuda.Iznos;
            //aukcija.NajveciPonudjacId = ponuda.KorisnikId;
            //aukcijaRepo.Update(aukcija);

            //aukcijaDTO.NajvecaPonuda = ponuda;
            aukcijaDTO.NajveciPonudjacId = aukcija.NajveciPonudjacId;
            aukcijaDTO.NajveciPonudjac   = korisnikRepo.GetById(aukcija.NajveciPonudjacId);
            aukcijaDTO.Prodavac          = korisnikRepo.GetById(aukcija.ProdavacId);
            return(aukcijaDTO);
        }
Ejemplo n.º 21
0
        public static decimal ObracunProvizije(Aukcija aukcija)
        {
            decimal procent = 0.05M;

            return(aukcija.NajvecaPonuda > 0 ? (decimal)aukcija.NajvecaPonuda * procent : 0);
        }