public string GenerateOrder(int openCampaignID, int campaignClosingUserID) { var usersWithShoppingCartItems = shoppingCartProvider.GetUserIDsWithShoppingCart(openCampaignID, 1); var orderTemplateSettingKey = kenticoresourceService.GetSettingsKey("KDA_OrderReservationEmailTemplate"); var failedOrderTemplateSettingKey = kenticoresourceService.GetSettingsKey("KDA_FailedOrdersEmailTemplate"); var failedOrdersUrl = kenticoresourceService.GetSettingsKey("KDA_FailedOrdersPageUrl"); var unprocessedDistributorIDs = new List <Tuple <int, string> >(); usersWithShoppingCartItems.ForEach(shoppingCartUser => { var salesPerson = KenticoUserProvider.GetUserByUserId(shoppingCartUser); var salesPersonrCartIDs = shoppingCartProvider.GetShoppingCartIDByInventoryType(shoppingCartUser, 2, openCampaignID); }); var distributors = kenticoAddressBookService.GetAddressesByAddressIds(unprocessedDistributorIDs.Select(x => x.Item1).ToList()).Select(x => { return(new { AddressID = x?.Id, AddressPersonalName = x?.AddressPersonalName }); }).ToList(); var listofFailedOrders = unprocessedDistributorIDs.Select(x => { var distributor = distributors.Where(y => y.AddressID == x.Item1).FirstOrDefault(); return(new { Name = distributor.AddressPersonalName, Reason = x.Item2 }); }).ToList(); var user = KenticoUserProvider.GetUserByUserId(campaignClosingUserID); if (user?.Email != null && listofFailedOrders.Count > 0) { object[,] orderdata = { { "url", $"{SiteContext.CurrentSite.DomainName}{failedOrdersUrl}?campid={openCampaignID}" }, { "failedordercount", listofFailedOrders.Count } }; UpdatetFailedOrders(openCampaignID, true); } if (listofFailedOrders.Count == 0) { UpdatetFailedOrders(openCampaignID, false); } return(kenticoresourceService.GetResourceString("KDA.OrderSchedular.TaskSuccessfulMessage")); }