public async Task <IActionResult> Register([FromForm] RegisterModel model) { if (ModelState.IsValid) { var validationResult = _service.ValidateRegister(User, model); if (!validationResult.Valid) { return(BadRequest(validationResult.Result)); } IdentityResult result; using (var trans = context.Database.BeginTransaction()) { var entity = _service.ConvertToUser(model); result = await _service .CreateUserWithRolesTransactionAsync(entity, model.password); if (result.Succeeded) { trans.Commit(); _logger.CustomProperties(entity).Info("Register new user"); return(NoContent()); } } foreach (var err in result.Errors) { ModelState.AddModelError(err.Code, err.Description); } } var builder = ResultHelper.MakeInvalidAccountRegistrationResults(ModelState); return(BadRequest(builder.Results)); }
public async Task <IActionResult> Create(CreateDeviceModel model) { if (ModelState.IsValid) { var validCode = _service.GetActivationCode(model.username); var validationResult = _service.ValidateCreateDevice(User, model, validCode); if (!validationResult.Valid) { return(BadRequest(validationResult.Result)); } //create user account var account = _service.MakeDeviceAccount(model); using (var trans = context.Database.BeginTransaction()) { var result = await _identityService.CreateUserWithRolesTransactionAsync(account, model.password, new List <string>() { Data.RoleName.Device }); if (result.Succeeded) { //create device var entity = _service.CreateDevice(model, account.Id); context.SaveChanges(); trans.Commit(); return(Created($"/{ApiEndpoint.DEVICE_API}?id={entity.Id}", new AppResultBuilder().Success(entity.Id))); } foreach (var err in result.Errors) { ModelState.AddModelError(err.Code, err.Description); } } } var builder = ResultHelper.MakeInvalidAccountRegistrationResults(ModelState); return(BadRequest(builder.Results)); }