public async Task <ActionResult> Edit(long id)
        {
            var driverlicense = new VehicleInsuranceDTO();

            try
            {
                var requestUrl = $"{BaseUrl}{apiUriVehicle}/GetVehicleInsurance?id={id}";
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(requestUrl);
                    var response = await client.GetAsync(requestUrl);

                    if (response.StatusCode != HttpStatusCode.OK)
                    {
                        ViewBag.Message = "Something went wrong, try again";
                        return(View());
                    }
                    driverlicense = await response.Content.ReadAsAsync <VehicleInsuranceDTO>();
                }
                return(View(driverlicense));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public async Task <IActionResult> Create(VehicleInsuranceDTO vehicleInsuranceDTO)
        {
            if (vehicleInsuranceDTO.ExpiryDate > DateTime.UtcNow.AddYears(10))
            {
                string error = "Date cannot exceed 10 years";
                return(RedirectToAction("Create", new { message = error }));
            }
            if (vehicleInsuranceDTO.ExpiryDate < DateTime.UtcNow.AddHours(2))
            {
                string error = "Date cannot be before today";
                return(RedirectToAction("Create", new { message = error }));
            }
            if (vehicleInsuranceDTO.ExpiryDate < DateTime.UtcNow.AddMonths(6))
            {
                string error = "Minimum insurance is 6 Months";
                return(RedirectToAction("Create", new { message = error }));
            }

            vehicleInsuranceDTO.DateEffective = DateTime.UtcNow.AddHours(2);
            vehicleInsuranceDTO.IssuedBy      = HttpContext.Session.GetString("user");
            if (vehicleInsuranceDTO == null)
            {
                return(NotFound());
            }
            var outputHandler = new OutputHandler();
            var requestUrl    = $"{BaseUrl}{apiUriVehicle}/CreateVehicleInsurance";

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(requestUrl);
                var response = await client.PostAsJsonAsync(requestUrl, vehicleInsuranceDTO);

                outputHandler = await response.Content.ReadAsAsync <OutputHandler>();

                if (outputHandler.IsErrorOccured)
                {
                    ViewBag.Message = outputHandler.Message;
                    return(View());
                }
            }
            return(RedirectToAction("Index", new { outputHandler.Message }));
        }
        public async Task <ActionResult> Edit(VehicleInsuranceDTO vehicleInsuranceDTO)
        {
            //if(Convert.ToInt32(driverLicenseDTO.DateIssued.Year.ToString()) = 5)
            var outputHandler = new OutputHandler();
            var requestUrl    = $"{BaseUrl}{apiUriVehicle}/UpdateVehicleInsurance";

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(requestUrl);
                HttpResponseMessage response = await client.PutAsJsonAsync(requestUrl, vehicleInsuranceDTO);

                outputHandler = await response.Content.ReadAsAsync <OutputHandler>();

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    if (outputHandler.IsErrorOccured)
                    {
                        ViewBag.Message = outputHandler.Message;
                        return(View());
                    }
                }
            }
            return(RedirectToAction("Index", new { outputHandler.Message }));
        }