public ActionResult ViewDeficiency(int Id)
 {
     DeficiencyBO deficiency = DeficiencyBLL.GetDeficiency(Id);
     NewDeficiencyVersion model = new NewDeficiencyVersion(deficiency);
     return PartialView(model);
 }
        public ActionResult EditDeficiency(NewDeficiencyVersion model)
        {
            // if the new version wasn't specified display a validation message
            if (!ModelState.IsValid)
            {
                DeficiencyBO deficiency = DeficiencyBLL.GetDeficiency(model.DeficiencyId);
                NewDeficiencyVersion newModel = new NewDeficiencyVersion(deficiency);
                newModel.NewVersion = model.NewVersion;
                return PartialView(newModel);
            }

            try
            {
                // get the current version and
                DeficiencyBO bo = DeficiencyBLL.GetDeficiency(model.DeficiencyId);
                DeficiencyDO data = bo.Versions.OrderByDescending(d => d.Version).FirstOrDefault();
                data.DeficiencyDate = DateTime.Now;
                data.Description = model.NewVersion;
                data.UserToken = myCoalUser.UserToken;

                DeficiencyBLL.Save(data);

                // save the new version
                AjaxResult result = new AjaxResult(AjaxResult.AjaxStatus.OK, "The new version of the deficiency has been added");
                return Json(result);
            }
            catch (Exception ex)
            {
                // show a message if an error occurs
                AjaxResult result = new AjaxResult(AjaxResult.AjaxStatus.ERROR, ex.Message);
                return Json(result);
            }
        }