public List <Subscription> GetSubscriptions(string userEmail, string order = null) { var userId = GetUser(userEmail).Id; var subsIds = UserSubscriptions .Where(x => x.UserId == userId) .Select(x => x.SubscriptionId); var subs = Subscriptions .Where(s => subsIds.Any(id => id == s.Id)); foreach (var s in subs) { while ((s.LastPayment + TimeSpan.FromDays(s.Period)).Date < DateTime.Today) { s.LastPayment += TimeSpan.FromDays(s.Period); } } SaveChanges(); if (order == "descendingDate") { return(subs.ToList().OrderByDescending(x => x.LastPayment + TimeSpan.FromDays(x.Period)).ToList()); } if (order == "ascendingName") { return(subs.ToList().OrderBy(x => x.Name).ToList()); } if (order == "descendingName") { return(subs.ToList().OrderByDescending(x => x.Name).ToList()); } return(subs.ToList().OrderBy(x => x.LastPayment + TimeSpan.FromDays(x.Period)).ToList()); }
public override void Initialize(IApplicationContext applicationContext) { base.Initialize(applicationContext); statusBarViewModel = this.ApplicationContext.GetService <StatusBarViewModel>(); var cachedintegrationAccountDetails = this.ApplicationContext.GetService <IntegrationAccountDetails>(); var cachedintegrationServiceDetails = this.ApplicationContext.GetService <IntegrationServiceDetails>(); AzureLoginButtonClickCommand = new RelayCommand(o => AzureLoginButtonClick("AzureLoginButton")); if (cachedintegrationAccountDetails != null) { UserSubscriptions = this.ApplicationContext.GetProperty("Subscriptions") as ObservableCollection <Subscription.RootObject>; UserResourceGroups = this.ApplicationContext.GetProperty("ResourceGroups") as ObservableCollection <ResourceGroup.RootObject>; UserIntegrationAccounts = this.ApplicationContext.GetProperty("IntegrationAccounts") as ObservableCollection <IntegrationAccount.RootObject>; UserKeyVaults = this.ApplicationContext.GetProperty("KeyVaults") as ObservableCollection <KeyVault.RootObject>; SelectedSubscription = UserSubscriptions.Where(x => x.SubscriptionId == cachedintegrationAccountDetails.SubscriptionId).First(); SelectedResourceGroup = UserResourceGroups.Where(x => x.Name == cachedintegrationAccountDetails.ResourceGroupName).First(); SelectedIntegrationAccount = UserIntegrationAccounts.Where(x => x.Name == cachedintegrationAccountDetails.IntegrationAccountName).First(); if (!string.IsNullOrEmpty(cachedintegrationAccountDetails.KeyVaultName)) { SelectedKeyVault = UserKeyVaults.Where(x => x.Name == cachedintegrationAccountDetails.KeyVaultName).First(); } IsLoginButttonEnabled = false; SubscriptionVisible = true; } else { UserSubscriptions = new ObservableCollection <Subscription.RootObject>(); UserResourceGroups = new ObservableCollection <ResourceGroup.RootObject>(); UserIntegrationAccounts = new ObservableCollection <IntegrationAccount.RootObject>(); UserKeyVaults = new ObservableCollection <KeyVault.RootObject>(); IsLoginButttonEnabled = true; SubscriptionVisible = false; ResourceGroupVisible = false; IntegrationAccountVisible = false; KeyVaultVisible = false; } if (cachedintegrationServiceDetails != null) { this.integrationServiceDetails = cachedintegrationServiceDetails; } else { this.integrationServiceDetails = new IntegrationServiceDetails(); this.ApplicationContext.AddService(this.integrationServiceDetails); } }