public async Task <IActionResult> ServiceRequestDetails(string id) { var serviceRequestDetails = await _serviceRequestOperations.GetServiceRequestByRowKey(id); // Access Check if (HttpContext.User.IsInRole(Roles.Engineer.ToString()) && serviceRequestDetails.ServiceEngineer != HttpContext.User.GetCurrentUserDetails().Email) { throw new UnauthorizedAccessException(); } if (HttpContext.User.IsInRole(Roles.User.ToString()) && serviceRequestDetails.PartitionKey != HttpContext.User.GetCurrentUserDetails().Email) { throw new UnauthorizedAccessException(); } var serviceRequestAuditDetails = await _serviceRequestOperations.GetServiceRequestAuditByPartitionKey( serviceRequestDetails.PartitionKey + "-" + id); // Select List Data var masterData = await _masterData.GetMasterDataCacheAsync(); ViewBag.VehicleTypes = masterData.Values.Where(p => p.PartitionKey == MasterKeys.VehicleType.ToString()).ToList(); ViewBag.VehicleNames = masterData.Values.Where(p => p.PartitionKey == MasterKeys.VehicleName.ToString()).ToList(); ViewBag.Status = Enum.GetValues(typeof(Status)).Cast <Status>().Select(v => v.ToString()).ToList(); ViewBag.ServiceEngineers = await _userManager.GetUsersInRoleAsync(Roles.Engineer.ToString()); return(View(new ServiceRequestDetailViewModel { ServiceRequest = _mapper.Map <ServiceRequest, UpdateServiceRequestViewModel>(serviceRequestDetails), ServiceRequestAudit = serviceRequestAuditDetails.OrderByDescending(p => p.Timestamp).ToList() })); }
public async Task <IActionResult> ServiceRequestDetails(string id) { if (string.IsNullOrWhiteSpace(id)) { return(RedirectToAction("Error", "Home", new { id = "404" })); } ServiceRequest serviceRequestDetails = await _serviceRequestOperations .GetServiceRequestByRowKey(rowKey : id); if (HttpContext.User.IsInRole(Roles.Engineer.ToString()) && (serviceRequestDetails.ServiceEngineer != HttpContext.User.GetCurrentUserDetails().Email)) { throw new UnauthorizedAccessException(); } if (HttpContext.User.IsInRole(Roles.User.ToString()) && serviceRequestDetails.PartitionKey != HttpContext.User.GetCurrentUserDetails().Email) { throw new UnauthorizedAccessException(); } var serviceRequestAuditDetails = await _serviceRequestOperations .GetServiceRequestAuditByPartitionKey(serviceRequestDetails.PartitionKey + "-" + id); var masterData = await _masterData.GetMasterDataCacheAsync(); ViewBag.VehicleTypes = masterData.Values.Where(p => p.PartitionKey == MasterKeys.VehicleType.ToString()).ToList(); ViewBag.VehicleNames = masterData.Values.Where(p => p.PartitionKey == MasterKeys.VehicleName.ToString()).ToList(); ViewBag.Status = Enum.GetValues(typeof(Status)).Cast <Status>().Select(v => v.ToString()).ToList(); ViewBag.ServiceEngineers = await _userManager.GetUsersInRoleAsync(Roles.Engineer.ToString()); return(View(new ServiceRequestDetailViewModel { ServiceRequest = _mapper.Map <UpdateServiceRequestViewModel>(serviceRequestDetails), ServiceRequestAudit = serviceRequestAuditDetails.OrderByDescending(p => p.RequestedDate).ToList() })); }