Exemplo n.º 1
0
        public IHttpActionResult UpdateMenzu([FromBody] MenzaFullDto mdto, [FromUri] string sid)
        {
            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.ModifikacijaMenza))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden)
                    {
                        Content = new StringContent("Nemate privilegiju")
                    });
                }

                Menza m = ProvajderPodatakaMenzi.VratiMenzu(mdto.IdMenze);

                if (m == null)
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                    {
                        Content = new StringContent("Menza za modifikaciju nije pronadjena")
                    });
                }

                m.Naziv          = mdto.Naziv;
                m.Lokacija       = mdto.Lokacija;
                m.RadnoVreme     = mdto.RadnoVreme;
                m.VanrednoNeRadi = mdto.VanrednoNeRadi;
                m.GpsLat         = mdto.GpsLat;
                m.GpsLon         = mdto.GpsLong;

                ProvajderPodatakaMenzi.UpdateMenzu(m);
                return(Ok("Menza uspesno modifikovana"));
            }
            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();
            }
        }