public IEnumerable <AukcijaDetailDTO> GetAllZaKorisnika(int korisnikId, string kriterij) { IEnumerable <AukcijaDetailDTO> query; switch (kriterij) { case "kupac": query = from a in _context.Aukcije.Include(a => a.Ponude).Where(x => x.KupacId == korisnikId || x.Ponude.Where(p => p.KorisnikId == korisnikId).ToList().Count() > 0) select new AukcijaDetailDTO() { Aukcija = a, Slike = a.Slike, Artikal = a.Artikal }; break; case "prodavac": query = from a in _context.Aukcije.Where(x => x.ProdavacId == korisnikId) select new AukcijaDetailDTO() { Aukcija = a, Slike = a.Slike, Artikal = a.Artikal }; break; default: query = from a in _context.Aukcije.Include(a => a.Ponude).Where(x => x.ProdavacId == korisnikId || x.KupacId == korisnikId || x.Ponude.Where(p => p.KorisnikId == korisnikId).ToList().Count() > 0) select new AukcijaDetailDTO() { Aukcija = a, Slike = a.Slike, Artikal = a.Artikal }; break; } List <AukcijaDetailDTO> aukcijeKorisnika = query.OrderByDescending(x => x.Aukcija.Zavrsetak).ToList(); KorisnikRepository korisnikRepo = new KorisnikRepository(_context); foreach (var item in aukcijeKorisnika) { item.Kupac = item.Aukcija.KupacId != null?korisnikRepo.GetById((int)item.Aukcija.KupacId) : null; item.Prodavac = korisnikRepo.GetById(item.Aukcija.ProdavacId); } return(aukcijeKorisnika); }
public AukcijaDTO GetAukcijaDetail(int aukcijaId, int korisnikId) { var query = from a in _context.Aukcije.Include(x => x.Slike) where a.Id == aukcijaId join ar in _context.Artikli on a.ArtikalId equals ar.Id join n in _context.NaciniPlacanja on a.NacinPlacanjaId equals n.Id select new AukcijaDTO() { Id = a.Id, Pocetak = a.Pocetak, Zavrsetak = a.Zavrsetak, NazivArtikla = ar.Naziv, Proizvodjac = ar.Proizvodjac, Model = ar.Model, PocetnaCijena = a.MinimalnaCijena, KupiOdmahCijena = a.KupiOdmahCijena, DetaljanOpis = a.DetaljanOpis, ProdavacId = a.ProdavacId, NacinPlacanja = n.Opis, Napomena = a.Napomena, Slike = a.Slike, NajveciPonudjacId = a.NajveciPonudjacId, Zavrsena = a.Zavrsena, ArtikalId = (int)a.ArtikalId }; AukcijaDTO aukcijaDTO = query.FirstOrDefault(); KorisnikRepository korisnikRepo = new KorisnikRepository(_context); if (aukcijaDTO.NajveciPonudjacId != 0) { Ponuda najvecaPonuda = _context.Ponude .Where(x => x.KorisnikId == aukcijaDTO.NajveciPonudjacId && x.AukcijaId == aukcijaDTO.Id) .OrderByDescending(x => x.Iznos) .Take(1).SingleOrDefault(); aukcijaDTO.NajvecaPonuda = najvecaPonuda; aukcijaDTO.NajveciPonudjac = korisnikRepo.GetById(aukcijaDTO.NajveciPonudjacId); } aukcijaDTO.Prodavac = korisnikRepo.GetById(aukcijaDTO.ProdavacId); PonudaRepository ponudaRepo = new PonudaRepository(_context); aukcijaDTO.Ponude = ponudaRepo.GetPonudeByAukcijaId(aukcijaDTO.Id); IDataRepository <OcjenaKorisnika> ocjenaKorisnikaRepo = new DataRepositoryBase <OcjenaKorisnika>(_context); aukcijaDTO.OcjeneKorisnika = ocjenaKorisnikaRepo.GetAll().Where(x => x.AukcijaId == aukcijaDTO.Id).ToList(); IDataRepository <OcjenaArtikla> ocjenaArtiklaRepo = new DataRepositoryBase <OcjenaArtikla>(_context); aukcijaDTO.OcjeneArtikla = ocjenaArtiklaRepo.GetAll().Where(x => x.ArtikalId == aukcijaDTO.ArtikalId).ToList(); IDataRepository <KomentarKorisnika> komentarKorisnikaRepo = new DataRepositoryBase <KomentarKorisnika>(_context); KomentarKorisnika komentar = komentarKorisnikaRepo.GetAll().Where(x => x.KomentatorId == korisnikId && x.AukcijaId == aukcijaDTO.Id).FirstOrDefault(); if (komentar != null && komentar.isDeleted) { komentar.TextKomentara = "Komentar obrisan."; } aukcijaDTO.KomentarKorisnika = komentar; IDataRepository <KomentarArtikla> komentarArtiklaRepo = new DataRepositoryBase <KomentarArtikla>(_context); KomentarArtikla komentarArtikla = komentarArtiklaRepo.GetAll().Where(x => x.KomentatorId == korisnikId && x.AukcijaId == aukcijaDTO.Id).FirstOrDefault(); if (komentarArtikla != null && komentarArtikla.isDeleted) { komentarArtikla.TextKomentara = "Komentar obrisan."; } aukcijaDTO.KomentarArtikla = komentarArtikla; ArtikalRepository artikalRepo = new ArtikalRepository(_context); Artikal artikal = artikalRepo.GetByIdWithProsjecnaOcjena(aukcijaDTO.ArtikalId); aukcijaDTO.Artikal = artikal; return(aukcijaDTO); }