public ActionResult AddTicket(int id = 0) { ChangeManagementModel vm = new ChangeManagementModel(); if (id != 0) { var c = _context.ChangeManagementDetails.SingleOrDefault(x => x.Id == id); vm = new ChangeManagementModel() { Id = c.Id, AssignTo = c.AssignTo, ChangeSubTypeId = c.ChangeSubTypeId, ChangeTypeId = c.ChangeTypeId, ClientId = c.ClientId, CloseBy = c.CloseBy, CloseDate = c.CloseDate, CreateBy = c.CreateBy, CreateDate = c.CreateDate, Description = c.Description, DueDate = c.DueDate, Priority = c.Priority, ProjectId = c.ProjectId, ResolveBy = c.ResolveBy, ResolveDate = c.ResolveDate, StepToReproduce = c.StepToReproduce, Status = c.Status, Title = c.Title, IsEdit = true }; _context.ChangeManagementComments .Where(x => x.ChangeManagementId == id) .ToList(). ForEach(cm => vm.Comments.Add(new ChangeManagementCommentModel() { Id = cm.Id, ChangeManagementId = cm.ChangeManagementId, ChangeManagement = cm.ChangeManagement, Comment = cm.Comment })); _context.ChangeManagementAttachments .Where(x => x.ChangeManagementId == id) .ToList(). ForEach(cm => vm.Attachments.Add(new ChangeManagementAttachmentModel() { Id = cm.Id, ChangeManagementId = cm.ChangeManagementId, ChangeManagement = cm.ChangeManagement, AttachmentPath = cm.AttachmentPath, OriginalName = cm.OriginalName })); } else { vm.DueDate = DateTime.Now.Date; } return(View(vm)); }
public ActionResult CreateTicket(ChangeManagementModel vm) { var cm = new ChangeManagementDetail(); if (vm.IsEdit) { cm = _context.ChangeManagementDetails.SingleOrDefault(x => x.Id == vm.Id); } cm.Id = vm.Id; cm.AssignTo = vm.AssignTo; cm.ChangeSubTypeId = vm.ChangeSubTypeId; cm.ChangeTypeId = vm.ChangeTypeId; cm.ClientId = vm.ClientId; cm.CloseBy = vm.CloseBy; cm.CloseDate = vm.CloseDate; cm.CreateBy = vm.CreateBy; cm.CreateDate = vm.CreateDate; cm.Description = vm.Description; cm.DueDate = vm.DueDate; cm.Priority = vm.Priority; cm.ProjectId = vm.ProjectId; cm.ResolveBy = vm.ResolveBy; cm.ResolveDate = vm.ResolveDate; cm.StepToReproduce = vm.StepToReproduce; cm.Status = vm.Status; cm.Title = vm.Title; if (!vm.IsEdit) { cm.CreateDate = DateTime.Now; cm.CreateBy = Extension.GetUserId(); _context.ChangeManagementDetails.Add(cm); } _context.SaveChanges(); if (vm.IsEdit) { var comments = _context.ChangeManagementComments.Where(x => x.ChangeManagementId == cm.Id); _context.ChangeManagementComments.RemoveRange(comments); var ats = _context.ChangeManagementAttachments.Where(x => x.ChangeManagementId == cm.Id); _context.ChangeManagementAttachments.RemoveRange(ats); } foreach (var commet in vm.Comments) { ChangeManagementComment c = new ChangeManagementComment(); c.Comment = commet.Comment; c.CreatedAt = DateTime.Now; c.CreatedBy = Extension.GetUserId(); c.ChangeManagementId = cm.Id; _context.ChangeManagementComments.Add(c); } foreach (var attachment in vm.Attachments) { ChangeManagementAttachment a = new ChangeManagementAttachment(); a.ChangeManagementId = cm.Id; a.OriginalName = attachment.OriginalName; a.AttachmentPath = attachment.AttachmentPath; a.CreatedAt = DateTime.Now; a.CreatedBy = Extension.GetUserId(); _context.ChangeManagementAttachments.Add(a); } _context.SaveChanges(); return(RedirectToAction("Index", "ChangeManagement")); }