public ActionResult Edit(TicketEditModel model) { var contactId = this.GetContactId(); using (var dc = new IORunEntities()) { var contact = dc.Contacts.Single(c => c.Contact_GUID == contactId); var task = dc.Tasks.Single(t => t.Task_GUID == model.TaskId); if (task.Task_CompanyGUID != contact.Contact_CompanyGUID) throw new SecurityException("Unauthorized"); var newTaskLog = TaskRepository.CreateTaskLog(task.Task_GUID, dc, null, contactId); newTaskLog.TaskLog_WebVisible = 1; newTaskLog.TaskLog_InternalText = model.NewMessage; newTaskLog.TaskLog_ExternalText = model.NewMessage; dc.TaskLogs.Add(newTaskLog); task.Task_UpdatedByContactGUID = contactId; task.Task_UpdatedByContactDate = DateTime.Now; dc.SaveChanges(); var newModel = BuildEditModel(task.Task_IssueIdentifier); return View(newModel); } }
private TicketEditModel BuildEditModel(int id) { var contactId = this.GetContactId(); using (var dc = new IORunEntities()) { var contact = dc.Contacts.Single(c => c.Contact_GUID == contactId); var task = dc.Tasks.Single(t => t.Task_IssueIdentifier == id); if (task.Task_CompanyGUID != contact.Contact_CompanyGUID) throw new SecurityException("Unauthorized"); var model = new TicketEditModel(); model.TicketGuid = task.Task_GUID; model.Overskrift = task.Task_Caption; model.Beskrivelse = task.Task_Description; model.TicketNumber = task.Task_IssueIdentifier; model.Messages = task.TaskLogs.Where(tl => tl.IsThrash == 0). ToList(). OrderByDescending(tl => tl.TaskLog_CreatedDate). Select(tl => new TaskEditItemModel(tl, dc)). ToList(); model.TaskId = task.Task_GUID; model.IsClosed = task.Task_IsClosed == 1; model.Status = task.Task_IsClosed == 1 ? $"Lukket" : task.Task_StatusText; model.AsignedTo = task.Task_ToUserGUID.HasValue ? dc.Brugers.Single(b => b.Bruger_GUID == task.Task_ToUserGUID.Value).Bruger_Navn : "Ingen"; return model; } }