public IHttpActionResult PostTag(CreateDeleteTagModel tagModel)
        {
            // Validate user input
            string username = SessionUtilities.GetUserName(Request);
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
            if (tagModel == null || db.Restaurants.Find(tagModel.RestaurantId) == null ||
                (db.Restaurants.Count(r => r.Id == tagModel.RestaurantId && r.OwnerUserName.Equals(username)) <= 0) ||
                (db.Tags.Count(t => t.TagName == tagModel.TagName && t.RestaurantId == tagModel.RestaurantId) > 0))
            {
                return BadRequest();
            }
            Tag tag = Mapper.Map<Tag>(tagModel);

            // Create the tag
            db.Tags.Add(tag);
            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                return BadRequest("Unable to add tag to this restaurant");
            }
            return CreatedAtRoute("DefaultApi", new { id = tag.Id }, Mapper.Map<DisplayTagModel>(tag));
        }
        public IHttpActionResult DeleteTag(CreateDeleteTagModel tagModel)
        {
            DisplayTagModel returnModel = new DisplayTagModel();
            // Validate user input
            string username = SessionUtilities.GetUserName(Request);
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
            Tag tag = db.Tags.Where(t => t.TagName == tagModel.TagName && t.RestaurantId == tagModel.RestaurantId).FirstOrDefault();
            if (tag == null || db.Restaurants.Count(r => r.Id == tag.RestaurantId && r.OwnerUserName.Equals(username)) <= 0)
            {
                return NotFound();
            }

            // Delete the tag from the database
            returnModel = Mapper.Map<DisplayTagModel>(tag);
            db.Tags.Remove(tag);
            db.SaveChanges();

            return Ok(returnModel);
        }