/// <summary> /// Initializes a new instance of the <see cref="CancelSubscriptionResponse"/> class. /// </summary> /// <param name="errors">errors.</param> /// <param name="subscription">subscription.</param> public CancelSubscriptionResponse( IList <Models.Error> errors = null, Models.Subscription subscription = null) { this.Errors = errors; this.Subscription = subscription; }
public ActionResult Create([Bind(Include = "CustomerName")] CustomerViewModel customer) { if (ModelState.IsValid) { // Instantiate class var csp = new Helpers.PartnerCenter(); // Creat new customer string customerId = csp.CreateCspCustomer(customer.CustomerName, CreateSubscription: true); var newCustomer = new Models.Customer(); newCustomer.OwnerId = User.Identity.GetUserId(); newCustomer.CustomerId = customerId; newCustomer.CustomerName = customer.CustomerName; db.Customers.Add(newCustomer); // Create new subscription string subscriptionId = csp.CreateCspSubscription(customerId); var newSubscription = new Models.Subscription(); newSubscription.CustomerId = customerId; newSubscription.SubscriptionId = subscriptionId.ToLower(); db.Subscriptions.Add(newSubscription); // Exit db.SaveChanges(); return(RedirectToAction("Index")); } return(Index()); }
public Models.Subscription CreatCorporateSubs(CorporApplicant a, int n, SubDuration s) { Models.Subscription subcorp = new Models.Subscription { App2 = a, NumberOfCopies = n, SubDuration = s }; subsList.Add(subcorp); return(subcorp); }
public Models.Subscription CreatIndividualSubs(IndApplicant a, int n, SubDuration s) { Models.Subscription subind = new Models.Subscription { App1 = a, NumberOfCopies = n, SubDuration = s }; subsList.Add(subind); return(subind); }
public void UpdateSubscription(SubscriptionDto pSubscriptionDto) { Models.Subscription subscriptionToModify = _paraContext.Subscriptions.Where(s => s.Year == pSubscriptionDto.Id).FirstOrDefault(); subscriptionToModify.SubscriptionAmount = pSubscriptionDto.Amount; _paraContext.Subscriptions.Update(subscriptionToModify); _paraContext.SaveChanges(); }
public void DeleteSubscription(int id) { Models.Subscription subscriptionToSoftDelete = _paraContext.Subscriptions.Where(s => s.Year == id).FirstOrDefault(); subscriptionToSoftDelete.IsActive = false; _paraContext.Subscriptions.Update(subscriptionToSoftDelete); _paraContext.SaveChanges(); }
public async Task <Uri> Create(Models.Subscription subscription) { HttpResponseMessage response = await client.PostAsJsonAsync( $"/Subscription/addsub", subscription); response.EnsureSuccessStatusCode(); // return URI of the created resource. return(response.Headers.Location); }
public IActionResult Subscribe(string cardEmail, string plan, string stripeToken) { var customerOptions = new CustomerCreateOptions { Email = cardEmail, Source = stripeToken, }; var customerService = new CustomerService(); var customer = customerService.Create(customerOptions); Models.Customer custToDb = new Models.Customer(); custToDb.CustomerID = customer.Id; custToDb.CustomerEmail = cardEmail; _database.Customers.Add(custToDb); _database.SaveChanges(); var planId = _configuration["Stripe:Daily5"]; if (plan == "Daily10") { planId = _configuration["Stripe:Daily10"]; } var subscriptionOptions = new SubscriptionCreateOptions { Customer = customer.Id, Items = new List <SubscriptionItemOptions> { new SubscriptionItemOptions { Plan = planId }, }, }; subscriptionOptions.AddExpand("latest_invoice.payment_intent"); var subscriptionService = new SubscriptionService(); var subscription = subscriptionService.Create(subscriptionOptions); Models.Subscription subs = new Models.Subscription(); subs.SubID = subscription.Id; subs.CustomerID = customer.Id; subs.PlanID = planId; _database.Subscriptions.Add(subs); _database.SaveChanges(); ViewBag.stripeKey = _configuration["Stripe:PublishableKey"]; ViewBag.subscription = subscription.ToJson(); return(View("SubscribeResult")); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); // Create immediately a customer ID and a subscription for the new user string customerName = user.Email; string userId = user.Id; // Instantiate class var csp = new Helpers.PartnerCenter(); // Create new customer string customerId = await csp.CreateCspCustomerAsync(customerName, CreateSubscription : false); var newCustomer = new Models.Customer(); newCustomer.OwnerId = userId; newCustomer.CustomerId = customerId; newCustomer.CustomerName = customerName; db.Customers.Add(newCustomer); // Create new subscription string subscriptionId = await csp.CreateCspSubscriptionAsync(customerId); var newSubscription = new Models.Subscription(); newSubscription.CustomerId = customerId; newSubscription.SubscriptionId = subscriptionId.ToLower(); db.Subscriptions.Add(newSubscription); // Exit db.SaveChanges(); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <IActionResult> GetIntent(string subscriptionName) { string userId = ""; try { // Il faut utiliser le Claim pour retrouver l'identifiant de l'utilisateur userId = User.Claims.Where(c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").SingleOrDefault().Value; } catch (Exception) { return(BadRequest("No user found")); } AspNetUser user = _LoveMirroringcontext.AspNetUsers.Where(u => u.Id == userId).SingleOrDefault(); Models.Subscription subscription = await _LoveMirroringcontext.Subscriptions. Where(s => s.SubscriptionName == subscriptionName). SingleOrDefaultAsync(); if (subscription != null) { StripeConfiguration.ApiKey = Configuration["Stripe:ApiKey"]; PaymentIntentCreateOptions options = new PaymentIntentCreateOptions { // 10 chf = 1000 dans Stripe Amount = (long?)(subscription.SubscriptionPrice * 100), Currency = "chf", ReceiptEmail = user.Email, // Verify your integration in this guide by including this parameter Metadata = new Dictionary <string, string> { { "integration_check", "accept_a_payment" }, }, }; options.Metadata.Add("SubscriptionName", subscription.SubscriptionName); options.Metadata.Add("UserName", user.Firstname + " " + user.LastName); options.Metadata.Add("UserId", userId); PaymentIntentService service = new PaymentIntentService(); PaymentIntent paymentIntent = service.Create(options); return(Ok(paymentIntent)); } else { return(BadRequest("No subscription price available")); } }
public ActionResult ActivateSub(Models.Subscription subscription) { var postTask = httpClient.PostAsJsonAsync <Models.Subscription>(baseAddress + "ActivateSubscription/21", subscription); postTask.Wait(); var result = postTask.Result; if (result.IsSuccessStatusCode) { return(RedirectToAction("GestionSubscription")); } return(View()); }
private void MakeNewSubscription(object obj) { string name = Name; string add = Address; string email = Email; string phone = Phone; string title = Title; string mstop = MailStop; string cd = CompanyDepartment; int nocopy = NumberOfCopies; SubDuration subdur = SubDuration; CorporApplicant app = appcatalog.CreateCorpApplicant(name, add, email, phone, title, mstop, cd); Models.Subscription sub = subcatalog.CreatCorporateSubs(app, nocopy, subdur); List.Add(sub); }
private void MakeNewSubscription(object obj) { string name = Name; string add = Address; string email = Email; string phone = Phone; string cardholder = CardHolder; string cardno = CardNo; DateTime expdate = ExpDate; int cvv = Cvv; int nocopy = NumberOfCopies; SubDuration subdur = SubDuration; IndApplicant appind = appcatalog.CreateIndApplicant(name, add, email, phone, cardholder, cardno, expdate, cvv); Models.Subscription sub = subcatalog.CreatIndividualSubs(appind, nocopy, subdur); List.Add(sub); }
public async Task <ActionResult> CreateVMsConfirmed(Models.Subscription sub) { if (sub == null) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "No subscription passed on to the function to create vault")); } string subscriptionId = sub.SubscriptionId; Subscription subscription = db.Subscriptions.Find(subscriptionId); if (subscription == null) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "A valid Azure subscription could not be found")); } // Test auth is working string token = await Helpers.REST.getArmTokenAsync(subscription.CustomerId, UserAuth : true); if (token == null) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "ARM token could not be retrieved for customer " + subscription.CustomerId)); } // Create ARM Resource Group and Recovery Services Vault string RgName = ModelTools.GetOfferingRGName("20ApacheVms") + ARM.RandomString(5); await ARM.createResourceGroupAsync(subscription.CustomerId, subscription.SubscriptionId, RgName, "westeurope"); string VMId = await ARM.createVMsAsync(subscription.CustomerId, subscription.SubscriptionId, RgName, "testVM", "westeurope"); int newServiceId = ModelTools.NextServiceId(); Models.Service newService = new Models.Service() { //Id = newServiceId, SubscriptionId = subscription.SubscriptionId, OfferingId = "20ApacheVms", Description = "20 Apache VMs", ResourceId = RgName }; db.Services.Add(newService); db.SaveChanges(); return(RedirectToAction("../Services/Index")); }
public HttpResponseMessage Get(int id) { using (var client = new SubscriptionServiceClient()) { var subscription = client.GetById(id); if (subscription == null) { return(Request.CreateResponse(HttpStatusCode.NotFound, "Subscription id is not found")); } var result = new Models.Subscription { Id = subscription.Identifier, Name = subscription.Name, Price = subscription.Price, Priceincvatamount = subscription.PriceIncVatAmount, Callminutes = subscription.CallMinutes }; return(Request.CreateResponse(result)); } }
public RetrieveSubscriptionResponse(IList <Models.Error> errors = null, Models.Subscription subscription = null) { Errors = errors; Subscription = subscription; }
public Builder Subscription(Models.Subscription subscription) { this.subscription = subscription; return(this); }
public async Task <IActionResult> Index() { //using (Stream iStream = Request.InputStream) //{ // using (StreamReader reader = new StreamReader(iStream, Encoding.UTF8)) //you should use Request.ContentEncoding // { // json = await reader.ReadToEndAsync(); // } //} var json = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync(); try { var stripeEvent = EventUtility.ParseEvent(json); if (stripeEvent.Type == Events.CustomerCreated) { Customer cus = stripeEvent.Data.Object as Customer; Models.Customer customer = new Models.Customer(); customer.CustomerID = cus.Id; customer.Name = cus.Name; customer.Email = cus.Email; customer.Balance = (int)cus.Balance; customer.CreatedAt = DateTime.Now; customer.UpdatedAt = DateTime.Now; try { Database.Add(customer); Database.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } } else if (stripeEvent.Type == Events.CustomerSubscriptionCreated) { Subscription sub = stripeEvent.Data.Object as Subscription; Price price = sub.Items.Data[0].Price; int amount = (int)price.UnitAmount; string subscriptionId = sub.Items.Data[0].Subscription; //Models.Customer customer = Database.Customers.SingleOrDefault(x => x.CustomerID == "cus_IhyVFRJRWlxfwh"); //customer.Balance = customer.Balance - amount; //customer.UpdatedAt = DateTime.Now; Models.Subscription subscription = new Models.Subscription(); subscription.SubscriptionID = subscriptionId; subscription.CustomerID = "cus_IhyVFRJRWlxfwh"; subscription.UnitAmount = amount; subscription.CreatedAt = DateTime.Now; subscription.UpdatedAt = DateTime.Now; //Models.Transaction transaction = new Models.Transaction(); //transaction.CustomerID = "cus_IhyVFRJRWlxfwh"; //transaction.Description = Events.CustomerSubscriptionCreated; //transaction.Amount = amount; //transaction.CreatedAt = DateTime.Now; try { //Database.Customers.Update(customer); Database.Add(subscription); //Database.Add(transaction); Database.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } } else if (stripeEvent.Type == Events.CustomerSubscriptionUpdated) { Subscription sub = stripeEvent.Data.Object as Subscription; Price price = sub.Items.Data[0].Price; int amount = (int)price.UnitAmount; string subscriptionId = sub.Items.Data[0].Subscription; Models.Subscription subscription = Database.Subscriptions.SingleOrDefault(x => x.SubscriptionID == subscriptionId); subscription.UnitAmount = amount; subscription.UpdatedAt = DateTime.Now; try { Database.Subscriptions.Update(subscription); Database.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } } else if (stripeEvent.Type == Events.CustomerSubscriptionDeleted) { Subscription sub = stripeEvent.Data.Object as Subscription; string subscriptionId = sub.Items.Data[0].Subscription; Models.Subscription subscription = Database.Subscriptions.SingleOrDefault(x => x.SubscriptionID == subscriptionId); try { Database.Remove(subscription); Database.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } } else if (stripeEvent.Type == Events.PaymentMethodAttached) { Models.PaymentMethod paymentMethod = new Models.PaymentMethod(); PaymentMethod method = stripeEvent.Data.Object as PaymentMethod; paymentMethod.PaymentMethodID = method.Id; paymentMethod.Brand = method.Card.Brand; paymentMethod.Last4 = Int32.Parse(method.Card.Last4); paymentMethod.CreatedAt = DateTime.Now; paymentMethod.UpdatedAt = DateTime.Now; paymentMethod.CustomerID = "cus_IhyVFRJRWlxfwh"; try { Database.Add(paymentMethod); Database.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } } else if (stripeEvent.Type == Events.PaymentMethodDetached) { PaymentMethod method = stripeEvent.Data.Object as PaymentMethod; string paymentMethodID = method.Id; Models.PaymentMethod paymentMethod = Database.PaymentMethods.SingleOrDefault(x => x.PaymentMethodID == paymentMethodID); try { Database.Remove(paymentMethod); Database.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } } else if (stripeEvent.Type == Events.PaymentMethodUpdated) { PaymentMethod method = stripeEvent.Data.Object as PaymentMethod; string paymentMethodID = method.Id; Models.PaymentMethod paymentMethod = Database.PaymentMethods.SingleOrDefault(x => x.PaymentMethodID == paymentMethodID); paymentMethod.Last4 = Int32.Parse(method.Card.Last4); paymentMethod.Brand = method.Card.Brand; paymentMethod.UpdatedAt = DateTime.Now; try { Database.PaymentMethods.Update(paymentMethod); Database.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } } else if (stripeEvent.Type == Events.ChargeSucceeded) { Charge charge = stripeEvent.Data.Object as Charge; int amount = (int)charge.Amount; Models.Customer customer = Database.Customers.SingleOrDefault(x => x.CustomerID == "cus_IhyVFRJRWlxfwh"); customer.Balance = customer.Balance - amount; customer.UpdatedAt = DateTime.Now; Models.Transaction transaction = new Models.Transaction(); transaction.CustomerID = "cus_IhyVFRJRWlxfwh"; transaction.Description = Events.ChargeSucceeded; transaction.Amount = amount; transaction.CreatedAt = DateTime.Now; try { Database.Customers.Update(customer); Database.Add(transaction); Database.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } } else if (stripeEvent.Type == Events.ChargeFailed) { Charge charge = stripeEvent.Data.Object as Charge; int amount = 0; Models.Transaction transaction = new Models.Transaction(); transaction.CustomerID = "cus_IhyVFRJRWlxfwh"; transaction.Description = Events.ChargeFailed; transaction.Amount = amount; transaction.CreatedAt = DateTime.Now; try { Database.Add(transaction); Database.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } } else { Console.WriteLine("Unhandled event type: {0}", stripeEvent.Type); } return(Ok()); } catch (Exception e) { return(BadRequest()); } }
public UpdateSubscriptionRequest(Models.Subscription subscription = null) { Subscription = subscription; }
public ActionResult ActivateSubs(Models.Subscription subscription) { ViewBag.StripePublishKey = ConfigurationManager.AppSettings["stripePublishableKey"]; return(View()); }
public Builder Subscription(Models.Subscription value) { subscription = value; return(this); }