internal async Task <bool> OpenNewSession(IClientShim client, string userName, string password, CancellationToken cancelToken) { var tokn = await GetToken(client, cancelToken); if (tokn.IsBlank()) { return(false); } var req = RequestShim.POST(URL.Api_UserLogin); req.UserName = _userName = userName; req.Password = _password = Saltify(password); req.CsrfToken = tokn; var user = await ValidateCredentials(client, req, cancelToken); if (user == null) { return(false); } this.Current = await GetUserSession(client, user, cancelToken); if (this.Current == null) { return(false); } return(_isSessionValid = true); }
//private bool _loginStarted = false; //private static readonly Object obj = new Object(); public D7ServicesClient(IFileSystemShim fsShim, ISerializer serializer) { _fsShim = fsShim; _serialzr = ForwardLogs(serializer); _client = ForwardLogs(new RestSharpClientShim()); _auth = ForwardLogs(new SessionAuth(fsShim, serializer)); _batchr = ForwardLogs(new BatchSender(_client, _auth)); _client.ResponseReceived += (s, e) => RaiseResponseReceived(e.Value); }
private async Task <D7UserSession> GetUserSession(IClientShim client, D7UserSession usr, CancellationToken cancelToken) { var req = RequestFactory.Make(URL.Api_SystemConnect, RestMethod.Post, usr, _userName, _password); req.UserName = _userName; req.Password = _password; var sess = await client.Send <D7UserSession>(req, cancelToken); sess.token = usr.token; sess.BaseURL = client.BaseUrl; return(sess); }
private async Task <string> GetToken(IClientShim client, CancellationToken cancelToken) { var req = RequestShim.POST(URL.Api_UserToken); D7SessionToken tok; try { tok = await client.Send <D7SessionToken>(req, cancelToken); } catch (Exception ex) { LogError("client.Send", ex); return(null); } return(tok?.token); }
private async Task <D7UserSession> ValidateCredentials(IClientShim client, RequestShim req, CancellationToken cancelToken) { req.Body = new { username = _userName, password = _password }; req.UserName = _userName; req.Password = _password; D7UserSession ret = null; try { ret = await client.Send <D7UserSession>(req, cancelToken); } catch (Exception ex) { LogError("client.Send<D7UserSession>", ex); return(null); } return(ret); }
internal async Task<bool> OpenNewSession(IClientShim client, string userName, string password, CancellationToken cancelToken) { var tokn = await GetToken(client, cancelToken); if (tokn.IsBlank()) return false; var req = RequestShim.POST(URL.Api_UserLogin); req.UserName = _userName = userName; req.Password = _password = Saltify(password); req.CsrfToken = tokn; var user = await ValidateCredentials(client, req, cancelToken); if (user == null) return false; this.Current = await GetUserSession(client, user, cancelToken); if (this.Current == null) return false; return _isSessionValid = true; }
internal async Task <bool> CloseSession(IClientShim client, CancellationToken cancelToken) { Debug_n("Closing user session...", ""); var req = Req.POST(URL.Api_UserLogout); var resp = await client.Send <List <bool> >(req, cancelToken); var ok = resp.FirstOrDefault(); this.Current = null; if (ok) { return(Debug_n("Session successfully closed.", "")); } else { return(Warn_n("Unexpected logout reply.", ok)); } }
private async Task<D7UserSession> ValidateCredentials(IClientShim client, RequestShim req, CancellationToken cancelToken) { req.Body = new { username = _userName, password = _password }; req.UserName = _userName; req.Password = _password; D7UserSession ret = null; try { ret = await client.Send<D7UserSession>(req, cancelToken); } catch (Exception ex) { LogError("client.Send<D7UserSession>", ex); return null; } return ret; }
internal async Task<bool> CloseSession(IClientShim client, CancellationToken cancelToken) { Debug_n("Closing user session...", ""); var req = Req.POST(URL.Api_UserLogout); var resp = await client.Send<List<bool>>(req, cancelToken); var ok = resp.FirstOrDefault(); this.Current = null; if (ok) return Debug_n("Session successfully closed.", ""); else return Warn_n("Unexpected logout reply.", ok); }
private async Task<string> GetToken(IClientShim client, CancellationToken cancelToken) { var req = RequestShim.POST(URL.Api_UserToken); D7SessionToken tok; try { tok = await client.Send<D7SessionToken>(req, cancelToken); } catch (Exception ex) { LogError("client.Send", ex); return null; } return tok?.token; }
private async Task<D7UserSession> GetUserSession(IClientShim client, D7UserSession usr, CancellationToken cancelToken) { var req = RequestFactory.Make(URL.Api_SystemConnect, RestMethod.Post, usr, _userName, _password); req.UserName = _userName; req.Password = _password; var sess = await client.Send<D7UserSession>(req, cancelToken); sess.token = usr.token; sess.BaseURL = client.BaseUrl; return sess; }
public BatchSender(IClientShim clientShim, SessionAuth sessionAuth) { _client = clientShim; _auth = sessionAuth; }