public async Task <AdministratorDto> CreateAdmin(CreateWorkerModel model) { new WorkerValidator().ValidateAndThrow(model); new PasswordValidator().ValidateAndThrow(model); var user = new ApplicationUser { UserName = model.UserName, FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, Address = model.Address, Gender = model.GenderEnum.Value }; var result = await userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { throw new InvalidOperationException(result.Errors.First().Description); } await userManager.AddToRoleAsync(user, "administrator"); return(mapper.Map <AdministratorDto>(user)); }
private async Task <ApplicationUser> CreateWorker(CreateWorkerModel model) { new WorkerValidator().ValidateAndThrow(model); new PasswordValidator().ValidateAndThrow(model); var callerCompanyId = userAccessor.CompanyId; if (callerCompanyId == null) { throw new InvalidOperationException("Only an assigned administrator can make changes"); } var user = new ApplicationUser { UserName = model.UserName, FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, Address = model.Address, CompanyId = callerCompanyId, Gender = model.GenderEnum.Value }; var result = await userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { throw new InvalidOperationException(result.Errors.First().Description); } return(user); }
public async Task <EmployeeDto> CreateEmployee(CreateWorkerModel model) { var user = await CreateWorker(model); await userManager.AddToRoleAsync(user, "employee"); return(mapper.Map <EmployeeDto>(user)); }
public WorkerModel Insert(CreateWorkerModel userModel) { var user = userModel.ConvertToUserEntity(); _notificationContext.AddNotifications(user.Notifications); if (_notificationContext.Invalid) { return(default);
public void CanCreateWorker() { var dao = new Mock<IDao<Worker>>(); var entityFactory = new Mock<IEntityFactory>(); entityFactory.Setup(ent => ent.Create<Worker>()).Returns(new Worker()).AtMostOnce(); var createWorkerModel = new CreateWorkerModel(dao.Object, entityFactory.Object, new Mock<IEntityValidator>().Object); var worker = createWorkerModel.CreateWorker(); entityFactory.Verify(ent => ent.Create<Worker>()); }
public void CanCancelWorker() { var dao = new Mock<IDao<Worker>>(); var entityFactory = new Mock<IEntityFactory>(); var worker = new Worker(); dao.Setup(rep => rep.Refresh(It.IsAny<Worker>())).AtMostOnce(); var createWorkerModel = new CreateWorkerModel(dao.Object, entityFactory.Object, new Mock<IEntityValidator>().Object); createWorkerModel.CancelWorker(worker); dao.Verify(daoworker => daoworker.Refresh(worker)); }
public void SaveWorkerShouldDoesntWorkIfWorkerInvalid() { var repository = new Mock<IDao<Worker>>(); var entityValidator = new Mock<IEntityValidator>(); var entityFactory = new Mock<IEntityFactory>(); var worker = new Worker(); entityValidator.Setup(ev => ev.IsValid(worker)).Returns(false); var albumManagerModel = new CreateWorkerModel(repository.Object, entityFactory.Object, entityValidator.Object); albumManagerModel.SaveWorker(worker); entityValidator.Verify(ev => ev.IsValid(worker)); }
public void GivenTheWorkersData(Table table) => _createWorkerModel = table.CreateInstance <CreateWorkerModel>();
public static Worker ConvertToUserEntity(this CreateWorkerModel userModel) => new Worker(0, userModel.Name, userModel.BirthDate, userModel.Cpf, userModel.Password);
public async Task <ActionResult <EmployeeDto> > CreateEmployee([FromBody] CreateWorkerModel model) { return(Ok(await userService.CreateEmployee(model))); }
public async Task <ActionResult <AdministratorDto> > CreateAdmin([FromBody] CreateWorkerModel model) { return(Ok(await userService.CreateAdmin(model))); }
public void SaveWorkerShouldWork() { var repository = new Mock<IDao<Worker>>(); var entityValidator = new Mock<IEntityValidator>(); var entityFactory = new Mock<IEntityFactory>(); var worker = new Worker(); entityValidator.Setup(ev => ev.IsValid(worker)).Returns(true); repository.Setup(rep => rep.Save(It.IsAny<Worker>())).AtMostOnce(); var albumManagerModel = new CreateWorkerModel(repository.Object, entityFactory.Object, entityValidator.Object); albumManagerModel.SaveWorker(worker); entityValidator.Verify(ev => ev.IsValid(worker)); repository.Verify(rep => rep.Save(worker)); }
public static Worker ConverterToUserEntity(this CreateWorkerModel userModel) => new Worker(0, userModel.Name, userModel.BirthDate, userModel.Nin, userModel.Girlfriend);