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