public HttpResponseMessage GetEventOccurrence(int id)
 {
     try
     {
         WebEventOccurrence eventOccurrence = repo.getEventOccurrence(id);
         return(Request.CreateResponse(HttpStatusCode.OK, eventOccurrence));
     }
     catch (Exception e)
     {
         return(Request.CreateResponse(HttpStatusCode.BadRequest, e));
     }
 }
        public void updateEventOccurrence(int id, WebEventOccurrence webEventOccurrence)
        {
            EventOccurrence eventOccurrence = db.EventOccurrences.SingleOrDefault(u => u.id == id);

            if (eventOccurrence != null && me.type == "admin")
            {
                eventOccurrence.isActive    = webEventOccurrence.isActive;
                eventOccurrence.type        = webEventOccurrence.type;
                eventOccurrence.description = webEventOccurrence.description;
                eventOccurrence.date        = webEventOccurrence.date;
                db.SaveChanges();
            }
            else
            {
                throw new PermissionDeniedException();
            }
        }
        public HttpResponseMessage PostEventOccurrence(WebEventOccurrence eventOccurrence)
        {
            if (!ModelState.IsValid || eventOccurrence == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
            }

            try
            {
                int id = repo.addEventOccurrence(eventOccurrence);
                return(Request.CreateResponse(HttpStatusCode.Created, id));
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, e));
            }
        }
        public HttpResponseMessage PutEventOccurrence(int id, WebEventOccurrence eventOccurrence)
        {
            if (!ModelState.IsValid || eventOccurrence == null || id != eventOccurrence.id)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
            }

            try
            {
                repo.updateEventOccurrence(id, eventOccurrence);
                return(Request.CreateResponse(HttpStatusCode.OK, id));
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, e));
            }
        }
        public int addEventOccurrence(WebEventOccurrence webEventOccurrence)
        {
            if (me.type == "admin")
            {
                EventOccurrence eventOccurrence = new EventOccurrence();
                eventOccurrence.isActive    = webEventOccurrence.isActive;
                eventOccurrence.type        = webEventOccurrence.type;
                eventOccurrence.description = webEventOccurrence.description;
                eventOccurrence.date        = webEventOccurrence.date;
                db.EventOccurrences.Add(eventOccurrence);
                db.SaveChanges();

                return(eventOccurrence.id);
            }
            else
            {
                throw new PermissionDeniedException();
            }
        }