public ActionResult Edit(MyClinic.Infrastructure.Disease disease)
        {
            Disease originDisease = diseaseRepository.GetDiseaseById(disease.Id);

            try
            {
                if (ModelState.IsValid)
                {
                    var objSession = Session["user"] as MyClinic.Infrastructure.SessUser;
                    disease.ModifiedBy   = objSession.UserId;
                    disease.ModifiedDate = DateTime.Now;
                    disease.CreateBy     = originDisease.CreateBy;
                    disease.CreateDate   = originDisease.CreateDate;
                    disease.Status       = originDisease.Status;
                    string diffString = originDisease.EnumeratePropertyDifferencesInString(disease);

                    diseaseRepository.UpdateFieldChangedOnly(originDisease, disease);
                    /*For Add New Record to LogTable*/
                    logTran.UserId      = objSession.UserId;
                    logTran.ProcessType = "Edit Disease";
                    logTran.Description = "Edit Disease value as follow: " + diffString;
                    logTran.LogDate     = DateTime.Now;
                    logRepository.Add(logTran);
                    return(RedirectToAction("Index", "Disease"));
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
                ModelState.AddModelError("error", Translator.UnexpectedError);
            }
            diseaseModel = new DiseaseModels
            {
                disease = disease,
            };
            return(View(diseaseModel));
        }