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