public async Task <IHttpActionResult> PostZoneAccessMetaData(ZoneAccessMetaData zoneAccessMetaData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.ZoneAccessMetaDatas.Add(zoneAccessMetaData);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (ZoneAccessMetaDataExists(zoneAccessMetaData.Role))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = zoneAccessMetaData.Role }, zoneAccessMetaData));
        }
        public async Task <IHttpActionResult> PutZoneAccessMetaData(string id, ZoneAccessMetaData zoneAccessMetaData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != zoneAccessMetaData.Role)
            {
                return(BadRequest());
            }

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

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

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public async Task <IHttpActionResult> GetZoneAccessMetaData(string id)
        {
            ZoneAccessMetaData zoneAccessMetaData = await db.ZoneAccessMetaDatas.FindAsync(id);

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

            return(Ok(zoneAccessMetaData));
        }
        public async Task <IHttpActionResult> DeleteZoneAccessMetaData(string id)
        {
            ZoneAccessMetaData zoneAccessMetaData = await db.ZoneAccessMetaDatas.FindAsync(id);

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

            db.ZoneAccessMetaDatas.Remove(zoneAccessMetaData);
            await db.SaveChangesAsync();

            return(Ok(zoneAccessMetaData));
        }