示例#1
0
        public ActionResult KreirajPonudu(bool kreirajNovu = true)
        {
            PonudaModel ponudaModel = null;

            if (!kreirajNovu)
            {
                ponudaModel = SessionFacade.AktivnaPonuda;
            }

            if (ponudaModel == null)
            {
                ponudaModel = new PonudaModel()
                {
                    VaziOd         = DateTime.Now.Date.ToShortDateString(), //.ToString("dd/MM/yyyy").Replace('.', '/'),
                    VaziDo         = DateTime.Now.Date.ToShortDateString(), //.ToString("dd/MM/yyyy").Replace('.', '/'),
                    Popust         = 20,
                    PonudeJedinice = new List <PonudaJedinicaModel>()
                    {
                        InicijalizujPonudaJedinicaModel()
                    },
                    Aktivnosti = new List <PonudeAktivnostiModel>()
                    {
                        new PonudeAktivnostiModel()
                        {
                            Aktivnost  = int.Parse(_ponudaServis.DobaviSveAktivnosti().FirstOrDefault().Value),
                            Aktivnosti = _ponudaServis.DobaviSveAktivnosti()
                        }
                    }
                };
            }

            SessionFacade.AktivnaPonuda = ponudaModel;

            return(View(ponudaModel));
        }
示例#2
0
        public ActionResult DodajPonudu(PonudaModel model)
        {
            //Inicijalizuj listu ako je null
            if (model.PonudeJedinice == null)
            {
                model.PonudeJedinice = new List <PonudaJedinicaModel>();
            }

            //Inicijalizuj listu ako je null
            if (model.Aktivnosti == null)
            {
                model.Aktivnosti = new List <PonudeAktivnostiModel>();
            }

            //dodaj Jedinicu
            if (model.Dodaj == 1)
            {
                model.PonudeJedinice.Add(InicijalizujPonudaJedinicaModel());
            }

            //else if model.dodaj == 2 dodaj aktivnost
            else
            {
                model.Aktivnosti.Add(new PonudeAktivnostiModel()
                {
                    Aktivnost  = int.Parse(_ponudaServis.DobaviSveAktivnosti().FirstOrDefault().Value),
                    Aktivnosti = _ponudaServis.DobaviSveAktivnosti()
                });
            }

            //Populisi drodown liste za stanbene jedinice za svaku red
            foreach (var item in model.PonudeJedinice)
            {
                item.StanbeneJedinice        = _ponudaServis.DobaviJediniceFiltriranePoTipuSmjestaja(item.TipStanbeneJedinice);
                item.TipoviStanbenihJedinica = _ponudaServis.DobaviTipoveSmjestaja();
            }

            //Populisti dropdwon listu aktivnosti za svaki red
            foreach (var item in model.Aktivnosti)
            {
                item.Aktivnosti = _ponudaServis.DobaviSveAktivnosti();
            }

            SessionFacade.AktivnaPonuda = model;

            return(View("KreirajPonudu", model));
        }
示例#3
0
        public ActionResult PregledPonude(PonudaModel model)
        {
            //Inicijalizuj listu
            if (model.PonudeJedinice == null)
            {
                model.PonudeJedinice = new List <PonudaJedinicaModel>();
            }
            //Inicijalizuj listu
            if (model.Aktivnosti == null)
            {
                model.Aktivnosti = new List <PonudeAktivnostiModel>();
            }

            //Populisi drodown liste za stanbene jedinice za svaku red
            foreach (var item in model.PonudeJedinice)
            {
                item.StanbeneJedinice        = _ponudaServis.DobaviJediniceFiltriranePoTipuSmjestaja(item.TipStanbeneJedinice);
                item.TipoviStanbenihJedinica = _ponudaServis.DobaviTipoveSmjestaja();
                float tempVal = 1 - (float)model.Popust / 100;
                item.CijenaSaPopustom = tempVal * item.CijenaBezPopusta;
            }

            //Populisti dropdwon listu aktivnosti za svaki red
            foreach (var item in model.Aktivnosti)
            {
                item.Aktivnosti = _ponudaServis.DobaviSveAktivnosti();
            }

            //Ako model nije validan vrati poruku nazad
            if (!ModelState.IsValid)
            {
                return(View("KreirajPonudu", model));
            }

            //Ako model ne sadrzi niti jednu jedinicu onda nije validan i prikazi poruku
            if (model.PonudeJedinice.Count < 1)
            {
                ModelState.AddModelError("", "Ponuda mora sadrzavati najmanje jednu jedinicu!!!");
                return(View("KreirajPonudu", model));
            }

            SessionFacade.AktivnaPonuda = model;

            ViewData["PreusmjeriNa"] = "KreirajPonudu";

            return(View(model));
        }
示例#4
0
        public ActionResult ObrisiStavkuIzPonude(PonudaModel model)
        {
            //Inicijalizuj listu
            if (model.PonudeJedinice == null)
            {
                model.PonudeJedinice = new List <PonudaJedinicaModel>();
            }
            //Inicijalizuj listu
            if (model.Aktivnosti == null)
            {
                model.Aktivnosti = new List <PonudeAktivnostiModel>();
            }

            //Pronadji jedinicu sa prosljedjenim Guidom i izbrisi je ako postoji
            var tempModel = model.PonudeJedinice.FirstOrDefault(x => x.MyGuid == model.Guid);

            if (tempModel != null)
            {
                model.PonudeJedinice.Remove(tempModel);
            }

            //Pronadji aktivnosti sa porsljedjenim Guidom i izbrisi je ako postoji
            var tempModel2 = model.Aktivnosti.FirstOrDefault(x => x.MyGuid == model.Guid);

            if (tempModel2 != null)
            {
                model.Aktivnosti.Remove(tempModel2);
            }


            //Populisi drodown liste za stanbene jedinice za svaku red
            foreach (var item in model.PonudeJedinice)
            {
                item.StanbeneJedinice        = _ponudaServis.DobaviJediniceFiltriranePoTipuSmjestaja(item.TipStanbeneJedinice);
                item.TipoviStanbenihJedinica = _ponudaServis.DobaviTipoveSmjestaja();
            }

            //Populisti dropdwon listu aktivnosti za svaki red
            foreach (var item in model.Aktivnosti)
            {
                item.Aktivnosti = _ponudaServis.DobaviSveAktivnosti();
            }

            SessionFacade.AktivnaPonuda = model;

            return(View("KreirajPonudu", model));
        }
示例#5
0
        public HttpResponseMessage KreirajPonudu(HttpRequestMessage request, [FromBody] PonudaModel ponuda)
        {
            HttpResponseMessage response = null;

            int prijavljeniKorisnik = User.Identity.GetUserId <int>();

            if (prijavljeniKorisnik < 1)
            {
                ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal;

                var korisnikIme = ClaimsPrincipal.Current.Identity.Name;
                var userManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>();
                var korisnik    = userManager.FindByName(korisnikIme);
                prijavljeniKorisnik = korisnik.Id;
            }

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


                    AukcijaDTO detaljiAukcije = proxy.AukcijaKreirajPonudu(ponuda.AukcijaId, ponuda.IznosPonude, prijavljeniKorisnik);
                    response = request.CreateResponse <AukcijaDTO>(HttpStatusCode.OK, detaljiAukcije);
                    proxy.Close();
                }
            }
            catch (FaultException <PonudaCreateException> ex)
            {
                response = request.CreateResponse(HttpStatusCode.BadRequest, ex.Message);
            }
            catch (FaultException ex)
            {
                response = request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
            }
            catch (Exception ex)
            {
                response = request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
            }

            return(response);
        }
        public async Task <bool> KreirajPonudu(decimal iznosPonude, int aukcijaId)
        {
            try
            {
                var ponuda = new PonudaModel
                {
                    AukcijaId   = aukcijaId,
                    IznosPonude = iznosPonude
                };

                var json = JsonConvert.SerializeObject(ponuda);
                HttpStringContent content = new HttpStringContent(json);
                content.Headers.ContentType = new HttpMediaTypeHeaderValue("application/json");
                Uri uri = new Uri(ViewModelHelper.siteUrl + "/api/aukcija/ponudi");

                using (HttpClient httpClient = ViewModelHelper.GetHttpClient(ViewModelHelper.accessTokenString))
                {
                    HttpResponseMessage response = await httpClient.PostAsync(uri, content);

                    if (response.StatusCode == HttpStatusCode.Ok)
                    {
                        return(true);
                    }
                    else
                    {
                        throw new PonudaException(response.Content.ToString());
                    }
                }
            }
            catch (PonudaException ex)
            {
                throw new PonudaException(ex.Message);
            }
            catch (AccessDeniedException)
            {
                throw new AccessDeniedException("Korisnik nije prijavljen");
            }
            catch (Exception)
            {
                throw new Exception("Greška prilikom konekcije na server.");
            }
        }
示例#7
0
        public PonudaModel DobaviPonuduPoId(int id)
        {
            try
            {
                var ponuda = _ponudaDao.DobaviPonuduPoId(id);

                var ponudaModel = new PonudaModel
                {
                    DatumKreiranja = ponuda.DatumKreiranja.ToShortDateString(),
                    VaziOd         = ponuda.DatumOd.ToShortDateString(),
                    VaziDo         = ponuda.DatumDo.ToShortDateString(),
                    Id             = ponuda.Id,
                    Naziv          = ponuda.Naziv,
                    Popust         = (int)ponuda.Popust,
                };

                ponudaModel.Aktivnosti = ponuda.PonudeAktivnosti.Select(x => new PonudeAktivnostiModel
                {
                    Aktivnost = x.AktivnostId
                }).ToList();

                ponudaModel.PonudeJedinice = ponuda.JedinicePonude.Select(x => new PonudaJedinicaModel
                {
                    CijenaBezPopusta    = x.Cijena,
                    CijenaSaPopustom    = (100 - ponuda.Popust) * x.Cijena,
                    StanbenaJedinica    = x.JedinicaId,
                    TipStanbeneJedinice = _jedinicaDao.DobaviJedinicuPoId(x.JedinicaId).TipSmjestajaId
                }).ToList();


                return(ponudaModel);
            }
            catch (Exception ex)
            {
                LoggingHelper.Greska(ex, nameof(PonudaServis), nameof(DobaviPonuduPoId));
            }
            return(null);
        }
示例#8
0
        public bool DodajPonudu(PonudaModel ponuda)
        {
            try
            {
                var tempPonuda = new Ponuda()
                {
                    DatumDo        = DateTime.Parse(ponuda.VaziDo),
                    DatumOd        = DateTime.Parse(ponuda.VaziOd),
                    DatumKreiranja = DateTime.Now,
                    KorisnikId     = SessionFacade.Korisnik.Id,
                    Naziv          = ponuda.Naziv,
                    Popust         = ponuda.Popust,
                    Id             = ponuda.Id
                };

                var novaPonuda = _ponudaDao.DodajPonudu(tempPonuda);
                Helpers.Helpers.SnimiSlikeUFolder(novaPonuda.Id.ToString(), ponuda.Slike);

                _ponudaDao.ObrisiJedinicaPonudaPoPonudaId(novaPonuda.Id);
                _ponudaDao.ObrisiPonudaAktivnostPoPonudaId(novaPonuda.Id);

                var tempJedinicePonude = new List <JedinicaPonuda>();

                foreach (var item in ponuda.PonudeJedinice)
                {
                    tempJedinicePonude.Add(new JedinicaPonuda()
                    {
                        Cijena       = item.CijenaBezPopusta,
                        JedinicaId   = item.StanbenaJedinica,
                        PonudaId     = novaPonuda.Id,
                        PoreznaStopa = 17,
                    });
                }

                var hasErrors = false;

                hasErrors = !_ponudaDao.DodajJedinice(tempJedinicePonude);


                var tempAktivnosti = new List <PonudaAktivnost>();

                foreach (var item in ponuda.Aktivnosti)
                {
                    tempAktivnosti.Add(new PonudaAktivnost()
                    {
                        AktivnostId = item.Aktivnost,
                        PonudaId    = novaPonuda.Id
                    });
                }

                hasErrors = !_ponudaDao.DodajAktivnosti(tempAktivnosti);

                if (hasErrors)
                {
                    throw new Exception("Greska prilikom dodavanja nove ponude!!!");
                }
            }
            catch (Exception ex)
            {
                LoggingHelper.Greska(ex, nameof(PonudaServis), nameof(DodajPonudu));
                return(false);
            }
            return(true);
        }