Example #1
0
        public IActionResult InvoiceComplete()
        {
            try
            {
                PurchaseForm purchaseForm = JsonConvert.DeserializeObject <PurchaseForm>(TempData["purchaseForm"].ToString());
                EmailSender  email        = new EmailSender(_smtpSettings);

                if (purchaseForm.PersonalInformation.PaymentMethod == "Paypal")
                {
                    PayPalV2.captureOrder(purchaseForm.PayPalCapture);
                }

                purchaseForm = PurchaseOrderRepository.Add(purchaseForm);
                if (purchaseForm.Discount != null && purchaseForm.Discount.SingleUse)
                {
                    DiscountModelRepository.SetNotInUse(purchaseForm.Discount);
                }

                var bot = new DiscordBot();
                bot.RunAsync(purchaseForm).GetAwaiter().GetResult();


                string emailbody = string.Empty;
                switch (purchaseForm.PurchaseType)
                {
                case PurchaseTypeEnum.PurchaseType.SoloBoosting:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderSoloEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.DuoBoosting:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderDuoEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.WinBoosting:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderWinBoostEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.PlacementMatches:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderPlacementMatchesEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.TFTPlacement:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderTFTPlacementMatchesEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.TFTBoosting:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderTFTSoloBoostEmail", purchaseForm).Result;
                    break;

                default:
                    emailbody = JsonConvert.SerializeObject(purchaseForm);
                    break;
                }
                email.SendEmailAsync(purchaseForm.PersonalInformation.Email, $"Purchase Order", emailbody);

                if (User.Identity.IsAuthenticated)
                {
                    return(RedirectToAction("OrderDetails", "ClientArea", new { hash = EncryptionHelper.Encrypt(purchaseForm.Id) }));
                }
                else
                {
                    TempData.Put("completePurchaseForm", purchaseForm);
                    return(RedirectToAction("InvoiceDetails", "Invoice"));
                }
            }
            catch (Exception e)
            {
            }

            return(View());
        }
        public IActionResult PurchaseQuote()
        {
            try
            {
                PurchaseForm purchaseForm = JsonConvert.DeserializeObject <PurchaseForm>(TempData["purchaseFormlData"].ToString());
                EmailSender  email        = new EmailSender(_smtpSettings);

                if (purchaseForm.PersonalInformation.PaymentMethod == "Paypal")
                {
                    PayPalV2.captureOrder(purchaseForm.PayPalCapture);
                }

                PurchaseOrderRepository.Add(purchaseForm);
                if (purchaseForm.Discount != null && purchaseForm.Discount.SingleUse)
                {
                    DiscountModelRepository.SetNotInUse(purchaseForm.Discount);
                }

                var bot = new DiscordBot();
                bot.RunAsync(purchaseForm).GetAwaiter().GetResult();


                string emailbody = string.Empty;
                switch (purchaseForm.PurchaseType)
                {
                case PurchaseTypeEnum.PurchaseType.SoloBoosting:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderSoloEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.DuoBoosting:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderDuoEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.WinBoosting:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderWinBoostEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.PlacementMatches:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderPlacementMatchesEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.TFTPlacement:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderTFTPlacementMatchesEmail", purchaseForm).Result;
                    break;

                case PurchaseTypeEnum.PurchaseType.TFTBoosting:
                    emailbody = RenderPartialViewToString("EmailTemplates/PurchaseOrderTFTSoloBoostEmail", purchaseForm).Result;
                    break;

                default:
                    emailbody = JsonConvert.SerializeObject(purchaseForm);
                    break;
                }
                email.SendEmailAsync(purchaseForm.PersonalInformation.Email, $"Purchase Order", emailbody);
            }
            catch (Exception e)
            {
            }

            return(View());
        }