File: D:/HostingSpaces/TDijk1/erp-apps.eu/wwwroot/App_Code/Pux/Kentico/Ecommerce/PuxShippingOptionInfo.cs
using CMS.Ecommerce;
using CMS.SiteProvider;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Pux.Kentico.Ecommerce
{
public class PuxShippingOptionInfoWrapper
{
protected ShippingOptionInfo ShippingOptionInfo { get; set; }
#region "ShippingOptionInfo properties"
public int ShippingOptionCarrierID
{
get
{
return ShippingOptionInfo.ShippingOptionCarrierID;
}
}
public string ShippingOptionCarrierServiceName
{
get
{
return ShippingOptionInfo.ShippingOptionCarrierServiceName;
}
}
public string ShippingOptionDescription
{
get
{
return ShippingOptionInfo.ShippingOptionDescription;
}
}
public string ShippingOptionDisplayName
{
get
{
return ShippingOptionInfo.ShippingOptionDisplayName;
}
}
public bool ShippingOptionEnabled
{
get
{
return ShippingOptionInfo.ShippingOptionEnabled;
}
}
public Guid ShippingOptionGUID
{
get
{
return ShippingOptionInfo.ShippingOptionGUID;
}
}
public double ShippingOptionCharge
{
get
{
return ShippingOptionInfo.ShippingOptionCharge;
}
}
public int ShippingOptionID
{
get
{
return ShippingOptionInfo.ShippingOptionID;
}
}
public DateTime ShippingOptionLastModified
{
get
{
return ShippingOptionInfo.ShippingOptionLastModified;
}
}
public string ShippingOptionName
{
get
{
return ShippingOptionInfo.ShippingOptionName;
}
}
public string ShippingOptionServiceDisplayName
{
get
{
return ShippingOptionInfo.ShippingOptionServiceDisplayName;
}
}
public int ShippingOptionSiteID
{
get
{
return ShippingOptionInfo.ShippingOptionSiteID;
}
}
public virtual Guid ShippingOptionThumbnailGUID
{
get
{
return ShippingOptionInfo.ShippingOptionThumbnailGUID;
}
}
#endregion
#region "Custom pux properties"
public string ShippingOptionVisibility
{
get
{
return ShippingOptionInfo.GetStringValue("ShippingOptionVisibility", "");
}
set
{
ShippingOptionInfo.SetValue("ShippingOptionVisibility", value);
}
}
public string ShippingOptionCssClass
{
get
{
return ShippingOptionInfo.GetStringValue("ShippingOptionCssClass", "");
}
set
{
ShippingOptionInfo.SetValue("ShippingOptionCssClass", value);
}
}
public int ShippingOptionOrder
{
get
{
return ShippingOptionInfo.GetIntegerValue("ShippingOptionOrder", -1);
}
set
{
ShippingOptionInfo.SetValue("ShippingOptionOrder", value);
}
}
public string ShippingOptionCustomControl
{
get
{
return ShippingOptionInfo.GetStringValue("ShippingOptionCustomControl", "");
}
set
{
ShippingOptionInfo.SetValue("ShippingOptionCustomControl", value);
}
}
public string ShippingOptionExternalID
{
get
{
return ShippingOptionInfo.GetStringValue("ShippingOptionExternalID", "");
}
set
{
ShippingOptionInfo.SetValue("ShippingOptionExternalID", value);
}
}
#endregion
#region "Pux calculated properties"
private double _shippingPrice = -1;
/// <summary>
/// Calculate price for this shipping option based on current content of the shopping cart
/// </summary>
public double ShippingPrice
{
get
{
double result = _shippingPrice;
if (result < 0)
{
var shoppingCart = ECommerceContext.CurrentShoppingCart;
if (shoppingCart != null)
{
// Store original shipping option ID
int origShippingOptionId = shoppingCart.ShoppingCartShippingOptionID;
// Calculate hypothetical shipping cost for shipping option from supplied list item
shoppingCart.ShoppingCartShippingOptionID = ShippingOptionID;
// Get site name
SiteInfo si = SiteInfoProvider.GetSiteInfo(shoppingCart.ShoppingCartSiteID);
if (si != null)
{
// Get shipping cost for currently processed shipping option
result = shoppingCart.TotalShipping;
}
// Restore original shipping option ID
shoppingCart.ShoppingCartShippingOptionID = origShippingOptionId;
}
}
_shippingPrice = result;
return _shippingPrice;
}
}
#endregion
public PuxShippingOptionInfoWrapper(ShippingOptionInfo shippingOptionInfo)
{
ShippingOptionInfo = shippingOptionInfo;
}
public void ReloadData()
{
_shippingPrice = -1;
}
}
}