public async Task <IActionResult> ServiceRequest(NewServiceRequestViewModel request)
        {
            if (ModelState.IsValid == false)
            {
                var masterData = await _masterData.GetMasterDataCacheAsync();

                ViewBag.VehicleTypes = masterData.Values.Where(p => p.PartitionKey ==
                                                               nameof(MasterKeys.VehicleType)).ToList();
                ViewBag.VehicleNames = masterData.Values.Where(p => p.PartitionKey ==
                                                               nameof(MasterKeys.VehicleName)).ToList();
                return(View(request));
            }

            var serviceRequest = _mapper.Map <ServiceRequest>(request);

            serviceRequest.PartitionKey    = User.GetCurrentUserDetails().Email;
            serviceRequest.RowKey          = Guid.NewGuid().ToString();
            serviceRequest.RequestedDate   = request.RequestedDate;
            serviceRequest.Status          = nameof(Status.New);
            serviceRequest.ServiceEngineer = HttpContext.User.IsInRole(nameof(Roles.Engineer))
                                             ? User.GetCurrentUserDetails().Email
                                             : string.Empty;

            await _serviceRequestOperations.CreateServiceRequestAsync(serviceRequest);

            return(RedirectToAction("Dashboard", "Dashboard"));
        }
        public async Task <IActionResult> ServiceRequest(NewServiceRequestViewModel request)
        {
            if (!ModelState.IsValid)
            {
                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();
                return(View(request));
            }

            // Map the view model to Azure model
            var serviceRequest = _mapper.Map <NewServiceRequestViewModel, ServiceRequest>(request);

            // Set RowKey, PartitionKye, RequestedDate, Status properties
            serviceRequest.PartitionKey  = HttpContext.User.GetCurrentUserDetails().Email;
            serviceRequest.RowKey        = Guid.NewGuid().ToString();
            serviceRequest.RequestedDate = request.RequestedDate;
            serviceRequest.Status        = Status.New.ToString();

            await _serviceRequestOperations.CreateServiceRequestAsync(serviceRequest);

            return(RedirectToAction("Dashboard", "Dashboard", new { Area = "ServiceRequests" }));
        }