public HttpResponseMessage PostSendTask(SendTaskViewModel model,int id) { model.Id = id; if (helper.setSendTask(model, User.Identity.Name)) return new HttpResponseMessage(HttpStatusCode.Accepted); else return new HttpResponseMessage(HttpStatusCode.Forbidden); }
public ActionResult _SendState(SendTaskViewModel model) { helper.setSendTask(model, User.Identity.Name); if (model.ViewMode.Equals("mobile")) { return RedirectToAction("Mobile", new { id = model.Id }); } else { return RedirectToAction("Index", new { id = -1 }); } }
public bool setSendTask(SendTaskViewModel stviewmodel, string username) { initService(); initCore(); if (CanUserAccessTask(stviewmodel.Id, username)) { if (stviewmodel.ToMultiSubject && stviewmodel.SelectedUsers != null) { string toAll = null; List<string> recipients = stviewmodel.SelectedUsers.ToList<string>(); foreach (string user in recipients) { if (!user.Contains('|')) { toAll = user; } } if (toAll == null) { stviewmodel.selectedRecipient = ""; recipients.ForEach(i => stviewmodel.selectedRecipient = stviewmodel.selectedRecipient + i + ","); stviewmodel.selectedRecipient = stviewmodel.selectedRecipient.Remove(stviewmodel.selectedRecipient.Length - 1, 1); } else { stviewmodel.selectedRecipient = toAll; } } Dictionary<string, dynamic> editableparameters = new Dictionary<string, dynamic>(); stviewmodel.EditableParameters.ForEach(tp => editableparameters.Add(tp.Name, tp.Value)); core.submitSendTaskAnswer(stviewmodel.Id, stviewmodel.selectedRecipient, encodeEditableParameters(stviewmodel.Id, editableparameters), username); return true; } return false; }
public Models.JobsViewModels.SendTaskViewModel getSendTask(int id, string username) { initService(); if (CanUserAccessTask(id, username)) { T_Task task = taskStore.getTaskById(id); if (task.Type.Equals("S")) { var processInstance = _db.P_ProcessInstance.Find(task.P_ProcessInstance_Id); var process = _db.P_Processes.Find(processInstance.P_Process_Id); bool tout = false; if(task.SubmittedTaskProperties != null) { if (task.SubmittedTaskProperties.Equals("TimeOut!")) { tout = true; } } DateTime doneDate = new DateTime(); if (task.DateSubmitted != null) { doneDate = task.DateSubmitted.Value; } SendTaskViewModel model = new SendTaskViewModel() { Id = task.Id, Name = task.Name, Done = task.Done, DoneDate = doneDate, Seen = task.Seen, ProcessStartDate = processInstance.DateStarted.Value, StartedByUser = processInstance.StartedByUser, TaskCreatedDate = task.DateCreated.Value, Timedout = tout, Version = process.WS_Project_Version, ProcessName = process.WS_Project.Name }; model.ToMultiSubject = task.ToMultiSubject; model.selectedRecipient = ""; string editableParametersString = ""; if (task.Done) { if (!tout) { editableParametersString = task.SubmittedEditableParameters; model.selectedRecipient = task.SubmittedTaskProperties; } } else { editableParametersString = task.EditableParameters; task.TaskProperties.ForEach(tp => model.Recipients.Add(new SelectListItem { Selected = false, Value = tp.Value, Text = tp.Value })); if (model.ToMultiSubject) { foreach (var user in task.TaskProperties) { if (!user.Value.Contains('|')) { model.selectedRecipient = user.Value; } } } } //var readableParameters = Json.Decode<IDictionary<string, dynamic>>(task.ReadableParameters); IDictionary<string, dynamic> readableParameters = Newtonsoft.Json.JsonConvert.DeserializeObject<IDictionary<string, dynamic>>(task.ReadableParameters); if (readableParameters != null) foreach (var i in readableParameters) { model.ReadableParameters.Add(new TaskParameter(i.Key, i.Value));// { Name = i.Key, Value = i.Value }); } if (editableParametersString == null) editableParametersString = ""; // var editableParameters = Json.Decode<Dictionary<string, JObject>>(task.EditableParameters); IDictionary<string, dynamic> editableParameters = Newtonsoft.Json.JsonConvert.DeserializeObject<IDictionary<string, dynamic>>(editableParametersString); if (editableParameters != null) foreach (var i in editableParameters) { model.EditableParameters.Add(new TaskParameter(i.Key, i.Value));// { Name = i.Key, Value = i.Value }); } return model; } } return null; }