Ejemplo n.º 1
0
        public ActionResult SendToVendor(OrderVia via, Guid?vendorId, Guid?id, string[] segmentsSelected)
        {
            try
            {
                Campaign campaign = Db.Campaigns.Include(x => x.Approved).FirstOrDefault(x => x.Id == id);
                if (campaign == null)
                {
                    throw new AdsException("Campagin with Id: " + id + " Not Found.");
                }
                if (campaign.Approved == null)
                {
                    throw new AdsException("Campagin: " + campaign.CampaignName + " is not yet approved.");
                }

                switch (via)
                {
                case OrderVia.Email:
                    BackgroundJob.Enqueue(() => CampaignProcessor.SendToVendor(via, vendorId, campaign.OrderNumber, segmentsSelected, string.Empty));
                    break;

                case OrderVia.Api:
                    string whiteLabel       = LoggedInUser?.CustomerId == null ? "ADS" : LoggedInUser?.Customer.WhiteLabel;
                    string whiteLabelDomain = Db.Customers.FirstOrDefault(x => x.WhiteLabel == whiteLabel)?.WebDomain;
                    if (string.IsNullOrEmpty(whiteLabelDomain))
                    {
                        throw new AdsException("White Label Web Domain can not be empty.");
                    }
                    CampaignProcessor.SendToVendor(via, vendorId, campaign.OrderNumber, segmentsSelected, whiteLabelDomain);
                    break;
                }

                return(Json(new JsonResponse()
                {
                    IsSucess = true
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new JsonResponse()
                {
                    IsSucess = false, ErrorMessage = ex.Message
                }, JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 2
0
        private ActionResult Rebroad(OrderVia via, Guid?id, DateTime?reBroadcastedDate, long reBroadcastedQuantity, Guid?vendor)
        {
            if (reBroadcastedDate == null || vendor == null)
            {
                TempData["Error"] = $"ReBroadcastedDate and Vendor is required.";
                return(RedirectToAction("Rebroad", "Campaigns", new { id = id }));
            }
            Campaign campaign = Db.Campaigns.FirstOrDefault(x => x.Id == id);

            if (campaign.ReBroadcasted)
            {
                TempData["Error"] = $"Already rebroadcasted.";
                return(RedirectToAction("Rebroad", "Campaigns", new { id = id }));
            }
            campaign.ReBroadcasted            = true;
            campaign.ReBroadcastedDate        = reBroadcastedDate;
            campaign.ReBroadcastedQuantity    = reBroadcastedQuantity;
            campaign.ReBroadcastedOrderNumber = campaign.OrderNumber + "RDP";
            Db.SaveChanges();

            switch (via)
            {
            case OrderVia.Email:
                BackgroundJob.Enqueue(() => CampaignProcessor.SendToVendor(via, vendor, campaign.OrderNumber, null, string.Empty));
                break;

            case OrderVia.Api:
                string whiteLabel       = LoggedInUser?.CustomerId == null ? "ADS" : LoggedInUser?.Customer.WhiteLabel;
                string whiteLabelDomain = Db.Customers.FirstOrDefault(x => x.WhiteLabel == whiteLabel)?.WebDomain;
                if (string.IsNullOrEmpty(whiteLabelDomain))
                {
                    throw new AdsException("White Label Web Domain can not be empty.");
                }
                CampaignProcessor.SendToVendor(via, null, campaign.OrderNumber, null, whiteLabelDomain);
                break;
            }
            // Send email to vendor
            //BackgroundJob.Enqueue(() => CampaignProcessor.SendToVendor(OrderVia.Email, vendor, campaign.OrderNumber, null, String.Empty));

            TempData["Success"] = "Order #:" + campaign.OrderNumber + ", Campaign " + campaign.CampaignName + " Rebroad has been sent to vendor sucessfully.";
            return(RedirectToAction("Rebroad", "Campaigns", new { id = campaign.Id }));
        }