public JsonResult RequestProperty(PropertyRequisition request, String contactPurpose) { ErrorModel errorModel = new ErrorModel(); if (ModelState.IsValid) { try { using (EasyFindPropertiesEntities dbCtx = new EasyFindPropertiesEntities()) { if (Session["userId"] != null) { UnitOfWork unitOfWork = new UnitOfWork(dbCtx); Guid userId = (Guid)Session["userId"]; if (contactPurpose.Equals("requisition")) { PropertyRequisition requisition = new PropertyRequisition() { ID = Guid.NewGuid(), UserID = userId, PropertyID = request.PropertyID, Msg = request.Msg, IsAccepted = false, ExpiryDate = DateTime.Now.AddDays(7),//requisition should last for a week DateTCreated = DateTime.Now }; unitOfWork.PropertyRequisition.Add(requisition); unitOfWork.save(); var userTo = unitOfWork.Property.GetPropertyOwnerByPropID(request.PropertyID).User; //DashboardHub.BroadcastUserMessages(userTo.Email); broadcast requisition } else { var userTo = unitOfWork.Property.GetPropertyOwnerByPropID(request.PropertyID).User; Message message = new Message() { ID = Guid.NewGuid(), To = userTo.ID, From = userId, Msg = request.Msg, Seen = false, DateTCreated = DateTime.Now }; unitOfWork.Message.Add(message); unitOfWork.save(); DashboardHub.BroadcastUserMessages(userTo.Email); } } } } catch (Exception ex) { errorModel = MiscellaneousHelper.PopulateErrorModel(ModelState); } } else { errorModel = MiscellaneousHelper.PopulateErrorModel(ModelState); } MvcCaptcha.ResetCaptcha("captcha");//TODO find a way to reload captcha image after returning the response return(Json(errorModel)); }/*
public RequisitionViewModel() { this.PropertyRequisition = new PropertyRequisition(); }