public ActionResult EditVisit([ModelBinder(typeof (DevExpressEditorsBinder))] VisitViewModel model)
        {
            Visit visit = visitRepository.GetByKey(model.Id);
            if (visit == null) {
                var errorModel = new ErrorViewModel {
                    Caption = "Visit is not found",
                    ErrorMessage = string.Format("Visit '{0}' is not found in clinical data", model.Caption)
                };
                return View("ErrorInfo", errorModel);
            }

            visit.Caption = model.Caption;
            visit.ExpectedVisitDate = model.ExpectedVisitDate;
            visit.VisitDate = model.VisitDate;
            visit.VisitTime = model.VisitTime;
            EnsureSqlServer2005Compatibility(visit);
            if (visit.VisitDate.HasValue && visit.VisitTime.HasValue)
                visit.IsCompleted = true;
            visitRepository.Edit(visit);
            visitRepository.Save();

            return RedirectToAction("ShowVisit",
                new {
                    patientNumber = visit.Patient.PatientNumber,
                    visitName = visit.Caption,
                    DXScript = Request["DXScript"]
                });
        }
        private ActionResult ViewEditVisit(bool? isVisitEditing, Visit visit)
        {
            if (visit == null) {
                var errorModel = new ErrorViewModel {
                    Caption = "Visit is not found",
                    ErrorMessage = string.Format("Visit is not found in clinical data")
                };
                return View("ErrorInfo", errorModel);
            }

            var model = new VisitViewModel {
                Id = visit.Id,
                Caption = visit.Caption,
                VisitType = visit.VisitType,
                ExpectedVisitDate = visit.ExpectedVisitDate,
                VisitDate = visit.VisitDate,
                VisitTime = visit.VisitTime,
                OrderNo = visit.OrderNo,
                NoExpectedVisitDate = visit.VisitType == VisitType.AdverseEventVisit
            };

            if (visit.IsCompleted && !(isVisitEditing ?? false))
                return PartialView("_ViewVisit", model);
            return PartialView("_EditVisit", model);
        }