public async Task<ActionResult> Edit(Guid id, CourseModel courseModel)
 {
     var requestUri = string.Format("api/courses/{0}", id);
     if (!ModelState.IsValid) throw new HttpException((int)HttpStatusCode.BadRequest, "Error");
     var updated = await PutJsonAsyc(requestUri, courseModel);
     switch (updated.Type)
     {
         case ResultType.DbUpdateConcurrencyException:
             return RedirectToAction("Edit", new { id = id, concurrencyError = true });
         case ResultType.DataException:
             ModelState.AddModelError(string.Empty,
                 "Unable to edit. Try again, and if the problem persists contact your system administrator.");
             return View(courseModel);
     }
     return RedirectToAction("Details", "Courses", new { id = updated.Value });
 }
 public HttpResponseMessage Edit(Guid id, CourseModel coureModel)
 {
     var result = new HttpResponseMessage();
     if (ModelState.IsValid)
     {
         try
         {
             var updated = courseService.Update(id, coureModel);
             result.StatusCode = HttpStatusCode.OK;
             result.Content = new StringContent(JsonConvert.SerializeObject(updated));
         }
         catch
         {
             result.StatusCode = HttpStatusCode.BadRequest;
         }
     }
     return result;
 }
        public HttpResponseMessage Create(CourseModel coureModel)
        {
            var result = new HttpResponseMessage();
            if (ModelState.IsValid)
            {
                try
                {
                    var newGuid = courseService.Create(coureModel);
                    result.StatusCode = HttpStatusCode.Created;
                    result.Content = new StringContent(newGuid.ToString());
                }
                catch
                {
                    result.StatusCode = HttpStatusCode.BadRequest;
                }

            }
            return result;
        }
 public async Task<ActionResult> Create(CourseModel course)
 {
     if (!ModelState.IsValid) return RedirectToAction("BadRequest", "Error");
     var guid = await PostJsonAsyc("api/courses", course);
     return RedirectToAction("Details", "Courses", new { id = guid });
 }