private void TransferFormValuesTo(SupportTicket supportTicketToSave, SupportTicketFormDto supportTicketFormDto) { // Note the WhenResolved time if going from not-resolved to resolved if (supportTicketToSave.Status != StatusType.Resolved && supportTicketFormDto.Status == StatusType.Resolved) supportTicketToSave.WhenResolved = DateTime.UtcNow; supportTicketToSave.IssueDescription = supportTicketFormDto.IssueDescription; supportTicketToSave.Resolution = supportTicketFormDto.Resolution; supportTicketToSave.Status = supportTicketFormDto.Status; supportTicketToSave.Customer = supportTicketFormDto.Customer; supportTicketToSave.IssueType = supportTicketFormDto.IssueType; }
private SupportTicket CreateNewSupportTicket(SupportTicketFormDto supportTicketFormDto) { var supportTicketToSave = new SupportTicket { OpenedBy = _contextRegistry.GetLoggedInStaffMember(), WhenOpened = DateTime.UtcNow }; supportTicketToSave.WhenResolved = supportTicketFormDto.Status == StatusType.Resolved ? supportTicketToSave.WhenOpened : new DateTime?(); return supportTicketToSave; }
public OpenSupportTicketViewModel CreateOpenSupportTicketViewModel(SupportTicketFormDto supportTicketFormDto) { var statusTypes = from StatusType statusType in Enum.GetValues(typeof(StatusType)) select new Pair<int, string>((int) statusType, EnumUtils.GetEnumDescription(statusType)); var viewModel = new OpenSupportTicketViewModel { SupportTicketFormDto = supportTicketFormDto, IssueTypes = _issueTypeRepository.GetAll() .OrderBy(x => x.Name), LoggedInStaffMember = _contextRegistry.GetLoggedInStaffMember(), StatusTypes = statusTypes }; return viewModel; }
public ActionResult Edit(SupportTicketFormDto supportTicketFormDto) { if (ModelState.IsValid) { ActionConfirmation<SupportTicket> confirmation = _openSupportTicketTasks.Open(supportTicketFormDto); if (confirmation.WasSuccessful) { TempData["message"] = confirmation.Message; return RedirectToAction("Index"); } ViewData["message"] = confirmation.Message; } return View(_openSupportTicketTasks.CreateOpenSupportTicketViewModel(supportTicketFormDto)); }
public ActionConfirmation<SupportTicket> Open(SupportTicketFormDto supportTicketFormDto) { if (supportTicketFormDto == null) throw new ArgumentNullException("supportTicketFormDto is null"); if (!DataAnnotationsValidator.TryValidate(supportTicketFormDto)) throw new InvalidOperationException("supportTicketFormDto is in an invalid state"); var supportTicketToSave = supportTicketFormDto.Id > 0 ? _supportTicketRepository.Get(supportTicketFormDto.Id) : CreateNewSupportTicket(supportTicketFormDto); TransferFormValuesTo(supportTicketToSave, supportTicketFormDto); var customerConfirmationMessage = HandleNewCustomer(supportTicketFormDto.NewCustomer, supportTicketToSave); var issueConfirmationMessage = HandleNewIssueType(supportTicketFormDto.NewIssueType, supportTicketToSave); _supportTicketRepository.SaveOrUpdate(supportTicketToSave); return ActionConfirmation<SupportTicket> .CreateSuccessConfirmation("Support ticket #" + supportTicketToSave.Id + " has been opened." + customerConfirmationMessage + issueConfirmationMessage, supportTicketToSave); }
public OpenSupportTicketViewModel() { SupportTicketFormDto = new SupportTicketFormDto(); }