Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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();
            }
        }