public static IDoxSession CreateFromPassword(DoxApi api, string username, string password, IApiHelper apiHelper = null) { if (apiHelper == null) { apiHelper = new ApiHelper(); } string userId = null; string devicetoken = null; if (!api.RetryAction(() => apiHelper.Login(api.ServiceUrl, username, password, out userId, out devicetoken))) { return null; } api.ClearError(); var credentials = new DoxCredentials { //UserId = userId, UserName = username, DeviceToken = devicetoken }; return new DoxSession(api, credentials, apiHelper); }
private DoxSession(DoxApi api, IDoxCredentials credentials, IApiHelper apiHelper) { _api = api; _apiHelper = apiHelper; _credentials = credentials; }
protected override void InnerRun() { Succeeded = false; PendingUserActivation = true; ShouldRetry = true; DoxApi api = new DoxApi(_serviceUrl); IDoxSession session = null; if (!string.IsNullOrEmpty(DeviceToken)) { session = api.CreateSessionFromDeviceToken(_loginName, DeviceToken, ApiHelper); if (session == null && api.Error.IsConnectionError()) { PendingUserActivation = false; ErrorMessage = Properties.Resources.ConnectionErrorDuringUpload; return; } } if (session == null) { // show login dialog var nativeWindow = new NativeWindow(); nativeWindow.AssignHandle(IntPtr.Zero); _loginUi.NativeWindow = nativeWindow; _loginUi.RegisterTabVisible = false; _loginUi.LoginFieldEnabled = false; var authenticator = new Authenticator(_loginUi); authenticator.Api = api; authenticator.ApiHelper = ApiHelper; bool cancelSend; session = authenticator.Authenticate(_loginName, null, out cancelSend); if (cancelSend) { ShouldRetry = false; PendingUserActivation = false; Logger.LogInfo("User cancelled send"); ErrorMessage = "Unable to log in."; return; } } if (session == null) { return; // something weird is happening, try again later } DeviceToken = session.Credentials.DeviceToken; OptionApi.SetEncrypted("SendLinkDeviceToken", DeviceToken, _entropy); OptionApi.SetEncrypted("SendLinkAccountId", session.CurrentUser.AccountId, _entropy); OptionApi.SetEncrypted("SendLinkUserId", session.CurrentUser.Id, _entropy); if (session.CurrentUser.IsValidated) { PendingUserActivation = false; Succeeded = true; ErrorMessage = string.Empty; } }
public static IDoxSession CreateFromDeviceToken(DoxApi api, string username, string deviceToken, IApiHelper apiHelper = null) { if (apiHelper == null) { apiHelper = new ApiHelper(); } IDoxUser user = null; if (!api.RetryAction( () => user = apiHelper.SetDeviceToken(api.ServiceUrl, deviceToken))) { return null; } var credentials = new DoxCredentials { //UserId = user.Id, UserName = username, DeviceToken = deviceToken }; var session = new DoxSession(api, credentials, apiHelper); session.CurrentUser = user; return session; }
public DoxFolder(IApiHelper apiHelper, DoxApi api) { _apiHelper = apiHelper; _api = api; }