public async Task <IActionResult> Get() { // only system admins can access this functionality //if (!await _securityHelper.IsSysAdmin()) // return new HttpStatusCodeResult(403); // Forbidden List <SubscriptionView> rtnView = new List <SubscriptionView>(); // get group managers List <DocumentDbRepositories.ScampSubscription> subList = await _settingsRepository.GetSubscriptions(); // build the return set foreach (DocumentDbRepositories.ScampSubscription sub in subList) { // build summary view object SubscriptionView newSubscription = new SubscriptionView() { Id = sub.Id, Name = sub.Name, AzureSubscriptionId = sub.AzureSubscriptionID, AzureAdminUser = sub.AzureAdminUser }; rtnView.Add(newSubscription); // add it to the collection } // return list return(new ObjectResult(rtnView) { StatusCode = 200 }); }
//Create subscriptions public SubscriptionView CreateSub(double requestedPublishingInterval, uint requestedLifeTimeCount, uint requestedKeepAliveCount, uint MaxNotificationPerPublish, bool _PublishingEnabled, byte Priority) { SubscriptionView sub; Subscription subscription = new Subscription() { KeepAliveCount = requestedKeepAliveCount, LifetimeCount = requestedLifeTimeCount, MaxNotificationsPerPublish = MaxNotificationPerPublish, Priority = Priority, PublishingInterval = Convert.ToInt32(requestedPublishingInterval), PublishingEnabled = _PublishingEnabled }; subscription.StateChanged += OnStateChangedHandler; //Aggiunge la subscription al campo subscriptions della sessione session.AddSubscription(subscription); /* * La create comunica con il server e crea effettivamente la subscription, salvando nei campi current * i valori revised (PublishingInterval, KeepAliveCount, LifetimeCount) */ subscription.Create(); sub = new SubscriptionView(subscription.Id, subscription.CurrentPublishingInterval, subscription.CurrentLifetimeCount, subscription.CurrentKeepAliveCount, subscription.MaxNotificationsPerPublish, subscription.PublishingEnabled, subscription.CurrentPriority); return(sub); }
public ActionResult Subscription() { SubscriptionView SuV = new SubscriptionView { Subscriptions = SF.GetAll(), json = JObject.Parse(FT.LoadFile(Request.PhysicalApplicationPath + "/ServerData/Pages.json")) }; return(View(SuV)); }
private void DisplaySubscription() { SubscriptionView subView = client.GetSubscriptionViewById(subscriptionId); subscriptionIdentifier.Text = subView.SubscriptionID.ToString(); publishInterval.Text = subView.PublishingInterval.ToString(); lifetimeCount.Text = subView.LifeTimeCount.ToString(); keepAliveCount.Text = subView.KeepAliveCount.ToString(); maxNotifications.Text = subView.MaxNotificationPerPublish.ToString(); priority.Text = subView.Priority.ToString(); publishingEnabled.Text = subView.PublishEnabled.ToString(); }
/// <summary> /// Обновить список подписок /// </summary> private void UpdateSubscriptions() { SubscriptionsUnit subs = _configuration.SubscriptionsUnit; List <SubscriptionView> rows = new List <SubscriptionView>(); SubscriptionView row = new SubscriptionView(); row.ParameterName = "Потоков"; row.ParameterValue = subs.Threads.ToString(); rows.Add(row); for (int i = 0; i < subs.SubObjects.Count; i++) { ConfigurationUnit item = subs.SubObjects[i]; row = new SubscriptionView { ParameterName = "TCP-сервер", ParameterValue = item.Name }; rows.Add(row); foreach (var(key, value) in item.Parameters) { row = new SubscriptionView { ParameterName = key, ParameterValue = value }; rows.Add(row); } foreach (var(key, value) in item.SubObjects.SelectMany(subItem => subItem.Parameters)) { row = new SubscriptionView { ParameterName = key, ParameterValue = value }; rows.Add(row); } } dataSubsriptions.DataSource = rows; dataSubsriptions.Columns[0].HeaderText = "Параметр"; dataSubsriptions.Columns[0].Width = 150; dataSubsriptions.Columns[1].HeaderText = "Значение"; dataSubsriptions.Columns[1].Width = 150; }
public static void MapPseudoSkus(this SubscriptionView view, Subscription subscription) { if (subscription.SubscriptionItems == null) { return; } foreach (var subscriptionItem in subscription.SubscriptionItems) { if (subscriptionItem.PseudoSku == null) { continue; } view.Items = new List <SubscriptionItemView>(); view.Items.Add(new SubscriptionItemView { PseudoSkuId = subscriptionItem.PseudoSku.Id, PseudoSkuName = subscriptionItem.PseudoSku.Name, PseudoSkuSizeName = subscriptionItem.PseudoSku.Size.Name }); } }
public WebServicesModule(FreepayMockContext db) { Get["/webservices/public/subscriptionmanager.asmx/AuthorizeSubscription3"] = parameters => { int subscriptionId = parameters.subscriptionId; string password = parameters.password; int amount = parameters.amount; string orderId = parameters.orderId; int currencyAsInt = parameters.currencyAsInt; var merchant = db.Merchants.FirstOrDefault(x => x.Password == password); if (merchant == null) { return(HttpStatusCode.InternalServerError); } var subscription = db.Subscriptions.FirstOrDefault(x => x.SubscriptionId == subscriptionId); if (subscription == null) { return(HttpStatusCode.InternalServerError); } var transaction = new TransactionRecord(); transaction.SubscriptionId = subscriptionId; transaction.Amount = amount; transaction.OrderId = orderId; transaction.CurrencyAsInt = currencyAsInt; transaction.DateCreated = DateTime.Now; return("OK"); }; Get["/webservices/public/subscriptionmanager.asmx/QuerySubscription"] = parameters => { int subscriptionId = parameters.subscriptionId; string password = parameters.password; var merchant = db.Merchants.FirstOrDefault(x => x.Password == password); if (merchant == null) { return(HttpStatusCode.InternalServerError); } var subscription = db.Subscriptions.FirstOrDefault(x => x.SubscriptionId == subscriptionId); if (subscription == null) { return(HttpStatusCode.InternalServerError); } var model = new SubscriptionView(); model.Acquirer = "NetsTeller"; model.CardType = subscription.CardType; model.Currency = subscription.Currency; model.DateCreated = subscription.DateCreated; model.ExpiryDate = subscription.ExpiryDate; model.MerchantID = merchant.MerchantId; model.MerchantNumber = merchant.MerchantId; model.OrderID = model.OrderID; model.PANHash = ""; model.SourceIP = subscription.SourceIP; model.SubscriptionID = subscriptionId; return(Response.AsXml(model)); }; //public static string GetApproveTransactionUrl(int transactionId, string password) Get["/webservices/public/management.asmx/ApproveTransaction"] = parameters => { int transactionId = parameters.transactionId; string password = parameters.password; var merchant = db.Merchants.FirstOrDefault(x => x.Password == password); if (merchant == null) { return(HttpStatusCode.InternalServerError); } var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId); if (transaction == null) { return(HttpStatusCode.NotFound); } transaction.IsAwaitingApproval = true; db.Transactions.Attach(transaction); db.SaveChanges(); return(HttpStatusCode.OK); }; //public static string GetCaptureUrl(int transactionId, string password) Get["/webservices/public/management.asmx/CaptureV2"] = parameters => { int transactionId = parameters.transactionId; string password = parameters.password; var merchant = db.Merchants.FirstOrDefault(x => x.Password == password); if (merchant == null) { return(HttpStatusCode.InternalServerError); } var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId); if (transaction == null) { return(HttpStatusCode.NotFound); } transaction.Captured = true; transaction.CapturedAt = DateTime.Now; db.Transactions.Attach(transaction); db.SaveChanges(); var model = new TransactionResult(); model.AcquirerStatusCode = 123; model.IsSuccess = true; return(Response.AsXml(model)); }; //public static string GetChangeCaptureAmountUrl(int transactionId, string password, int amount) Get["/webservices/public/management.asmx/ChangeCaptureAmount"] = parameters => { int transactionId = parameters.transactionId; string password = parameters.password; int amount = parameters.amount; var merchant = db.Merchants.FirstOrDefault(x => x.Password == password); if (merchant == null) { return(HttpStatusCode.InternalServerError); } var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId); if (transaction == null) { return(HttpStatusCode.NotFound); } transaction.Amount = amount; db.Transactions.Attach(transaction); db.SaveChanges(); return(HttpStatusCode.OK); }; //public static string GetCreditUrl(int transactionId, string password, int amount) Get["/webservices/public/management.asmx/CreditV2"] = parameters => { int transactionId = parameters.transactionId; string password = parameters.password; int amount = parameters.amount; var merchant = db.Merchants.FirstOrDefault(x => x.Password == password); if (merchant == null) { return(HttpStatusCode.InternalServerError); } var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId); if (transaction == null) { return(HttpStatusCode.NotFound); } transaction.Amount = amount; db.Transactions.Attach(transaction); db.SaveChanges(); TransactionResult result = new TransactionResult(); result.AcquirerStatusCode = 100; result.IsSuccess = true; return(Response.AsXml(result)); }; //public static string GetDeleteTransactionUrl(int transactionId, string password) Get["/webservices/public/management.asmx/DeleteTransaction"] = parameters => { int transactionId = parameters.transactionId; string password = parameters.password; var merchant = db.Merchants.FirstOrDefault(x => x.Password == password); if (merchant == null) { return(HttpStatusCode.InternalServerError); } var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId); if (transaction == null) { return(HttpStatusCode.NotFound); } transaction.IsDeleted = true; db.Transactions.Attach(transaction); db.SaveChanges(); return(HttpStatusCode.OK); }; //public static string GetQueryTransactionUrl(int transactionId, string password) Get["/webservices/public/management.asmx/QueryTransaction"] = parameters => { int transactionId = parameters.transactionId; string password = parameters.password; var merchant = db.Merchants.FirstOrDefault(x => x.Password == password); if (merchant == null) { return(HttpStatusCode.InternalServerError); } var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId); if (transaction == null) { return(HttpStatusCode.NotFound); } TransactionView model = new TransactionView(); model.Acquirer = "NetsTeller"; model.MerchantNumber = merchant.MerchantId; model.TransactionID = transaction.TransactionId; model.AuthorizationAmount = transaction.AuthorizationAmount; model.CaptureAmount = transaction.CaptureAmount; model.CaptureErrorCode = transaction.CaptureErrorCode; model.CardType = transaction.CardType; model.Currency = transaction.CurrencyAsInt; model.DateAuthorized = transaction.DateAuthorized.GetValueOrDefault(); model.DateCaptured = transaction.DateCaptured.GetValueOrDefault(); model.DateCreated = transaction.DateCreated; model.DateEarliestCapture = transaction.DateEarliestCapture; model.IsAwaitingApproval = transaction.IsAwaitingApproval; model.IsCaptured = transaction.IsCaptured; model.MerchantID = transaction.MerchantId; model.OrderID = transaction.OrderId; model.PANHash = transaction.PANHash; model.SourceIP = transaction.SourceIp; return("OK"); }; //public static string GetSetEarlistCaptureUrl(int transactionId, string password, DateTime earliestCapture) Get["/webservices/public/management.asmx/SetEarliestCapture"] = parameters => { int transactionId = parameters.transactionId; DateTime earliestCapture = parameters.earliestCapture; string password = parameters.password; var merchant = db.Merchants.FirstOrDefault(x => x.Password == password); if (merchant == null) { return(HttpStatusCode.InternalServerError); } var transaction = db.Transactions.FirstOrDefault(x => x.TransactionId == transactionId); if (transaction == null) { return(HttpStatusCode.NotFound); } transaction.DateEarliestCapture = earliestCapture; return(HttpStatusCode.OK); }; //public static string GetWithholdForApprovalUrl(int transactionId, string password) Get["/webservices/public/management.asmx/WithholdForApproval"] = parameters => { int transactionId = parameters.transactionId; string password = parameters.password; return("Ok"); }; }
void ReleaseDesignerOutlets() { if (EmailLabel != null) { EmailLabel.Dispose(); EmailLabel = null; } if (WorkspaceLabel != null) { WorkspaceLabel.Dispose(); WorkspaceLabel = null; } if (PlanLabel != null) { PlanLabel.Dispose(); PlanLabel = null; } if (TwentyFourHourClockSwitch != null) { TwentyFourHourClockSwitch.Dispose(); TwentyFourHourClockSwitch = null; } if (AddMobileTagSwitch != null) { AddMobileTagSwitch.Dispose(); AddMobileTagSwitch = null; } if (FeedbackView != null) { FeedbackView.Dispose(); FeedbackView = null; } if (RateView != null) { RateView.Dispose(); RateView = null; } if (UpdateView != null) { UpdateView.Dispose(); UpdateView = null; } if (HelpView != null) { HelpView.Dispose(); HelpView = null; } if (VersionLabel != null) { VersionLabel.Dispose(); VersionLabel = null; } if (AddMobileTagView != null) { AddMobileTagView.Dispose(); AddMobileTagView = null; } if (TwentyFourHourClockView != null) { TwentyFourHourClockView.Dispose(); TwentyFourHourClockView = null; } if (SubscriptionView != null) { SubscriptionView.Dispose(); SubscriptionView = null; } if (WorkspaceView != null) { WorkspaceView.Dispose(); WorkspaceView = null; } if (EmailView != null) { EmailView.Dispose(); EmailView = null; } if (LoggingOutIndicator != null) { LoggingOutIndicator.Dispose(); LoggingOutIndicator = null; } if (LoggingOutLabel != null) { LoggingOutLabel.Dispose(); LoggingOutLabel = null; } if (LoggingOutView != null) { LoggingOutView.Dispose(); LoggingOutView = null; } if (LogoutButton != null) { LogoutButton.Dispose(); LogoutButton = null; } if (SyncedIcon != null) { SyncedIcon.Dispose(); SyncedIcon = null; } if (SyncedLabel != null) { SyncedLabel.Dispose(); SyncedLabel = null; } if (SyncedView != null) { SyncedView.Dispose(); SyncedView = null; } if (SyncingIndicator != null) { SyncingIndicator.Dispose(); SyncingIndicator = null; } if (SyncingLabel != null) { SyncingLabel.Dispose(); SyncingLabel = null; } if (SyncingView != null) { SyncingView.Dispose(); SyncingView = null; } }
private async void OnCreateSubscription(object sender, EventArgs e) { Device.BeginInvokeOnMainThread(() => { UserDialogs.Instance.ShowLoading(); }); Double reqPubInterval; uint reqLifeTimeCount; uint reqMaxKeepAliveCount; uint maxNotPerPublish; byte priority; try { if (string.IsNullOrWhiteSpace(RequestedPublishingInterval.Text)) { throw new EmptyEntryException("Empty Requested Publish Interval Entry!"); } try { reqPubInterval = Convert.ToDouble(RequestedPublishingInterval.Text); } catch (FormatException p) { throw new FormatException("Request Publish Format not valid!", p); } if (string.IsNullOrWhiteSpace(RequestedLifetimeCount.Text)) { throw new EmptyEntryException("Empty Request Lifetime Count Empty!"); } try { reqLifeTimeCount = Convert.ToUInt32(RequestedLifetimeCount.Text); } catch (FormatException p) { throw new FormatException("Request Lifetime Count Format not valid!", p); } if (string.IsNullOrWhiteSpace(RequestedMaxKeepAliveCount.Text)) { throw new EmptyEntryException("Empty Request Max Keep Alive Count Entry!"); } try { reqMaxKeepAliveCount = Convert.ToUInt32(RequestedMaxKeepAliveCount.Text); } catch (FormatException p) { throw new FormatException("Request Max Keep Alive Count Format non valid!", p); } if (string.IsNullOrWhiteSpace(MaxNotificationPerPublish.Text)) { throw new EmptyEntryException("Empty Max Notification Per Publish Entry !"); } try { maxNotPerPublish = Convert.ToUInt32(MaxNotificationPerPublish.Text); } catch (FormatException p) { throw new FormatException("Max Notification Per Publish Format not valid!", p); } if (string.IsNullOrWhiteSpace(Priority.Text)) { throw new EmptyEntryException("Empty Priority Entry!"); } try { priority = Convert.ToByte(Priority.Text); } catch (FormatException p) { throw new FormatException("Priority Format not valid!", p); } SubscriptionView subView = await Task.Run(() => client.CreateSub(reqPubInterval, reqLifeTimeCount, reqMaxKeepAliveCount, maxNotPerPublish, true, priority)); Device.BeginInvokeOnMainThread(() => { UserDialogs.Instance.HideLoading(); }); if (subView.PublishingInterval != reqPubInterval || subView.KeepAliveCount != reqMaxKeepAliveCount || subView.LifeTimeCount != reqLifeTimeCount) { await DisplayAlert("Info", "Subscription created successfully with revised parameters.", "ok"); } else { await DisplayAlert("Info", "Subscription created successfully with requested parameters.", "ok"); } ContentPage detailSubPage = new DetailSubscriptionPage(client, subView.SubscriptionID); detailSubPage.Title = "Subscription Details"; await Navigation.PushAsync(detailSubPage); Navigation.RemovePage(this); } catch (EmptyEntryException p) { await DisplayAlert("Error", p.Message, "Ok"); } catch (FormatException p) { await DisplayAlert("Error", p.Message, "Ok"); } }
public async Task <IActionResult> Upsert([FromBody] SubscriptionView subscription) { ScampSubscription tmpSub = new ScampSubscription(); string tmpPassword = string.Empty; // only system admins can access this functionality if (!await _securityHelper.IsSysAdmin()) { return(new HttpStatusCodeResult(403)); // Forbidden } //validate request // if doing update, subscription must already exist if (!string.IsNullOrEmpty(subscription.Id)) { tmpSub = await _settingsRepository.GetSubscription(subscription.Id); if (tmpSub == null) { return new ObjectResult("specified subscription does not exist") { StatusCode = 400 } } ; } // TODO: additional validation // https://github.com/SimpleCloudManagerProject/SCAMP/issues/192 // error returned should indicate all fields with issues // map request to database object tmpSub.Name = subscription.Name; tmpSub.AzureSubscriptionID = subscription.AzureSubscriptionId; tmpSub.AzureAdminUser = subscription.AzureAdminUser; bool doingAdd = string.IsNullOrEmpty(subscription.Id); // if doing add, use password provided if (doingAdd) { tmpPassword = subscription.AzureAdminPassword; } else // else, doing update, only change password if it was provided { if (!string.IsNullOrEmpty(subscription.AzureAdminPassword)) // if a password was specified { tmpPassword = subscription.AzureAdminPassword; // update it } } // save insert/update subscription await _settingsRepository.UpsertSubscription(tmpSub); // If we have a new/updated password, save it to keyvault try { if (!string.IsNullOrEmpty(tmpPassword)) { await _keyRepository.UpsertSecret(tmpSub.Id, "password", tmpPassword); } } catch (Exception ex) { if (doingAdd) { await _settingsRepository.DeleteSubscription(tmpSub); // key vault failed, remove added subscription } else { throw new Exception("Failed to update password", ex); } } // return list return(new ObjectResult(null) { StatusCode = 200 }); }