/// <summary> /// finds the shop owner so they can be sent a message. /// </summary> /// <param name="shopId"></param> /// <returns></returns> public static List<MemberDisplayBasic> GetConnectedShopRecipient(Guid shopId) { List<MemberDisplayBasic> members = new List<MemberDisplayBasic>(); try { Store.StoreGateway sg = new Store.StoreGateway(); var store = sg.GetStore(shopId); var league = League.LeagueFactory.GetLeague(store.InternalId); if (league != null) { foreach (var owner in league.LeagueMembers.Where(x => x.LeagueOwnersEnum.HasFlag(LeagueOwnersEnum.Shops))) { members.Add(owner); } if (members.Count == 0) { foreach (var owner in league.LeagueMembers.Where(x => x.LeagueOwnersEnum.HasFlag(LeagueOwnersEnum.Owner) || x.LeagueOwnersEnum.HasFlag(LeagueOwnersEnum.Shops) || x.LeagueOwnersEnum.HasFlag(LeagueOwnersEnum.Manager))) { owner.DerbyName = owner.DerbyName.Replace("'", "").Replace('"', ' '); members.Add(owner); } } } else { var member = MemberCache.GetMemberDisplay(store.InternalId); if (member != null) { member.DerbyName = member.DerbyName.Replace("'", "").Replace('"', ' '); members.Add(member); } } } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return members; }
private void HandleStripePayments(CreateInvoiceReturn output) { if (invoice.ChargeType == ChargeTypeEnum.Refund_Paywall) { invoice.InvoiceStatus = InvoiceStatus.Refund_Started; // Create the Stripe Request and get the data back. var response = PerformStripeRefund(); // If it was successful we will now have a redirect link if (response != null) { // Try to save the data to our database if (response.AmountInCentsRefunded.HasValue && response.AmountInCentsRefunded.Value > 0) { PaymentGateway pg = new PaymentGateway(); var voice = pg.GetDisplayInvoice(invoice.InvoiceId); if (voice.Refunds.Sum(x => x.RefundAmount) + invoice.FinancialData.RefundAmount == voice.TotalIncludingTax) pg.UpdateInvoiceForRefund(invoice.InvoiceId, InvoiceStatus.Refunded, invoice.FinancialData.RefundAmount, invoice.AdminNote); else pg.UpdateInvoiceForRefund(invoice.InvoiceId, InvoiceStatus.Partially_Refunded, invoice.FinancialData.RefundAmount, invoice.AdminNote); voice.RefundAmount = invoice.FinancialData.RefundAmount; Paywall.Paywall pw = new Paywall.Paywall(); pw.HandlePaywallRefund(voice); output.Status = InvoiceStatus.Refunded; } else { // Could not save to our database output.Error = "Failed to save to RDN database"; output.Status = InvoiceStatus.Failed; } } else output.Status = InvoiceStatus.Failed; } else if (invoice.ChargeType == ChargeTypeEnum.Subscription) { CompleteNewStripeSubscription(output); } else if (invoice.ChargeType == ChargeTypeEnum.Paywall) { CalculateRDNationFeesForPaywallPurchasesStripe(); // Create the Stripe Request and get the data back. var response = PerformStripePaywallPurchaseCheckout(); // If it was successful we will now have a redirect link if (response != null) { // Try to save the data to our database var result = AddInvoiceToDatabase(); if (result) { output.InvoiceId = invoice.InvoiceId; output.Status = InvoiceStatus.Payment_Successful; PaymentGateway pg = new PaymentGateway(); var voice = pg.GetDisplayInvoice(invoice.InvoiceId); Paywall.Paywall pw = new Paywall.Paywall(); pw.HandlePaywallPayments(voice); } else { // Could not save to our database output.Error = "Failed to save to RDN database"; output.Status = InvoiceStatus.Failed; } } else output.Status = InvoiceStatus.Failed; } else if (invoice.ChargeType == ChargeTypeEnum.Cancel_Subscription) { CancelStripeSubscription(output); } else if (invoice.ChargeType == ChargeTypeEnum.SubscriptionUpdated) { CompleteStripeSubscriptionUpdated(output); } else if (invoice.ChargeType == ChargeTypeEnum.InStorePurchase) { CalculateRDNationFeesForInStorePurchasesStripe(); // Create the Stripe Request and get the data back. var response = PerformStripeInStorePurchaseCheckout(); // If it was successful we will now have a redirect link if (response != null) { // Try to save the data to our database var result = AddInvoiceToDatabase(); if (result) { output.InvoiceId = invoice.InvoiceId; output.Status = InvoiceStatus.Payment_Successful; PaymentGateway pg = new PaymentGateway(); var voice = pg.GetDisplayInvoice(invoice.InvoiceId); Store.StoreGateway sg = new Store.StoreGateway(); sg.HandleStoreItemPayments(voice); } else { // Could not save to our database output.Error = "Failed to save to RDN database"; output.Status = InvoiceStatus.Failed; } } else { // Could not create a google link //output.Error = response.Error; output.Status = InvoiceStatus.Failed; } } else if (invoice.ChargeType == ChargeTypeEnum.Stripe_Checkout) { // Create the Stripe Request and get the data back. var response = ChargeStripeCheckoutPayment(); // If it was successful we will now have a redirect link if (response != null) { // Try to save the data to our database var result = AddInvoiceToDatabase(); if (result) { output.InvoiceId = invoice.InvoiceId; output.Status = InvoiceStatus.Payment_Successful; var emailData = new Dictionary<string, string> { { "Why: ", invoice.Note }, { "invoiceId",invoice.InvoiceId.ToString().Replace("-","") }, { "Paid",invoice.FinancialData.TotalIncludingTax.ToString("N2")} }; EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, EmailServer.EmailServer.DEFAULT_SUBJECT + " Receipt For League Subscription", emailData, EmailServer.EmailServerLayoutsEnum.Default); EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_KRIS_WORLIDGE_EMAIL_ADMIN, EmailServer.EmailServer.DEFAULT_SUBJECT + " New Payment Made", emailData, EmailServer.EmailServerLayoutsEnum.Default); } else { // Could not save to our database output.Error = "Failed to save to RDN database"; output.Status = InvoiceStatus.Failed; } } else { // Could not create a google link //output.Error = response.Error; output.Status = InvoiceStatus.Failed; } } }