public IHttpActionResult ExternaLogin(Guid state, ExternalClient externalClient, string lang = "en", string source = null, string formId = null, string build = null, string partner = null, Guid?visitorId = null, int?uid = null, string cmp = null, bool?optin = null, bool?trial = null) { var service = OauthServiceFactory.CreateService(OauthManager.GetExternalClientName(externalClient)); if (object.Equals(service, null)) { return(NotFound()); } var url = new Uri(service.GetAuthenticationUrl(lang)); var query = HttpUtility.ParseQueryString(url.Query); query.Add("state", state.ToString("N")); var uriBuilder = new UriBuilder(url); uriBuilder.Query = query.ToString(); var externalToken = new ExternalToken(state, OauthManager.GetExternalClientName(externalClient)) { VisitorId = visitorId, Uid = uid, Cmp = cmp, Optin = optin, Build = build, Partner = partner, Trial = trial }; if (!string.IsNullOrEmpty(source)) { externalToken.Source = string.Format("{0}-{1}", source, externalClient); } if (!string.IsNullOrEmpty(formId)) { externalToken.FormId = FormIdBuilder.Build(formId, string.Format("-{0}", externalClient)); } _externaLoginStorage.AddOrUpdate(state, externalToken, (key, oldValue) => externalToken); return(Redirect(uriBuilder.ToString())); }
private async Task <IHttpActionResult> _registerLegal(RegisterViewModel model, Account account, ViewAccountDetails accountDetails) { if (!object.Equals(account, null)) { await _auth.AccountVisitorIdSetAsync(account, model.VisitorId); if (account.IsActivated) { await NotificationManager.LegacyActivationSignInNotification(account); } else { await NotificationManager.LegacyCreatePasswordReminder(account); } return(AccountExists()); } account = new Account(model.Email, model.FirstName, model.LastName); account.IsBusiness = model.IsBusiness(); var result = await _auth.AccountCreateAsync(account, model.Password); var errorResult = GetErrorResult(result); if (!object.Equals(errorResult, null)) { return(errorResult); } accountDetails.GeoIp = IpAddressDetector.IpAddress; accountDetails.Id = account.Id; accountDetails.Source = model.Source; accountDetails.WebForm = FormIdBuilder.Build(model.FormId); await _auth.AccountOptinSetAsync(account, model.Optin); await _auth.AccountDetailsSetAsync(accountDetails); await _auth.AccountVisitorIdSetAsync(account, model.VisitorId); await NotificationManager.LegacyActivationCreatePassword(account); OauthLogger.CreateAccountWarn(Request, account, accountDetails, "registerLegal"); return(Ok()); }
private async Task <IHttpActionResult> _register(RegisterViewModel model, Account account, ViewAccountDetails accountDetails, string stackTrace) { if (!object.Equals(account, null)) { await _auth.AccountVisitorIdSetAsync(account, model.VisitorId); if (model.IsBusiness()) { await _auth.AccountMaskAsBusinessAsync(account); //make sure that user will get b2b 30 trial await _auth.AccountActivateAsync(account); } if (account.IsBusiness && string.Equals(model.Source, "sodapdf.com-get-trial", StringComparison.InvariantCultureIgnoreCase)) { await NotificationManager.BusinessDownload(account); } if (account.IsEmptyPassword()) { if (!string.IsNullOrEmpty(model.Password)) { await _auth.AccountPasswordSetAsync(account, model.Password); await NotificationManager.AccountCreationComplete(account); } accountDetails.GeoIp = IpAddressDetector.IpAddress; accountDetails.Id = account.Id; await _auth.AccountDetailsSetAsync(accountDetails); return(Ok()); } return(AccountExists()); } account = new Account(model.Email, model.FirstName, model.LastName); account.IsBusiness = model.IsBusiness(); var result = await _auth.AccountCreateAsync(account, model.Password); var errorResult = GetErrorResult(result); if (!object.Equals(errorResult, null)) { return(errorResult); } accountDetails.GeoIp = IpAddressDetector.IpAddress; accountDetails.Id = account.Id; accountDetails.Source = model.Source; accountDetails.WebForm = FormIdBuilder.Build(model.FormId); await _auth.AccountOptinSetAsync(account, model.Optin); await _auth.AccountDetailsSetAsync(accountDetails); await _auth.AccountVisitorIdSetAsync(account, model.VisitorId); OauthLogger.CreateAccountWarn(Request, account, accountDetails, stackTrace); if ("sodapdf.com-esign-lite".Equals(model.Source, StringComparison.InvariantCultureIgnoreCase)) { return(Ok()); // } if (account.IsBusiness && "sodapdf.com-get-trial".Equals(model.Source, StringComparison.InvariantCultureIgnoreCase)) { await NotificationManager.BusinessDownloadNewAccount(account); } else { if (!string.IsNullOrEmpty(model.Password)) { #if PdfForge if (!object.Equals(accountDetails, null) && "covermount".Equals(accountDetails.Build, StringComparison.InvariantCultureIgnoreCase)) { await NotificationManager.EmailConfirmationCovermount(account); return(Ok()); } #endif await NotificationManager.EmailConfirmation(account); } else { if ("sodapdf.com-opdfs".Equals(model.Source, StringComparison.InvariantCultureIgnoreCase) || "sodapdf.com-opdfs-send-to-email".Equals(model.Source, StringComparison.InvariantCultureIgnoreCase)) { await NotificationManager.MicrotransactionCreatePassword(account); } } } return(Ok()); }