public async Task <ActionResult <WebApiLoginResult> > ChangePassword(LoginParameters parameters, CancellationToken token) { var result = new WebApiLoginResult { LoginResult = (int)LoginResult.Failed, PasswordChangeResult = (int)PasswordChangeResult.Failed, }; var company = (await companyProcessor.GetAsync(new CompanySearch { Code = parameters.CompanyCode }, token))?.FirstOrDefault(); if (company == null) { return(result); } var loginUser = (await loginUserProcessor.GetAsync(new LoginUserSearch { CompanyId = company.Id, Codes = new[] { parameters.UserCode }, }, token))?.FirstOrDefault(); if (loginUser == null) { return(result); } var changeResult = await loginUserPasswordProcessor.ChangeAsync(company.Id, loginUser.Id, parameters.OldPassword, parameters.Password, token); result.PasswordChangeResult = (int)changeResult; return(result); }
public async Task <ActionResult <WebApiLoginResult> > Login(LoginParameters parameters, CancellationToken token) { var result = new WebApiLoginResult { LoginResult = (int)LoginResult.Failed, PasswordChangeResult = (int)PasswordValidateResult.Valid, }; var company = (await companyProcessor.GetAsync(new CompanySearch { Code = parameters.CompanyCode }, token))?.FirstOrDefault(); if (company == null) { return(result); } var loginUser = (await loginUserProcessor.GetAsync(new LoginUserSearch { CompanyId = company.Id, Codes = new[] { parameters.UserCode }, }, token))?.FirstOrDefault(); if (loginUser == null) { return(result); } var loginResult = await loginUserPasswordProcessor.LoginAsync(company.Id, loginUser.Id, parameters.Password, token); result.LoginResult = (int)loginResult; if (loginResult != LoginResult.Success && loginResult != LoginResult.Expired) { return(result); } var authKey = string.Empty; var tenantCode = string.Empty; if (!ParseHeader(out authKey, out tenantCode)) { result.LoginResult = (int)LoginResult.Failed; return(result); } var createResult = await authenticationWebApiProcessor.CreateSessionAsync(tenantCode, token); if (!createResult.Result) { result.LoginResult = (int)LoginResult.DBError; return(result); } result.SessionKey = createResult.ErrorMessage; return(result); }