// PUT: odata/EventConditions(5)
        public IHttpActionResult Put([FromODataUri] int key, Delta <EventCondition> patch)
        {
            Validate(patch.GetEntity());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            EventCondition eventCondition = db.EventConditions.Find(key);

            if (eventCondition == null)
            {
                return(NotFound());
            }
            Event @event = db.Events.Find(eventCondition.EventId);
            var   check  = AuthorizeLogic.VerifyEventEditPermission(@event);

            if (check)
            {
                patch.Put(eventCondition);

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

                return(Updated(eventCondition));
            }
            else
            {
                return(Unauthorized());
            }
        }
        // PUT: odata/Samples(5)
        public async Task <IHttpActionResult> Put([FromODataUri] int key, Delta <Sample> patch)
        {
            Validate(patch.GetEntity());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Sample sample = await db.Samples.FindAsync(key);

            if (sample == null)
            {
                return(NotFound());
            }
            Event @event = db.Events.Find(sample.EventId);
            var   check  = AuthorizeLogic.VerifyEventEditPermission(@event);

            if (check)
            {
                patch.Put(sample);

                try
                {
                    await db.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SampleExists(key))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                return(Updated(sample));
            }
            else
            {
                return(Unauthorized());
            }
        }
        // POST: odata/EventConditions
        public IHttpActionResult Post(EventCondition eventCondition)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Event @event = db.Events.Find(eventCondition.EventId);
            var   check  = AuthorizeLogic.VerifyEventEditPermission(@event);

            if (check)
            {
                db.EventConditions.Add(eventCondition);
                db.SaveChanges();

                return(Created(eventCondition));
            }
            else
            {
                return(Unauthorized());
            }
        }
        // POST: odata/Samples
        public async Task <IHttpActionResult> Post(Sample sample)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Event @event = db.Events.Find(sample.EventId);
            var   check  = AuthorizeLogic.VerifyEventEditPermission(@event);

            if (check)
            {
                db.Samples.Add(sample);
                await db.SaveChangesAsync();

                return(Created(sample));
            }
            else
            {
                return(Unauthorized());
            }
        }
        // DELETE: odata/Events(5)
        public async Task <IHttpActionResult> Delete([FromODataUri] int key)
        {
            Event @event = await db.Events.FindAsync(key);

            if (@event == null)
            {
                return(NotFound());
            }
            var check = AuthorizeLogic.VerifyEventEditPermission(@event);

            if (check)
            {
                db.Events.Remove(@event);
                await db.SaveChangesAsync();

                return(StatusCode(HttpStatusCode.NoContent));
            }
            else
            {
                return(Unauthorized());
            }
        }
        // DELETE: odata/EventConditions(5)
        public IHttpActionResult Delete([FromODataUri] int key)
        {
            EventCondition eventCondition = db.EventConditions.Find(key);

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

            Event @event = db.Events.Find(eventCondition.EventId);
            var   check  = AuthorizeLogic.VerifyEventEditPermission(@event);

            if (check)
            {
                db.EventConditions.Remove(eventCondition);
                db.SaveChanges();

                return(StatusCode(HttpStatusCode.NoContent));
            }
            else
            {
                return(Unauthorized());
            }
        }