public async Task <IActionResult> UpdateServiceRequestDetails(UpdateServiceRequestViewModel serviceRequest) { var originalServiceRequest = await _serviceRequestOperations.GetServiceRequestByRowKey(serviceRequest.RowKey); originalServiceRequest.RequestedServices = serviceRequest.RequestedServices; // Update Status only if user role is either Admin or Engineer // Or Customer can update the status if it is only in Pending Customer Approval. if (HttpContext.User.IsInRole(Roles.Admin.ToString()) || HttpContext.User.IsInRole(Roles.Engineer.ToString()) || (HttpContext.User.IsInRole(Roles.User.ToString()) && originalServiceRequest.Status == Status.PendingCustomerApproval.ToString())) { originalServiceRequest.Status = serviceRequest.Status; } // Update Service Engineer field only if user role is Admin if (HttpContext.User.IsInRole(Roles.Admin.ToString())) { originalServiceRequest.ServiceEngineer = serviceRequest.ServiceEngineer; } await _serviceRequestOperations.UpdateServiceRequestAsync(originalServiceRequest); if (HttpContext.User.IsInRole(Roles.Admin.ToString()) || HttpContext.User.IsInRole(Roles.Engineer.ToString()) || originalServiceRequest.Status == Status.PendingCustomerApproval.ToString()) { await _emailSender.SendEmailAsync(originalServiceRequest.PartitionKey, "Your Service Request is almost completed!!!", "Please visit the ASC application and review your Service request."); } return(RedirectToAction("ServiceRequestDetails", "ServiceRequest", new { Area = "ServiceRequests", Id = serviceRequest.RowKey })); }
public async Task <IActionResult> UpdateServiceRequestDetails(UpdateServiceRequestViewModel serviceRequest) { var originalServiceRequest = await _serviceRequestOperations.GetServiceRequestByRowKey(serviceRequest.RowKey); // Descrição do serviço originalServiceRequest.RequestedServices = serviceRequest.RequestedServices; // Update Status only if user role is either Admin or Engineer // Or Customer can update the status if it is only in Pending Customer Approval. if ((HttpContext.User.IsInRole(Roles.Admin.ToString()) || HttpContext.User.IsInRole(Roles.Engineer.ToString())) || (HttpContext.User.IsInRole(Roles.User.ToString()) && originalServiceRequest.Status == Status.PendingCustomerApproval.ToString())) { originalServiceRequest.Status = serviceRequest.Status; } // Update Service Engineer field only if user role is Admin if (HttpContext.User.IsInRole(Roles.Admin.ToString())) { originalServiceRequest.ServiceEngineer = serviceRequest.ServiceEngineer; } await _serviceRequestOperations.UpdateServiceRequestAsync(originalServiceRequest); return(RedirectToAction("ServiceRequestDetails", "ServiceRequest", new { id = serviceRequest.RowKey })); }
public async Task <IActionResult> UpdateServiceRequestDetails(UpdateServiceRequestViewModel serviceRequest) { var originalServiceRequest = _repo.GetBySpecificCondition($"Id == {serviceRequest.Id}"); originalServiceRequest.RequestedServices = serviceRequest.RequestedServices; var isServiceRequestsStatusUpdated = false; // Update Status only if user role is either Admin or Engineer // Or Customer can update the status if it is only in Pending Customer Approval. if (HttpContext.User.IsInRole(Roles.Admin.ToString()) || HttpContext.User.IsInRole(Roles.Engineer.ToString()) || (HttpContext.User.IsInRole(Roles.User.ToString()) && originalServiceRequest.Status == Status.PendingCustomerApproval.ToString())) { if (originalServiceRequest.Status != serviceRequest.Status) { isServiceRequestsStatusUpdated = true; } originalServiceRequest.Status = serviceRequest.Status; } // Update Service Engineer field only if user role is Admin if (HttpContext.User.IsInRole(Roles.Admin.ToString())) { originalServiceRequest.ServiceEngineer = serviceRequest.ServiceEngineer; } _repo.Update(originalServiceRequest); await _uow.SaveAsync(); //if (HttpContext.User.IsInRole(Roles.Admin.ToString()) || // HttpContext.User.IsInRole(Roles.Engineer.ToString()) || originalServiceRequest.Status == Status.PendingCustomerApproval.ToString()) //{ // await _emailSender.SendEmailAsync(originalServiceRequest.PartitionKey, // "Your Service Request is almost completed!!!", // "Please visit the ASC application and review your Service request."); //} if (isServiceRequestsStatusUpdated) { await SendSmsAndWebNotifications(originalServiceRequest); } return(RedirectToAction("ServiceRequestDetails", "ServiceRequest", new { Area = "ServiceRequests", Id = serviceRequest.Id })); }