コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }