示例#1
0
        public void btnNaruciKorpu_clicked(object sender, EventArgs arg)
        {
            NaruciVm naruciObjekt = new NaruciVm();

            naruciObjekt.KorisnikId   = Global.logedUser.Id;
            naruciObjekt.DatumDolaska = datumDolaska.Date + vrijemeDolaska.Time;

            //vrijeme dolaska manje od sat
            TimeSpan diff  = naruciObjekt.DatumDolaska - DateTime.Now;
            double   hours = diff.TotalHours;

            if (hours < 1)
            {
                DisplayAlert("Upozorenje", "Vaša narudžba se mora obaviti minimalno sat vremena prije vašeg dolaska.", "OK");
                return;
            }

            HttpResponseMessage response = service.PostResponse(naruciObjekt);

            if (response.IsSuccessStatusCode)
            {
                DisplayAlert("Uspjesno", "Uspjesno ste narucili salatu, provjerite email koji smo Vam proslijedili.", "OK");
                Navigation.PopPopupAsync(true);
            }
            else
            {
                if (response.StatusCode == System.Net.HttpStatusCode.Forbidden)
                {
                    DisplayAlert("Upozorenje!", "Označeni ste kao nepovjerljiv gost, te narudžba nije moguća. Molimo Vas da provjerite svoj mail za detaljnije informacije.", "OK");
                    return;
                }
                DisplayAlert("Upozorenje!", response.ReasonPhrase, "OK");
            }
        }
示例#2
0
        public HttpResponseMessage Naruci(NaruciVm naruci)
        {
            Korisnici isUserExists = AccountHelper.GetKorisnikById(naruci.KorisnikId);

            if (isUserExists == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, "Korisnik nije pronadjen"));
            }

            // Provjera korisnika da li je on povjerljiv, ukoliko nije ispisati odgovarajucu poruku o nepovjerljivosti
            if (!isUserExists.Povjerljiv)
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden, "Nepovjerljiv korisnik"));
            }



            MContext ctx = new MContext();

            List <KorpaStavke> conditionKs = ctx.KorpaStavke.Where(ks => ks.Korpa.Aktivna == true && ks.Korpa.KorisnikId == naruci.KorisnikId).ToList();

            // Provjera da li je korisnicka korpa prazna - radi sigurnosti na server strani
            if (conditionKs.Count <= 0)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Korisnicka korpa je prazna!"));
            }

            // Dobavljanje aktivne korpe korisnika
            Korpa korisnikKorpa = ctx.Korpa.FirstOrDefault(x => x.Aktivna && x.KorisnikId == naruci.KorisnikId);

            // korisnikKorpa.Sifra = KorpaHelper.GetSifra();

            // Preuzimanje zakazanog vremena dolaska
            korisnikKorpa.VrijemeDolaska = naruci.DatumDolaska;

            // Promijeniti status korpe u false
            korisnikKorpa.Aktivna = false;

            // oduzmi sastojcima na stanju
            List <int> SalataIds = ctx.KorpaStavke.Where(x => x.KorpaId == korisnikKorpa.Id).Select(y => y.SalataId).ToList();

            foreach (var i in SalataIds)
            {
                List <int> sastojciIds = ctx.SalataStavke.Where(x => x.SalataId == i).Select(y => y.SastojakId).ToList();
                foreach (var n in sastojciIds)
                {
                    Sastojci s = ctx.Sastojci.Where(x => x.Id == n).FirstOrDefault();
                    float    g = s.Gramaza;
                    s.Stanje = s.Stanje - g;
                    ctx.SaveChanges();
                }
            }


            // Snimiti promjene
            ctx.SaveChanges();

            /* Ukoliko je sve proslo uredu, potrebno je korisniku poslati email sa sifrom narudzbe */

            EmailVm mailVm = new EmailVm();

            mailVm.Body    = "Poštovani, </br>Uspješno ste izvršili narudžbu. Vaša šifra narudžbe je: " + korisnikKorpa.Sifra;
            mailVm.Subject = "Express Salad Bar";
            mailVm.To      = isUserExists.Email;
            // Slanje emaila sa sfirom narudjbe i odredjenim detaljima narudzbe
            AccountHelper.Sendemail(mailVm);

            return(Request.CreateErrorResponse(HttpStatusCode.OK, "Narudžba je uspješno realizovana, provjerite Vaš email"));
        }