public object Any(SyncAccountsDaily request) { var users = DiscourseClient.AdminGetUsers(1000); foreach (var discourseUser in users) { //Don't process discourse administrators or already suspended users if (discourseUser.Admin || discourseUser.IsSuspended()) { continue; } UserServiceResponse existingCustomerSubscription; try { existingCustomerSubscription = ServiceStackAccountClient.GetUserSubscription(discourseUser.Email); } catch (Exception e) { Log.Error("Failed to check user {0} subscription. Retrying... - {2}".Fmt(discourseUser.Username, e.Message)); try { existingCustomerSubscription = ServiceStackAccountClient.GetUserSubscription(discourseUser.Email); } catch (Exception ex) { Log.Error("Failed to check user {0} subscription. Cancelling sync. - {1}".Fmt(discourseUser.Username, ex.Message)); break; } } //Skip users with valid SS subscriptions. if (existingCustomerSubscription.HasValidSubscription()) { continue; } try { Thread.Sleep(2000); //Existing user with active account but without a valid subscription if (!discourseUser.NeedsApproval() && discourseUser.IsNotSuspended()) { Log.Info("Suspending user '{0}'.".Fmt(discourseUser.Email)); SuspendUser(discourseUser); } } catch (Exception e) { Log.Error("Failed to suspend Discourse for user '{0}'. - {1}".Fmt(discourseUser.Email, e.Message)); } } return(null); }
public object Any(SyncAccountsHourly request) { var users = DiscourseClient.AdminGetUsers(1000); foreach (var discourseUser in users) { //Don't process discourse administrators or users already approved. if (discourseUser.Admin || (discourseUser.Suspended == null || discourseUser.Suspended == false)) { continue; } UserServiceResponse existingCustomerSubscription; try { existingCustomerSubscription = ServiceStackAccountClient.GetUserSubscription(discourseUser.Email); } catch (Exception e) { Log.Error("Failed to check user {0} subscription. Retrying... - {1}".Fmt(discourseUser.Username, e.Message)); try { existingCustomerSubscription = ServiceStackAccountClient.GetUserSubscription(discourseUser.Email); } catch (Exception ex) { Log.Error("Failed to check user {0} subscription. Cancelling sync. - {1}".Fmt(discourseUser.Username, ex.Message)); break; } } if (existingCustomerSubscription.HasValidSubscription()) { try { Thread.Sleep(2000); if (discourseUser.Suspended == true) { Log.Info("Unsuspending user '{0}'.".Fmt(discourseUser.Email)); UnsuspendUser(discourseUser); } } catch (Exception e) { Log.Error("Failed to suspend Discourse for user '{0}'. - {1}".Fmt(discourseUser.Email, e.Message)); } } } return(null); }
public void Any(SyncServiceStackCustomers request) { var users = DiscourseClient.AdminGetUsers(1000); foreach (var discourseUser in users) { //Don't process discourse administrators if (discourseUser.Admin) { continue; } var existingCustomerSubscription = GetDiscourseUserServiceStackSubscription(discourseUser); UpdateDiscourseAccountStatus(discourseUser, existingCustomerSubscription); } }