示例#1
0
        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"));
        }