/// <summary>
 /// Page load event
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         Cart = ShoppingCartInfoProvider.GetShoppingCartInfo(CartID);
         var capmaigns = DIContainer.Resolve<IKenticoCampaignsProvider>();
         GetItems();
         BindBusinessUnit();
         if (InventoryType == (Int32)ProductType.GeneralInventory)
         {
             BindShippingOptions();
             ddlShippingOption.SelectedValue = ValidationHelper.GetString(Cart.ShoppingCartShippingOptionID, default(string));
         }
         else
         {
             OpenCampaignID = capmaigns.GetOpenCampaignID();
         }
         ValidCart = true;
         BindRepeaterData();
     }
     catch (Exception ex)
     {
         EventLogProvider.LogInformation("Kadena_CMSWebParts_Kadena_Cart_DistributorCartDetails", "Page_Load", ex.Message);
     }
 }
Exemple #2
0
 /// <summary>
 /// Removing Shopping Cart and cart items by cart id
 /// </summary>
 /// <param name="shoppingCartID"></param>
 private void RemovingProductFromShoppingCart(SKUInfo product, int shoppingCartID)
 {
     try
     {
         if (!DataHelper.DataSourceIsEmpty(product))
         {
             ShoppingCartItemInfo item = null;
             ShoppingCartInfo     cart = ShoppingCartInfoProvider.GetShoppingCartInfo(shoppingCartID);
             cart.User = CurrentUser;
             item      = cart.CartItems.Where(g => g.SKUID == product.SKUID).FirstOrDefault();
             if (!DataHelper.DataSourceIsEmpty(item))
             {
                 ShoppingCartInfoProvider.RemoveShoppingCartItem(cart, item.CartItemID);
                 ShoppingCartItemInfoProvider.DeleteShoppingCartItemInfo(item);
                 if (cart.CartItems.Count == 0)
                 {
                     ShoppingCartInfoProvider.DeleteShoppingCartInfo(shoppingCartID);
                 }
                 cart.InvalidateCalculations();
             }
         }
     }
     catch (Exception ex)
     {
         EventLogProvider.LogException("CustomerCartOperations.ascx.cs", "RemovingProductFromShoppingCart()", ex);
     }
 }
 /// <summary>
 /// Removes the current cart item and the associated product options from the shopping cart.
 /// </summary>
 protected void Remove(object sender, EventArgs e)
 {
     try
     {
         cart = ShoppingCartInfoProvider.GetShoppingCartInfo(CartID);
         foreach (ShoppingCartItemInfo scii in cart.CartItems)
         {
             if ((scii.CartItemBundleGUID == ShoppingCartItemInfoObject.CartItemGUID) ||
                 (scii.CartItemParentGUID == ShoppingCartItemInfoObject.CartItemGUID))
             {
                 ShoppingCartItemInfoProvider.DeleteShoppingCartItemInfo(scii);
             }
         }
         ShoppingCartItemInfoProvider.DeleteShoppingCartItemInfo(ShoppingCartItemInfoObject.CartItemGUID);
         ShoppingCartInfoProvider.RemoveShoppingCartItem(cart, ShoppingCartItemInfoObject.CartItemGUID);
         if (cart.CartItems.Count == 0)
         {
             ShoppingCartInfoProvider.DeleteShoppingCartInfo(cart.ShoppingCartID);
         }
         mActivityLogger.LogProductRemovedFromShoppingCartActivity(ShoppingCartItemInfoObject.SKU,
                                                                   ShoppingCartItemInfoObject.CartItemUnits, ContactID);
         ShoppingCartInfoProvider.EvaluateShoppingCart(cart);
         ComponentEvents.RequestEvents.RaiseEvent(sender, e, SHOPPING_CART_CHANGED);
         URLHelper.Redirect($"{Request.RawUrl}?status={QueryStringStatus.Deleted}");
     }
     catch (Exception ex)
     {
         EventLogProvider.LogInformation("Kadena_CMSWebParts_Kadena_Cart_RemoveItemFromCart", "Remove", ex.Message);
     }
 }
        public int GetShoppingCartId(int userId, int siteId)
        {
            var siteName = SiteInfoProvider.GetSiteInfo(siteId)?.SiteName ?? string.Empty;

            if (string.IsNullOrEmpty(siteName))
            {
                return(0);
            }

            return(ShoppingCartInfoProvider.GetShoppingCartInfo(userId, siteName)?.ShoppingCartID ?? 0);
        }
 /// <summary>
 /// Initializes the control.
 /// </summary>
 protected override void OnLoad(EventArgs e)
 {
     try
     {
         base.OnLoad(e);
         cart = ShoppingCartInfoProvider.GetShoppingCartInfo(CartID);
         if (!StopProcessing)
         {
             btnRemoveItem.Visible = true;
         }
     }
     catch (Exception ex)
     {
         EventLogProvider.LogInformation("Kadena_CMSWebParts_Kadena_Cart_RemoveItemFromCart", "OnLoad", ex.Message);
     }
 }
    private void TryReplaceCartWithNewOneUsingGuidInUrl()
    {
        try
        {
            Guid             cartGuid      = Guid.Parse(CartGuidQueryString);
            ShoppingCartInfo abandonedCart = ShoppingCartInfoProvider.GetShoppingCartInfo(cartGuid);

            if ((abandonedCart != null) && (ECommerceContext.CurrentShoppingCart.ShoppingCartGUID != abandonedCart.ShoppingCartGUID))
            {
                ECommerceContext.CurrentShoppingCart = CloneShoppingCartInfo(abandonedCart);
            }
        }
        catch (FormatException)
        {
            EventLogProvider.LogException("Load abandoned cart", "LOADABANDONEDCART", null, CurrentSite.SiteID, "Invalid format of GUID");
        }
    }
 /// <summary>
 /// Handle the visibility of the control.
 /// </summary>
 protected override void OnPreRender(EventArgs e)
 {
     try
     {
         base.OnPreRender(e);
         cart = ShoppingCartInfoProvider.GetShoppingCartInfo(CartID);
         bool ItemIsProductOption =
             (ShoppingCartItemInfoObject != null) && ShoppingCartItemInfoObject.IsProductOption;
         bool CartContentIsReadOnly =
             ValidationHelper.GetBoolean(ShoppingCartContent.GetValue("ReadOnlyMode"), false);
         btnRemoveItem.Visible = !(ItemIsProductOption || CartContentIsReadOnly);
     }
     catch (Exception ex)
     {
         EventLogProvider.LogInformation("Kadena_CMSWebParts_Kadena_Cart_RemoveItemFromCart", "OnPreRender", ex.Message);
     }
 }
Exemple #8
0
    private void TryReplaceCartWithNewOneUsingGuidInUrl()
    {
        try
        {
            // Try to restore abandoned cart from DB and set its clone as CurrentShoppingCart
            Guid             cartGuid      = Guid.Parse(CartGuidQueryString);
            ShoppingCartInfo abandonedCart = ShoppingCartInfoProvider.GetShoppingCartInfo(cartGuid);

            if ((abandonedCart != null) && (Service.Resolve <IShoppingService>().GetCurrentShoppingCart().ShoppingCartGUID != abandonedCart.ShoppingCartGUID))
            {
                Service.Resolve <ICurrentShoppingCartService>().SetCurrentShoppingCart(CloneShoppingCartInfo(abandonedCart));
            }
        }
        catch (FormatException)
        {
            EventLogProvider.LogException("Load abandoned cart", "LOADABANDONEDCART", null, CurrentSite.SiteID, "Invalid format of GUID");
        }
    }
Exemple #9
0
 /// <summary>
 /// Updating the unit count of shopping cart Item
 /// </summary>
 private void Updatingtheunitcountofcartitem(SKUInfo product, int shoppinCartID, int unitCount, int customerAddressID, double skuPrice)
 {
     try
     {
         var customerAddress = AddressInfoProvider.GetAddressInfo(customerAddressID);
         if (!DataHelper.DataSourceIsEmpty(product))
         {
             ShoppingCartItemInfo item = null;
             ShoppingCartInfo     cart = ShoppingCartInfoProvider.GetShoppingCartInfo(shoppinCartID);
             cart.User = CurrentUser;
             cart.ShoppingCartShippingAddress = customerAddress;
             if (cart.ShoppingCartCurrencyID <= 0)
             {
                 cart.ShoppingCartCurrencyID = CurrencyInfoProvider.GetMainCurrency(CurrentSite.SiteID).CurrencyID;
                 cart.Update();
             }
             var campaingnID = ValidationHelper.GetInteger(cart.GetValue("ShoppingCartCampaignID"), default(int));
             var programID   = ValidationHelper.GetInteger(cart.GetValue("ShoppingCartProgramID"), default(int));
             item = cart.CartItems.Where(g => g.SKUID == product.SKUID).FirstOrDefault();
             if (!DataHelper.DataSourceIsEmpty(item))
             {
                 item.CartItemPrice = skuPrice;
                 ShoppingCartItemInfoProvider.UpdateShoppingCartItemUnits(item, unitCount);
                 cart.InvalidateCalculations();
             }
             else
             {
                 ShoppingCartItemParameters parameters = new ShoppingCartItemParameters(product.SKUID, unitCount);
                 parameters.CustomParameters.Add("CartItemCustomerID", customerAddressID);
                 ShoppingCartItemInfo cartItem = cart.SetShoppingCartItem(parameters);
                 cartItem.SetValue("CartItemPrice", skuPrice);
                 cartItem.SetValue("CartItemDistributorID", customerAddressID);
                 cartItem.SetValue("CartItemCampaignID", cartItem.SetValue("CartItemCampaignID", campaingnID));
                 cartItem.SetValue("CartItemProgramID", programID);
                 ShoppingCartItemInfoProvider.SetShoppingCartItemInfo(cartItem);
             }
         }
     }
     catch (Exception ex)
     {
         EventLogProvider.LogException("CustomerCartOperations.ascx.cs", "Updatingtheunitcountofcartitem()", ex);
     }
 }
 /// <summary>
 /// Updates the Shipping option selected by the user
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void ddlBusinessUnits_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         var businessUnitID = ValidationHelper.GetLong(ddlBusinessUnits.SelectedValue, default(long));
         if (CartID != default(int) && businessUnitID > 0)
         {
             Cart = ShoppingCartInfoProvider.GetShoppingCartInfo(CartID);
             if (Cart != null)
             {
                 Cart.SetValue("BusinessUnitIDForDistributor", businessUnitID);
                 Cart.Update();
             }
         }
     }
     catch (Exception ex)
     {
         EventLogProvider.LogInformation("Kadena_CMSWebParts_Kadena_Cart_DistributorCartDetails", "ddlBusinessUnits_SelectedIndexChanged", ex.Message);
     }
 }
Exemple #11
0
 public static object GetCartTotalByInventoryType(EvaluationContext context, params object[] parameters)
 {
     try
     {
         int userID         = ValidationHelper.GetInteger(parameters[1], default(int));
         int inventoryType  = ValidationHelper.GetInteger(parameters[2], default(int));
         int openCampaignID = ValidationHelper.GetInteger(parameters[3], default(int));
         if (inventoryType == (Int32)ProductType.PreBuy)
         {
             var query = new DataQuery(SQLQueries.getShoppingCartTotal);
             QueryDataParameters queryParams = new QueryDataParameters();
             queryParams.Add("@ShoppingCartUserID", userID);
             queryParams.Add("@ShoppingCartInventoryType", inventoryType);
             queryParams.Add("@ShoppingCartCampaignID", openCampaignID);
             var cartTotal = ConnectionHelper.ExecuteScalar(query.QueryText, queryParams, QueryTypeEnum.SQLQuery, true);
             return(ValidationHelper.GetDecimal(cartTotal, default(decimal)));
         }
         else
         {
             var     loggedInUSerCartIDs = ShoppingCartHelper.GetCartsByUserID(userID, ProductType.GeneralInventory, openCampaignID);
             decimal cartTotal           = 0;
             loggedInUSerCartIDs.ForEach(cartID =>
             {
                 var Cart = ShoppingCartInfoProvider.GetShoppingCartInfo(cartID);
                 if (Cart.ShippingOption != null && Cart.ShippingOption.ShippingOptionCarrierServiceName.ToLower() != ShippingOption.Ground)
                 {
                     EstimateDeliveryPriceRequestDto estimationdto = ShoppingCartHelper.GetEstimationDTO(Cart);
                     var estimation = ShoppingCartHelper.CallEstimationService(estimationdto);
                     cartTotal     += ValidationHelper.GetDecimal(estimation?.Payload?.Cost, default(decimal));
                 }
             });
             return(ValidationHelper.GetDecimal(cartTotal, default(decimal)));
         }
     }
     catch (Exception ex)
     {
         EventLogProvider.LogInformation("Kadena Macro methods", "BindPrograms", ex.Message);
         return(default(double));
     }
 }
Exemple #12
0
 /// <summary>
 /// This method  will do order processing
 /// </summary>
 /// <param name="openCampaignID"></param>
 /// <param name="campaignClosingUserID"></param>
 /// <returns></returns>
 private string GenerateOrder(int openCampaignID, int campaignClosingUserID)
 {
     try
     {
         var shoppingCartInfo              = DIContainer.Resolve <IShoppingCartProvider>();
         var addrerss                      = DIContainer.Resolve <IAddressBookService>();
         var userInfo                      = DIContainer.Resolve <IKenticoUserProvider>();
         var kenticoResourceService        = DIContainer.Resolve <IKenticoResourceService>();
         var usersWithShoppingCartItems    = shoppingCartInfo.GetUserIDsWithShoppingCart(openCampaignID, Convert.ToInt32(ProductsType.PreBuy));
         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         = userInfo.GetUserByUserId(shoppingCartUser);
             var loggedInUserCartIDs = ShoppingCartHelper.GetCartsByUserID(shoppingCartUser, ProductType.PreBuy, openCampaignID);
             loggedInUserCartIDs.ForEach(cart =>
             {
                 var shippingCost   = default(decimal);
                 Cart               = ShoppingCartInfoProvider.GetShoppingCartInfo(cart);
                 OrderDTO ordersDTO = ShoppingCartHelper.CreateOrdersDTO(Cart, Cart.ShoppingCartUserID, OrderType.prebuy, shippingCost);
                 var response       = ShoppingCartHelper.ProcessOrder(Cart, Cart.ShoppingCartUserID, OrderType.prebuy, ordersDTO, shippingCost);
                 if (response != null && response.Success)
                 {
                     ordersDTO.OrderID = response.Payload;
                     ProductEmailNotifications.SendMail(salesPerson, ordersDTO, orderTemplateSettingKey);
                     InBoundFormHelper.InsertIBFForm(ordersDTO);
                     ShoppingCartInfoProvider.DeleteShoppingCartInfo(Cart);
                     ShoppingCartHelper.UpdateRemainingBudget(ordersDTO, salesPerson.UserId);
                     DIContainer.Resolve <IIBTFService>().InsertIBTFAdjustmentRecord(ordersDTO);
                 }
                 else
                 {
                     unprocessedDistributorIDs.Add(new Tuple <int, string>(Cart.GetIntegerValue("ShoppingCartDistributorID", default(int)), response.ErrorMessages));
                 }
             });
         });
         var distributors = addrerss.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 = userInfo.GetUserByUserId(campaignClosingUserID);
         if (user?.Email != null && listofFailedOrders.Count > 0)
         {
             Dictionary <string, object> failedOrderData = new Dictionary <string, object>();
             failedOrderData.Add("failedorderurl", URLHelper.AddHTTPToUrl($"{SiteContext.CurrentSite.DomainName}{failedOrdersUrl}?campid={openCampaignID}"));
             failedOrderData.Add("failedordercount", listofFailedOrders.Count);
             failedOrderData.Add("failedorders", listofFailedOrders);
             ProductEmailNotifications.SendEmailNotification(failedOrderTemplateSettingKey, user.Email, listofFailedOrders, "failedOrders", failedOrderData);
             UpdatetFailedOrders(openCampaignID, true);
         }
         return(ResHelper.GetString("KDA.OrderSchedular.TaskSuccessfulMessage"));
     }
     catch (Exception ex)
     {
         EventLogProvider.LogException("GeneratePrebuyOrderTask", "GenerateOrder", ex, SiteContext.CurrentSiteID, ex.Message);
         return(ex.Message);
     }
 }
 public ShoppingCartInfo GetShoppingCartByID(int cartID)
 {
     return(ShoppingCartInfoProvider.GetShoppingCartInfo(cartID));
 }
 private ShoppingCartInfo GetShoppingCart(int shoppingCartId = 0)
 {
     return(shoppingCartId > 0
         ? ShoppingCartInfoProvider.GetShoppingCartInfo(shoppingCartId)
         : ECommerceContext.CurrentShoppingCart);
 }
Exemple #15
0
 /// <summary>
 /// Chekcou click event for order processing
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void lnkCheckout_Click(object sender, EventArgs e)
 {
     try
     {
         if (!DIContainer.Resolve <IShoppingCartProvider>().ValidateAllCarts(userID: CurrentUser.UserID))
         {
             Response.Cookies["status"].Value    = QueryStringStatus.InvalidCartItems;
             Response.Cookies["status"].HttpOnly = false;
             return;
         }
         var loggedInUserCartIDs       = GetCartsByUserID(CurrentUser.UserID, ProductType.GeneralInventory, OpenCampaign?.CampaignID); settingKeys = DIContainer.Resolve <IKenticoResourceService>();
         var orderTemplateSettingKey   = settingKeys.GetSettingsKey("KDA_OrderReservationEmailTemplateGI");
         var unprocessedDistributorIDs = new List <Tuple <int, string> >();
         var userInfo    = DIContainer.Resolve <IKenticoUserProvider>();
         var salesPerson = userInfo.GetUserByUserId(CurrentUser.UserID);
         loggedInUserCartIDs.ForEach(distributorCart =>
         {
             Cart = ShoppingCartInfoProvider.GetShoppingCartInfo(distributorCart);
             decimal shippingCost = default(decimal);
             if (Cart.ShippingOption != null && Cart.ShippingOption.ShippingOptionName.ToLower() != ShippingOption.Ground)
             {
                 var shippingResponse = GetOrderShippingTotal(Cart);
                 if (shippingResponse != null && shippingResponse.Success)
                 {
                     shippingCost = ValidationHelper.GetDecimal(shippingResponse?.Payload?.Cost, default(decimal));
                 }
                 else
                 {
                     unprocessedDistributorIDs.Add(new Tuple <int, string>(Cart.GetIntegerValue("ShoppingCartDistributorID", default(int)), shippingResponse.ErrorMessages));
                     return;
                 }
             }
             OrderDTO ordersDTO = CreateOrdersDTO(Cart, Cart.ShoppingCartUserID, OrderType.generalInventory, shippingCost);
             var response       = ProcessOrder(Cart, CurrentUser.UserID, OrderType.generalInventory, ordersDTO, shippingCost);
             if (response != null && response.Success)
             {
                 UpdateAvailableSKUQuantity(Cart);
                 UpdateAllocatedProductQuantity(Cart, salesPerson.UserId);
                 ProductEmailNotifications.SendMail(salesPerson, ordersDTO, orderTemplateSettingKey);
                 ShoppingCartInfoProvider.DeleteShoppingCartInfo(Cart);
                 ShoppingCartHelper.UpdateRemainingBudget(ordersDTO, CurrentUser.UserID);
             }
             else
             {
                 unprocessedDistributorIDs.Add(new Tuple <int, string>(Cart.GetIntegerValue("ShoppingCartDistributorID", default(int)), response.ErrorMessages));
             }
         });
         if (unprocessedDistributorIDs.Count == 0)
         {
             Response.Cookies["status"].Value    = QueryStringStatus.OrderSuccess;
             Response.Cookies["status"].HttpOnly = false;
             URLHelper.Redirect(Request.RawUrl);
         }
         else
         {
             if (loggedInUserCartIDs.Count > unprocessedDistributorIDs.Count)
             {
                 Response.Cookies["status"].Value    = QueryStringStatus.OrderSuccess;
                 Response.Cookies["status"].HttpOnly = false;
             }
             Response.Cookies["error"].Value    = QueryStringStatus.OrderFail;
             Response.Cookies["error"].HttpOnly = false;
             ShowOrderErrorList(unprocessedDistributorIDs);
             divErrorDailogue.Attributes.Add("class", "dialog active");
         }
     }
     catch (Exception ex)
     {
         EventLogProvider.LogInformation("Kadena_CMSWebParts_Kadena_Cart_CartCheckout", "lnkCheckout_Click", ex.Message);
     }
 }