Exemple #1
0
        public HttpResponseMessage GetStatistika(HttpRequestMessage request, [FromBody] ReportKriterijModel kriterij)
        {
            HttpResponseMessage response = null;

            try
            {
                using (AukcijeClient proxy = new AukcijeClient())
                {
                    proxy.Open();
                    StatistikaDTO statistika = proxy.GetStatistika(kriterij.KategorijaId, kriterij.PrikazOd, kriterij.PrikazDo);
                    proxy.Close();

                    response = request.CreateResponse <StatistikaDTO>(HttpStatusCode.OK, statistika);
                }
            }
            catch (FaultException ex)
            {
                response = request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
            }
            catch (Exception ex)
            {
                response = request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
            }

            return(response);
        }
Exemple #2
0
        public StatistikaDTO GetStatistika(int kategorijaId, DateTime?prikazOd, DateTime?prikazDo)
        {
            try
            {
                using (BHaoDataContext context = new BHaoDataContext())
                {
                    AukcijaRepository repo = new AukcijaRepository(context);

                    IEnumerable <AukcijaDetailDTO> aukcije = repo.GetAll(null);

                    if (kategorijaId > 0)
                    {
                        aukcije = aukcije.Where(x => x.Aukcija.KategorijaId == kategorijaId).ToList();
                    }

                    if (prikazOd != null && prikazDo != null)
                    {
                        aukcije = aukcije.Where(x => (x.Aukcija.Pocetak >= prikazOd && x.Aukcija.Pocetak <= prikazDo) || (x.Aukcija.Zavrsetak >= prikazOd && x.Aukcija.Zavrsetak <= prikazDo)).ToList();
                    }

                    StatistikaDTO statistika = new StatistikaDTO();
                    if (aukcije.Count() > 0)
                    {
                        statistika.BrojAukcija  = aukcije.Count();
                        statistika.ListaAukcija = aukcije.OrderByDescending(x => x.Aukcija.Pocetak);
                        statistika.ProsjecnaVrijednostAukcija = (decimal)aukcije.Where(x => x.Aukcija.Zavrsena && x.Aukcija.NajvecaPonuda > 0)
                                                                .Average(x => x.Aukcija.NajvecaPonuda);

                        statistika.NajcesceProdavaniArtikli = aukcije.GroupBy(x => x.Artikal).Select(group => new NajcesciArtikliDTO
                        {
                            Artikal = group.Key.Proizvodjac + " " + group.Key.Model + " - " + group.Key.Naziv,
                            Count   = group.Count()
                        }).OrderByDescending(x => x.Count).Take(10);
                    }
                    else
                    {
                        statistika.BrojAukcija = 0;
                        statistika.ProsjecnaVrijednostAukcija = 0;
                    }



                    return(statistika);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }