public static void AddUserMeal(User s, MealType type, int count) { if (count < 0) { MUtility.ShowWarrning("Broj obroka je negativan broj!"); return; } if (count == 0) { return; } if (s.AccountType != User.UserAccountType.Student) { MUtility.ShowWarrning("Nalog nije studentski"); return; } ObrokUplataDto o = new ObrokUplataDto() { BrojObroka = count, IdLokacijeUplate = MSettings.CurrentMensa.MensaID, IdKorisnika = s.UserID, IdTipa = (int)type }; try { Api.AddMeal(o); } catch (Exception e) { MUtility.ShowException(e); } }
public static void AddMeal(ObrokUplataDto meal) { RestRequest request = new RestRequest(Method.POST); request.Resource = "obroci/uplati"; request.AddObject(meal); var response = Execute(request); if (!(response.HttpStatusCode == HttpStatusCode.OK || response.HttpStatusCode == HttpStatusCode.Redirect)) { throw new Exception("AddMeal: Neuspesno dodavanje obroka." + "\nServerResponse: " + response.ErrorResponse + "\nHttpStatus: " + response.HttpStatusCode); } }
public IHttpActionResult UplatiObroke([FromBody] ObrokUplataDto obUpDto, [FromUri] string sid) { int i; try { SesijeProvajder.OtvoriSesiju(); if (!ProvajderPodatakaKorisnika.SesijaValidna(sid)) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent("Sesija istekla") }); } if (!ValidatorPrivilegija.KorisnikImaPrivilegiju(sid, ValidatorPrivilegija.UserPrivilegies.DodavanjeObrok)) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden) { Content = new StringContent("Nemate privilegiju") }); } for (i = 0; i < obUpDto.BrojObroka; ++i) { if (!ProvajderPodatakaObroka.KorisnikDostigaoLimitZaOvajMesecZaOvajObrok(obUpDto.IdKorisnika, obUpDto.IdTipa)) { Obrok o = new Obrok { Iskoriscen = false, DatumUplacivanja = DateTime.Now, DatumIskoriscenja = null, Uplatilac = ProvajderPodatakaKorisnika.VratiKorisnika(obUpDto.IdKorisnika), Tip = ProvajderPodatakaTipovaObroka.VratiTipObroka(obUpDto.IdTipa), LokacijaUplate = ProvajderPodatakaMenzi.VratiMenzu(obUpDto.IdLokacijeUplate), LokacijaIskoriscenja = null }; ProvajderPodatakaObroka.DodajObrok(o); } else { break; } } if (i == 0) { return(Ok("Ne moze se uopste uplatiti, dostignut je limit.")); } else { return(Ok("Uspesno je dodato " + i + " obroka.")); } } catch (Exception e) { if (e is HttpResponseException) { throw e; } DnevnikIzuzetaka.Zabelezi(e); throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent("InternalError: " + e.Message) }); } finally { SesijeProvajder.ZatvoriSesiju(); } }