public async Task <IActionResult> AddDriverMasterAsync([FromBody] AddDriverMasterManagementAc addDriverMaster) { var user = await _userManager.FindByNameAsync(User.Identity.Name); return(Ok(await _driverMasterManagementRepository.AddDriverMasterAsync(addDriverMaster, user))); }
/// <summary> /// Method to add driver - SS /// </summary> /// <param name="addDriverMaster">driver detail</param> /// <param name="loggedInUser">logged in user</param> /// <returns>response</returns> public async Task <DriverMasterManagementResponse> AddDriverMasterAsync(AddDriverMasterManagementAc addDriverMaster, ApplicationUser loggedInUser) { if (string.IsNullOrEmpty(addDriverMaster.Name) && string.IsNullOrEmpty(addDriverMaster.Name.Trim())) { return new DriverMasterManagementResponse() { HasError = true, Message = "Name can't be empty", ErrorType = DriverMasterManagementResponseType.Name } } ; else if (string.IsNullOrEmpty(addDriverMaster.MobileNumber) && string.IsNullOrEmpty(addDriverMaster.MobileNumber.Trim())) { return new DriverMasterManagementResponse() { HasError = true, Message = "Mobile number can't be empty", ErrorType = DriverMasterManagementResponseType.MobileNumber } } ; else if (string.IsNullOrEmpty(addDriverMaster.LicenseNumber) && string.IsNullOrEmpty(addDriverMaster.LicenseNumber.Trim())) { return new DriverMasterManagementResponse() { HasError = true, Message = "License number can't be empty", ErrorType = DriverMasterManagementResponseType.LicenseNumber } } ; else if (string.IsNullOrEmpty(addDriverMaster.LicenseType) && string.IsNullOrEmpty(addDriverMaster.LicenseType.Trim())) { return new DriverMasterManagementResponse() { HasError = true, Message = "License type can't be empty", ErrorType = DriverMasterManagementResponseType.LicenseType } } ; else if (string.IsNullOrEmpty(addDriverMaster.PlaceOfIssue) && string.IsNullOrEmpty(addDriverMaster.PlaceOfIssue.Trim())) { return new DriverMasterManagementResponse() { HasError = true, Message = "Place of issue can't be empty", ErrorType = DriverMasterManagementResponseType.PlaceOfIssue } } ; else if (string.IsNullOrEmpty(addDriverMaster.IssuingAuthority) && string.IsNullOrEmpty(addDriverMaster.IssuingAuthority.Trim())) { return new DriverMasterManagementResponse() { HasError = true, Message = "Issuing authority can't be empty", ErrorType = DriverMasterManagementResponseType.IssuingAuthority } } ; else { var user = await _userManager.FindByNameAsync(addDriverMaster.MobileNumber); var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true); bool isUserExist = false; if (user != null) { isUserExist = await _iMSDbContext.DriverMasters.AnyAsync(x => x.UserId == user.Id && x.InstituteId == instituteId); } if (isUserExist) { return new DriverMasterManagementResponse() { HasError = true, Message = "Driver with this mobile number already exist", ErrorType = DriverMasterManagementResponseType.MobileNumber } } ; else { #region Add User if (user == null) { var password = "******"; user = new ApplicationUser() { CreatedBy = loggedInUser.Id, CreatedOn = DateTime.UtcNow, UserName = addDriverMaster.MobileNumber, Name = addDriverMaster.Name, UpdatedOn = DateTime.UtcNow, UpdatedBy = loggedInUser.Id }; await _userManager.CreateAsync(user, password); } else { if (await _iMSDbContext.Institutes.AnyAsync(x => x.Id == instituteId && x.AdminId == user.Id)) { return new DriverMasterManagementResponse() { HasError = true, ErrorType = DriverMasterManagementResponseType.MobileNumber, Message = "Monile number is already linked up with admin. Admin can't be driver" } } ; } _iMSDbContext.UserInstituteMappings.Add(new UserInstituteMapping() { CreatedOn = DateTime.UtcNow, InstituteId = instituteId, IsActive = false, UserId = user.Id }); await _iMSDbContext.SaveChangesAsync(); #endregion #region Add Driver var driver = new DriverMaster() { Address = addDriverMaster.Address, CreatedOn = DateTime.UtcNow, DateOfBirth = addDriverMaster.DateOfBirth, DateOfIssue = addDriverMaster.DateOfIssue, InstituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true), IsDriver = addDriverMaster.IsDriver, IssuingAuthority = addDriverMaster.IssuingAuthority, LicenseNumber = addDriverMaster.LicenseNumber, LicenseType = addDriverMaster.LicenseType, MobileNumber = addDriverMaster.MobileNumber, Name = addDriverMaster.Name, PlaceOfIssue = addDriverMaster.PlaceOfIssue, Salary = addDriverMaster.Salary, UpdatedById = loggedInUser.Id, UpdatedOn = DateTime.UtcNow, ValidityTill = addDriverMaster.ValidityTill, UserId = user.Id }; _iMSDbContext.DriverMasters.Add(driver); await _iMSDbContext.SaveChangesAsync(); #endregion return(new DriverMasterManagementResponse() { HasError = false, Message = "Driver added successfully", Data = new { Id = driver.Id } }); } } }