Пример #1
0
        public IHttpActionResult PostGovernmentPublication(GovernmentPublication governmentPublication)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.GovernmentPublications.Add(governmentPublication);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = governmentPublication.Id }, governmentPublication));
        }
Пример #2
0
        public IHttpActionResult DeleteGovernmentPublication(int id)
        {
            GovernmentPublication governmentPublication = db.GovernmentPublications.Find(id);

            if (governmentPublication == null)
            {
                return(NotFound());
            }

            db.GovernmentPublications.Remove(governmentPublication);
            db.SaveChanges();

            return(Ok(governmentPublication));
        }
Пример #3
0
        public IHttpActionResult PutGovernmentPublication(int id, GovernmentPublication governmentPublication)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != governmentPublication.Id)
            {
                return(BadRequest());
            }

            // Check if the user is allowed to change items' availabilities.
            if ((!User.IsInRole("Administrator")) &&
                (governmentPublication.Availability != db.GovernmentPublications.AsNoTracking().Where(o => o.Id == id).Select(o => o.Availability).Single()))
            {
                return(BadRequest("You don't have permission to change the item's availability."));
            }

            db.Entry(governmentPublication).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!GovernmentPublicationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #4
0
        public IHttpActionResult GetGovernmentPublication(int id)
        {
            GovernmentPublication governmentPublication = new GovernmentPublication();

            if (User.IsInRole("Administrator") || User.IsInRole("Librarian") || User.IsInRole("Local User"))
            {
                governmentPublication = db.GovernmentPublications.Find(id);
                if (governmentPublication == null)
                {
                    return(NotFound());
                }

                return(Ok(governmentPublication));
            }

            governmentPublication = db.GovernmentPublications.Where(b => b.Availability == "Public" && b.Id == id).FirstOrDefault();
            if (governmentPublication == null)
            {
                return(NotFound());
            }

            return(Ok(governmentPublication));
        }