public async Task <IActionResult> CreateLicence([FromBody] LicenseCreationDto licenseCreation) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var driverId = User.Claims.FirstOrDefault(c => c.Type == Helpers.Constants.Strings.JwtClaimIdentifiers.DriverId)?.Value; var driver = _usersRepository.GetDriverById(Guid.Parse(driverId)); if (driver == null) { return(NotFound()); } if (driver?.DriverLicense != null) { var res = await _usersRepository.RemoveDriverLicense(driver.DriverLicense); if (!res) { return(Conflict()); } } DateTime licensedTo; DateTime licensedFrom; try { licensedFrom = new DateTime(licenseCreation.YearFrom, licenseCreation.MonthFrom, licenseCreation.DayFrom); licensedTo = new DateTime(licenseCreation.YearTo, licenseCreation.MonthTo, licenseCreation.DayTo); } catch { return(BadRequest()); } if (licensedFrom > licensedTo) { return(BadRequest()); } var license = new DriverLicense() { DriverId = Guid.Parse(driverId), LicensedTo = licensedTo, LicensedFrom = licensedFrom }; var addres = await _usersRepository.AddDriverLicense(license); if (!addres) { return(Conflict()); } return(NoContent()); }