public async Task <IActionResult> Edit(int id, [Bind("Id,RequestHeading,RequestDescription,RequestorId,RequestorFirstName,RequestorLastName,RequestorPhone,RequestorEmail,DateTimeSubmitted,DateTimeStarted,DateTimeCompleted,Priority,RequestType,RequestTypeStep,Member,Status,Team")] ServiceRequests serviceRequests, ICollection <IFormFile> files) { if (id != serviceRequests.Id) { return(NotFound()); } if (ModelState.IsValid) { try { ////================File Attachments===================== //////Attached File Processing======================================================== //string path = null; //var uploads = Path.Combine(_environment.WebRootPath, "uploads"); //foreach (var file in files) // try // { // if (file == null || file.Length == 0) // return Content("file not selected"); // else // { // using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.Create)) // { // await file.CopyToAsync(fileStream); // } // var fileName = Path.GetFileName(file.FileName); // path = uploads + "\\" + fileName; // serviceRequests.FileDetails.Add(new FileDetails() // { // FileName = fileName, // Extension = Path.GetExtension(fileName), // Id = Guid.NewGuid(), // ServiceRequestId = id // }); // _context.Entry(serviceRequests.FileDetails).State = EntityState.Added; // } // } // catch // { // ViewBag.Message = "Upload Failed"; // } ////========================================================================================================================= // If Status changes then populate the datetime started and completed fields and send email confirmation========= if (serviceRequests.Status == 2 && serviceRequests.DateTimeStarted == null) { serviceRequests.DateTimeStarted = DateTime.Now; SendStatusConfirmation(2, serviceRequests.RequestorEmail); _context.Entry(serviceRequests).State = EntityState.Modified; } if (serviceRequests.Status == 3 && serviceRequests.DateTimeCompleted == null) { serviceRequests.DateTimeCompleted = DateTime.Now; SendStatusConfirmation(3, serviceRequests.RequestorEmail); _context.Entry(serviceRequests).State = EntityState.Modified; } ////=================================================================================== // If team is modified create new team history record========================== //var lastTeam = _context.TeamAssignmentHistories // .Include(t => t.ServiceRequestNavigation) // .Include(t => t.TeamNavigation) // .Where(t => t.ServiceRequestNavigation.Id == serviceRequests.Id); var lastTeam = from tah in _context.TeamAssignmentHistories where tah.ServiceRequest == serviceRequests.Id orderby tah.DateAssigned descending select tah; int lteam; lteam = lastTeam.FirstOrDefault().Team; if (serviceRequests.Team != lteam) { serviceRequests.TeamAssignmentHistories.Add(new TeamAssignmentHistories() { DateAssigned = DateTime.Now, AssignedBy = User.Identity.Name, ServiceRequest = serviceRequests.Id, Team = serviceRequests.Team }); } //========================================================================================= //========================================================================================= // if individual assigned has changed add individual history record======================== //var lastMember = _context.IndividualAssignmentHistories // .Include(t => t.ServiceRequestNavigation) // .Where(t => t.ServiceRequestNavigation.Id == serviceRequests.Id) // ; var lastMember = from lm in _context.IndividualAssignmentHistories where lm.ServiceRequest == serviceRequests.Id orderby lm.DateAssigned descending select lm; int lmember; lmember = lastMember.FirstOrDefault().AssignedTo; if (serviceRequests.Member != lmember) { serviceRequests.IndividualAssignmentHistories.Add(new IndividualAssignmentHistories() { DateAssigned = DateTime.Now, AssignedBy = User.Identity.Name, ServiceRequest = serviceRequests.Id, AssignedTo = serviceRequests.Member.Value, }); } //=========================================================================================== //===== If request step changes then create request step history record===================== //var lastStep = _context.StepHistories // .Include(t => t.ServiceRequestNavigation) // .Where(t => t.ServiceRequestNavigation.Id == serviceRequests.Id) // ; var lastStep = from ls in _context.StepHistories where ls.ServiceRequest == serviceRequests.Id orderby ls.LastUpdated descending select ls; int lstep; lstep = lastStep.FirstOrDefault().RequestTypeStep; if (serviceRequests.RequestTypeStep != lstep) { serviceRequests.StepHistories.Add(new StepHistories() { LastUpdated = DateTime.Now, RequestTypeStep = serviceRequests.RequestTypeStep.Value, ServiceRequest = serviceRequests.Id }); } //=========================================================================================== _context.Update(serviceRequests); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ServiceRequestsExists(serviceRequests.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["Member"] = new SelectList(_context.Members, "Id", "MemberEmail", serviceRequests.Member); ViewData["Priority"] = new SelectList(_context.Priorities, "Id", "PriorityDescription", serviceRequests.Priority); ViewData["RequestType"] = new SelectList(_context.RequestTypes, "Id", "RequestTypeDescription", serviceRequests.RequestType); ViewData["RequestTypeStep"] = new SelectList(_context.RequestTypeSteps, "Id", "StepDescription", serviceRequests.RequestTypeStep); ViewData["Status"] = new SelectList(_context.StatusSets, "Id", "StatusDescription", serviceRequests.Status); ViewData["Team"] = new SelectList(_context.Teams, "Id", "TeamDescription", serviceRequests.Team); return(View(serviceRequests)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,RequestHeading,RequestDescription,RequestorId,RequestorFirstName,RequestorLastName,RequestorPhone,RequestorEmail,DateTimeSubmitted,DateTimeStarted,DateTimeCompleted,Priority,RequestType,RequestTypeStep,Member,Status,Team")] ServiceRequests serviceRequests) { if (id != serviceRequests.Id) { return(NotFound()); } if (ModelState.IsValid) { try { // If Status changes then populate the datetime started and completed fields and send email confirmation========= if (serviceRequests.Status == 2 && serviceRequests.DateTimeStarted == null) { serviceRequests.DateTimeStarted = DateTime.Now; SendStatusConfirmation(2, serviceRequests.RequestorEmail); _context.Entry(serviceRequests).State = EntityState.Modified; } if (serviceRequests.Status == 3 && serviceRequests.DateTimeCompleted == null) { serviceRequests.DateTimeCompleted = DateTime.Now; SendStatusConfirmation(3, serviceRequests.RequestorEmail); _context.Entry(serviceRequests).State = EntityState.Modified; } ////=================================================================================== // If team is modified create new team history record========================== //var lastTeam = _context.TeamAssignmentHistories // .Include(t => t.ServiceRequestNavigation) // .Include(t => t.TeamNavigation) // .Where(t => t.ServiceRequestNavigation.Id == serviceRequests.Id); var lastTeam = from tah in _context.TeamAssignmentHistories where tah.ServiceRequest == serviceRequests.Id orderby tah.DateAssigned descending select tah; int lteam; lteam = lastTeam.FirstOrDefault().Team; if (serviceRequests.Team != lteam) { serviceRequests.TeamAssignmentHistories.Add(new TeamAssignmentHistories() { DateAssigned = DateTime.Now, AssignedBy = User.Identity.Name, ServiceRequest = serviceRequests.Id, Team = serviceRequests.Team }); } //========================================================================================= //========================================================================================= // if individual assigned has changed add individual history record======================== //var lastMember = _context.IndividualAssignmentHistories // .Include(t => t.ServiceRequestNavigation) // .Where(t => t.ServiceRequestNavigation.Id == serviceRequests.Id) // ; var lastMember = from lm in _context.IndividualAssignmentHistories where lm.ServiceRequest == serviceRequests.Id orderby lm.DateAssigned descending select lm; int lmember; lmember = lastMember.FirstOrDefault().AssignedTo; if (serviceRequests.Member != lmember) { serviceRequests.IndividualAssignmentHistories.Add(new IndividualAssignmentHistories() { DateAssigned = DateTime.Now, AssignedBy = User.Identity.Name, ServiceRequest = serviceRequests.Id, AssignedTo = serviceRequests.Member.Value, }); } //=========================================================================================== //===== If request step changes then create request step history record===================== //var lastStep = _context.StepHistories // .Include(t => t.ServiceRequestNavigation) // .Where(t => t.ServiceRequestNavigation.Id == serviceRequests.Id) // ; var lastStep = from ls in _context.StepHistories where ls.ServiceRequest == serviceRequests.Id orderby ls.LastUpdated descending select ls; int lstep; lstep = lastStep.FirstOrDefault().RequestTypeStep; if (serviceRequests.RequestTypeStep != lstep) { serviceRequests.StepHistories.Add(new StepHistories() { LastUpdated = DateTime.Now, RequestTypeStep = serviceRequests.RequestTypeStep.Value, ServiceRequest = serviceRequests.Id }); } //=========================================================================================== _context.Update(serviceRequests); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ServiceRequestsExists(serviceRequests.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["Member"] = new SelectList(_context.Members, "Id", "MemberEmail", serviceRequests.Member); ViewData["Priority"] = new SelectList(_context.Priorities, "Id", "PriorityDescription", serviceRequests.Priority); ViewData["RequestType"] = new SelectList(_context.RequestTypes, "Id", "RequestTypeDescription", serviceRequests.RequestType); ViewData["RequestTypeStep"] = new SelectList(_context.RequestTypeSteps, "Id", "StepDescription", serviceRequests.RequestTypeStep); ViewData["Status"] = new SelectList(_context.StatusSets, "Id", "StatusDescription", serviceRequests.Status); ViewData["Team"] = new SelectList(_context.Teams, "Id", "TeamDescription", serviceRequests.Team); return(View(serviceRequests)); }