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)); } }
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 })); }