internal static void AddIdentityErrors(this ModelStateDictionary modelState, IdentityResult identityResult) { modelState.AddIdentityErrors(identityResult.Errors); }
public async Task <UserRegisterResponse> Register(RegisterUserViewModelWithRole model, ModelStateDictionary state) { IdentityResult result; switch (model.UserRole) { case UserRoles.Dispatcher: var dispatcher = Mapper.Map <Dispatcher>(model); result = await CreateAsync(dispatcher, model.Password); if (result.Succeeded) { dispatcher = await FindByNameAsync(dispatcher.UserName) as Dispatcher; if (dispatcher == null) { break; } await AddToRolesAsync(dispatcher.Id, model.UserRole); return(new UserRegisterResponse("Диспетчет успешно добавлен")); } break; case UserRoles.Driver: var driver = Mapper.Map <Driver>(model); result = await CreateAsync(driver, model.Password); if (result.Succeeded) { driver = await FindByNameAsync(driver.UserName) as Driver; if (driver == null) { break; } await AddToRolesAsync(driver.Id, model.UserRole); return(new UserRegisterResponse("Водитель успешно добавлен")); } break; default: var user = Mapper.Map <User>(model); result = await CreateAsync(user, model.Password); if (result.Succeeded) { user = await FindByNameAsync(user.UserName); await AddToRolesAsync(user.Id, model.UserRole); return(new UserRegisterResponse("Пользователь успешно добавлен")); } break; } state.AddIdentityErrors(result); return(new UserRegisterResponse(false)); }