public async Task <IActionResult> Registerdriver([FromBody] RegisterDriverViewModel model) { try { if (CheckExistdriver(model.PhoneNubmber)) { return(Ok(new ResultContract <Driver>() { statuse = false, Data = null, message = "این شماره موبایل قبلا ثبت نام کرده است" })); } else { var driver = model.Adapt <Driver>(); await _context.Drivers.AddAsync(driver); await _context.SaveChangesWithHistoryAsync(HttpContext); return(Ok(new ResultContract <Driver>() { statuse = true, Data = driver, message = "" })); } } catch (Exception ex) { await _logger.LogAsync(HttpContext, ex); return(Ok(new ResultContract <string>() { statuse = false, message = "یک خطای ناشناخته روی داد" })); } }
public ActionResult RegisterDriver(RegisterDriverViewModel model) { if (!ModelState.IsValid) { return(View()); } try { Driver driver = new Driver(new User.NameFormat { FirstName = model.FirstName, LastName = model.LastName }, new User.ContactNumberFormat(model.CountryCode, model.CompanyCode, model.Number), model.CreditLimit, Constants.DEFAULT_LOCATION, model.CNIC); driver.RegisterIdentityUser(model.Username, Constants.DEFAULT_PASSWORD); RegisterDriverConfirmationViewModel regModel = new RegisterDriverConfirmationViewModel { Contact = driver.ContactNumber.LocalFormatedPhoneNumber, Name = driver.FullName.FirstName + " " + driver.FullName.LastName, Password = Constants.DEFAULT_PASSWORD, Username = model.Username }; return(View("RegisterationConfirmation", regModel)); } catch (UniqueKeyViolationException ex) { ModelState.AddModelError(String.Empty, ex.Message); return(View()); } catch (Exception ex) { return(RedirectToAction("ErrorPage", "Error", ex)); } }
public ActionResult BecomeDriver() { var driverRegisterModel = new RegisterDriverViewModel(); driverRegisterModel.TruckTypesList = GetTruckTypes(); driverRegisterModel.TruckYear = null; return(View(driverRegisterModel)); }
public void ShouldProperlyCreateNewDriverWhenInitialized() { var sut = new RegisterDriverViewModel(_driverServiceMock, _driverViewModelMapperMock, _messengerServiceMock); Assert.NotNull(sut.CurrentDriver); Assert.AreNotEqual(Guid.Empty, sut.CurrentDriver.Id); }
public ActionResult RegisterDriver() { RegisterDriverViewModel viewModel = new RegisterDriverViewModel(); viewModel.MakesList = new List <string>() { "Audi", "Mercedes" }; return(PartialView(viewModel)); }
public void ShouldNotExecuteRegisterCommandWhenDriverIsNotValid() { var sut = new RegisterDriverViewModel(_driverServiceMock, _driverViewModelMapperMock, _messengerServiceMock); sut.RegisterDriverCommand.Execute(null); _driverViewModelMapperMock.DidNotReceive().Map(Arg.Any <DriverViewModel>()); _driverServiceMock.DidNotReceive().CreateDriver(Arg.Any <DriverDTO>()); _messengerServiceMock.DidNotReceive().Send(Arg.Any <NotificationMessage>()); }
public void ShouldExecuteRegisterCommandWhenDriverIsValid() { var sut = new RegisterDriverViewModel(_driverServiceMock, _driverViewModelMapperMock, _messengerServiceMock); sut.CurrentDriver.FirstName = "Valid"; sut.CurrentDriver.LastName = "Valid"; sut.CurrentDriver.LicenseNumber = "Valid"; sut.RegisterDriverCommand.Execute(null); _driverViewModelMapperMock.Received().Map(sut.CurrentDriver); _driverServiceMock.Received().CreateDriver(Arg.Any <DriverDTO>()); _messengerServiceMock.Received() .Send(Arg.Is <NotificationMessage>(m => m.Notification == "Close Register Window")); }
public async Task <ActionResult> RegisterDriver(RegisterDriverViewModel model) { //admin abcD123$ if (ModelState.IsValid) { var user = new User { UserName = model.Username, Email = model.Email, Fullname = model.Fullname }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { result = await UserManager.AddToRoleAsync(user.Id, "Driver"); Driver driver = new Driver() { DrivingLicence = model.DrivingLicence, UserId = user.Id, Status = Status.Availble, TotalRides = 0, Earnings = 0 }; _driverRepository.Add(driver); Vehicle vehicle = new Vehicle() { DriverId = driver.Id, ModelName = model.VehicleModelName, CompanyName = model.VehicleCompanyName, Color = model.VehicleColor, RegNumber = model.VehicleRegNum, RegDate = model.VehicleRegDate, VehicleTypeId = _vehicleTypeRepository.GetVehicleByName(model.VehicleType).Id }; _vehicleRepository.Add(vehicle); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); //await _dirverRepo.Add(driver); //await _vehicleRepo.Add(vehicle); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Drivers")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <ActionResult> RegisterDriver(RegisterDriverViewModel model) { if (ModelState.IsValid) { try { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, IsDriver = model.IsDriver }; var result = UserManager.Create(user, model.Password); if (result.Succeeded) { var roleResult = UserManager.AddToRole(user.Id, "Driver"); DriverService driverService = new DriverService(); driverService.AddDriver(user.Id, !String.IsNullOrEmpty(model.LicenceRegistrationDate) ? Convert.ToDateTime(model.LicenceRegistrationDate) : DateTime.Now.AddYears(-18), DateTime.Now); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("EmailNotConfirmed", "Account")); } AddErrors(result); } catch (Exception ex) { var t = ex.Message; } } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult RegisterDriver(RegisterDriverViewModel model) { if (ModelState.IsValid) { //Unqieness validations var checkEmailUniqueness = _context.Logins .SingleOrDefault(l => l.Email == model.Email); if (checkEmailUniqueness != null) { ModelState.AddModelError("Email", "Email id is already registered."); } var checkPhoneUnqiueness = _context.TruckOwners .SingleOrDefault(t => t.Phone == model.Phone); if (checkPhoneUnqiueness != null) { ModelState.AddModelError("Phone", "Phone number is already registered."); } var checkTruckUniqueness = _context.Trucks .SingleOrDefault(t => t.LicensePlate == model.LicensePlate); if (checkTruckUniqueness != null) { ModelState.AddModelError("LicensePlate", "Truck License Number is already registered."); } var checkDLNumberUniqueness = _context.TruckOwners .SingleOrDefault(t => t.DriverLicenseNumber == model.DriverLicenseNumber); if (checkDLNumberUniqueness != null) { ModelState.AddModelError("DriverLicenseNumber", "Driver License Number is already registered."); } var checkVRumberUniqueness = _context.TruckOwners .SingleOrDefault(t => t.VehicleRegNumber == model.VehicleRegNumber); if (checkVRumberUniqueness != null) { ModelState.AddModelError("VehicleRegNumber", "Vehicle Reg Number is already registered."); } var checkDIPNumberUniqueness = _context.TruckOwners .SingleOrDefault(t => t.DriverInsurancePolicy == model.DriverInsurancePolicy); if (checkDIPNumberUniqueness != null) { ModelState.AddModelError("DriverInsurancePolicy", "Driver Insurance Policy is already registered."); } //Unqieness validations if (checkEmailUniqueness == null && checkPhoneUnqiueness == null && checkTruckUniqueness == null && checkDLNumberUniqueness == null && checkVRumberUniqueness == null && checkDIPNumberUniqueness == null) { var salt = AuthenticationLogic.Get_SALT(64); var login = new Login { Email = model.Email.Trim(), Password = AuthenticationLogic.Get_HASH_SHA512(model.Password, model.Email, salt), PasswordSalt = salt, UserType = "D", EmailActivated = false, CreatedTime = DateTime.Now, ModifiedTime = DateTime.Now }; _context.Logins.Add(login); var truckOwner = new TruckOwner { FirstName = model.FirstName.Trim(), LastName = model.LastName.Trim(), Phone = model.Phone.Trim(), Email = model.Email.Trim(), CurrentStatusActive = false, Address1 = model.Address1.Trim(), Address2 = model.Address2, ZipCode = model.ZipCode.Trim(), City = model.City.Trim(), State = model.State.Trim(), DriverLicenseNumber = model.DriverLicenseNumber.Trim(), VehicleRegNumber = model.VehicleRegNumber.Trim(), DriverInsurancePolicy = model.DriverInsurancePolicy.Trim(), CreatedTime = DateTime.Now, ModifiedTime = DateTime.Now }; _context.TruckOwners.Add(truckOwner); var truck = new Truck { TruckOwnerId = truckOwner.TruckOwnerId, TruckTypeId = model.TruckTypeId, TruckMake = model.TruckMake.Trim(), TruckModel = model.TruckModel.Trim(), TruckYear = model.TruckYear.ToString(), LicensePlate = model.LicensePlate.Trim(), TruckColor = model.TruckColor.Trim(), CreatedTime = DateTime.Now, ModifiedTime = DateTime.Now }; _context.Trucks.Add(truck); _context.SaveChanges(); string token = truckOwner.TruckOwnerId + "c45kaa52165hrd84rd"; string verificationUrl = Url.Action("VerifyEmail", "TruckOwners", new { token = token }, Request.Url.Scheme); SendGridEmailService.SendEmailActivationLink("Driver", truckOwner.Email, truckOwner.FirstName, verificationUrl); TempData["ViewModel"] = new SuccessPageViewModel { Message = Constants.RegisterSuccessMessage }; return(RedirectToAction("Success", "Home")); } } model.TruckTypesList = GetTruckTypes(); return(View("../TruckOwners/BecomeDriver", model)); }