protected void SaveSubscriptionClick(object sender, EventArgs e) { var subscriptions = new Subscriptions(); var isNew = true; if (Request.Params["id"] != "0") { isNew = false; subscriptions = _subscriptions; _subscriptionId = _subscriptions.Id; } else { subscriptions.IsActive = true; } int productType = int.Parse(SubscriptionTypeDdl.SelectedValue); subscriptions.SubscriptionType = productType; subscriptions.Name = SubscriptionNameText.Text.Trim(); subscriptions.MaxGuest = Int16.Parse(HidMaxGuest.Value); double price; double.TryParse(PriceText.Text, out price); subscriptions.Price = price; int maxPurchase; int.TryParse(MaxPurchaseText.Text, out maxPurchase); subscriptions.ProductHighlight = ProductHighlightText.Text; subscriptions.WhatYouGet = WhatYouGetEditor.Text; subscriptions.MaxPurchases = maxPurchase; // SEO Tab 2 subscriptions.MetaDescription = MetaDescription.Text; subscriptions.MetaKeyword = MetaKeyword.Text; // Photos on tab 3 if (isNew) { switch (int.Parse(SubscriptionTypeDdl.SelectedValue)) { case (int)Enums.SubscriptionType.Subscription: string planId = SubscriptionNameText.Text.Trim().Replace(" ", "-").ToLower(); try { // Create Plans On Stripe var planOptions = new StripePlanCreateOptions { Id = planId, Name = SubscriptionNameText.Text.Trim(), Amount = Convert.ToInt32(price * 100), Currency = "usd", Interval = "month" }; CreateStripePlan(planOptions); } catch (Exception ex) { ErrorMessageLabel.Visible = true; ErrorMessageLabel.Text = ex.Message + " - " + planId; return; } subscriptions.StripePlanId = planId; subscriptions.StripePlanCreated = DateTime.UtcNow; break; case (int)Enums.SubscriptionType.GiftCard: break; } _subscriptionId = _subscriptionRepository.Add(subscriptions); } else { var photos = new List <SubscriptionImages>(); foreach (ListViewDataItem item in SubscriptionImageListView.Items) { //to get the dropdown of each line HiddenField productPhotoId = (HiddenField)item.FindControl("PhotoId"); var photo = _subscriptionRepository.GetImageById(int.Parse(productPhotoId.Value)); var orderItem = (HiddenField)item.FindControl("Order"); photo.Order = 1; if (!string.IsNullOrEmpty(orderItem.Value)) { photo.Order = int.Parse(orderItem.Value); photo.IsCover = false; photo.IsActive = true; } photos.Add(photo); } if (photos.FirstOrDefault(p => p.Order == 0 || p.Order == 1) != null) { photos.First(p => p.Order == 0 || p.Order == 1).IsCover = true; } _subscriptionRepository.Update(subscriptions, photos); } string productImageDefault = Constant.ImageDefault; var productImage = _subscriptionRepository.SubscriptionImagesList.FirstOrDefault(x => x.SubscriptionId == subscriptions.Id && x.IsCover && x.IsActive); if (productImage != null) { productImageDefault = productImage.Url; } if (!string.IsNullOrEmpty(productImageDefault)) { var imageName = Helper.ReplaceLastOccurrence(productImageDefault, ".", "-ovl."); string imageUrl = Server.MapPath(imageName); if (!File.Exists(imageUrl)) { System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath(productImageDefault)); Bitmap newImage = Helper.ChangeOpacity(image, 0.7f); using (MemoryStream memory = new MemoryStream()) { using (FileStream fs = new FileStream(imageUrl, FileMode.Create, FileAccess.ReadWrite)) { newImage.Save(memory, ImageFormat.Jpeg); byte[] bytes = memory.ToArray(); fs.Write(bytes, 0, bytes.Length); } } } } _subscriptionRepository.ResetCache(); Response.Redirect(Constant.SubscriptionListPage); }