public async static Task <bool> IsExistsUser(ISysRepository repo, UserManager <IdentityUser> userManager, string email) { MxReturnCode <bool> rc = new MxReturnCode <bool>("IdentityDb.CreateUser()", false); if ((repo == null) || (userManager == null) || (email == null)) { rc.SetError(3160201, MxError.Source.Param, "repo, userManager or email is null", MxMsgs.MxErrUnexpected); } else { try { //check identity var result = await repo.GetUserAsync(email); rc += result; if (result.IsSuccess()) { rc.SetResult(true); } else { rc.SetResult(false); } } catch (Exception e) { rc.SetError(3160202, MxError.Source.Exception, e.Message, MxMsgs.MxErrUnknownException, true); } } return(rc.GetResult()); }
public async static Task <MxReturnCode <int> > CreateUser(ISysRepository repo, UserManager <IdentityUser> userManager, string gdprRoleName, string password, string email, string fullName) { MxReturnCode <int> rc = new MxReturnCode <int>("IdentityDb.CreateUser()", -1); if ((repo == null) || (userManager == null) || (gdprRoleName == null) || (password == null) || (email == null) || (fullName == null)) { rc.SetError(3160101, MxError.Source.Param, "repo, userManager, roleName, password, email, or fullname is null", MxMsgs.MxErrUnexpected); } else { try { if (await IsExistsUser(repo, userManager, email) == true) { rc.SetResult(0); } else { if (await userManager.FindByEmailAsync(email) == null) { IdentityUser user = new IdentityUser() { UserName = email, Email = email }; await userManager.CreateAsync(user, password); IdentityResult result = await userManager.AddToRoleAsync(user, gdprRoleName); if (result.Succeeded == false) { rc.SetError(3160102, MxError.Source.Sys, WebErrorHandling.GetIdentityErrors(result, $"cannot create role {gdprRoleName}")); } } if (rc.GetErrorCode() == MxErrorLog.UnknownError) { //if (await repository.IsGdprUserExists(email) ) //var resCnt = await repository.CreateGDPRUser(); //rc += resCnt; //if (res.IsSuccess()) //{ // rc.SetResult(true); //} } rc.SetResult(1); } } catch (Exception e) { rc.SetError(3160102, MxError.Source.Exception, e.Message, MxMsgs.MxErrUnknownException, true); } if (rc.IsError()) { var user = await userManager.FindByEmailAsync(email); if (user != null) { await userManager.DeleteAsync(user); } } } return(rc); }
public UserService(ISysRepository sysRepository) { this.sysRepository = sysRepository; }