/// <summary>
        /// Put an updated Definition
        /// </summary>
        // PUT: api/Definitions/5
        //[ResponseType(typeof(void))]
        public IHttpActionResult PutDefinition(int id, Definition definition)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != definition.DefinitionId)
            {
                return(BadRequest());
                //return Request.CreateResponse(HttpStatusCode.BadRequest);
            }

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

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

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public async Task <ActionResult> Edit([Bind(Include = "DefinitionId,Term,TermDefinition")] DefinitionModel definition)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var def = (from d in db.Definitions where d.Term == definition.Term select d).FirstOrDefault();
                    if (def != null)
                    {
                        if (def.DefinitionId != definition.DefinitionId)
                        {
                            // Validation error - there is an existing definition for that term
                            ModelState.AddModelError("Term", "A definition already exists for this Term");
                            return(View(definition));
                        }
                        else
                        {
                            def.Term            = definition.Term;
                            def.TermDefinition  = definition.TermDefinition;
                            db.Entry(def).State = EntityState.Modified;
                            await db.SaveChangesAsync();

                            return(RedirectToAction("List"));
                        }
                    }
                    else
                    {
                        // Re-defining current term (Term does not conflict with existing)
                        var rename = (from d in db.Definitions where d.DefinitionId == definition.DefinitionId select d).FirstOrDefault();
                        rename.Term            = definition.Term;
                        rename.TermDefinition  = definition.TermDefinition;
                        db.Entry(rename).State = EntityState.Modified;
                        await db.SaveChangesAsync();

                        return(RedirectToAction("List"));
                    }
                }
                return(View(definition));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                return(RedirectToActionPermanent("Index", "Error"));
            }
        }
Example #3
0
 // UPDATE: Glossary
 public ActionResult Update([DataSourceRequest] DataSourceRequest request, Glossary item)
 {
     try
     {
         if (ModelState.IsValid)
         {
             db.Entry(item).State = EntityState.Modified;
             db.SaveChanges();
             return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
         }
         else
         {
             return(Json(db.Glossary.ToList()));
         }
     }
     catch (Exception ex)
     {
         return(Json(ex.Message));
     }
 }