<pre class='dw-error'>Error executing template "Designs/Swift/eCom7/CartV2/Step/Custom_CartModalFeed.cshtml"
System.ArgumentNullException: Value cannot be null. (Parameter &#39;currency&#39;)
   at System.ArgumentNullException.Throw(String paramName)
   at Dynamicweb.Ecommerce.International.CurrencyService.Format(Currency currency, Double value, Boolean showSymbol)
   at CompiledRazorTemplates.Dynamic.RazorEngine_d9ec7800d64b4dc9a44cad3240556b91.ExecuteAsync()
   at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.&lt;&gt;c__DisplayClass16_0.&lt;RunCompile&gt;b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String templateSource, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()
<hr/>
<div class='template-code'>
<span class='line-number'>  1</span>     @inherits Dynamicweb.Rendering.RazorTemplateBase&lt;Dynamicweb.Rendering.RazorTemplateModel&lt;Dynamicweb.Rendering.Template&gt;&gt;
<span class='line-number'>  2</span>     @using System.Text.RegularExpressions
<span class='line-number'>  3</span>     @using System.Linq
<span class='line-number'>  4</span>     @using Dynamicweb.Core
<span class='line-number'>  5</span>     @using Dynamicweb.Ecommerce.Orders
<span class='line-number'>  6</span>     
<span class='line-number'>  7</span>     @functions {
<span class='line-number'>  8</span>         public class Root
<span class='line-number'>  9</span>         {
<span class='line-number'> 10</span>             public double numberofproducts { get; set; }      
<span class='line-number'> 11</span>             public double subtotalprice { get; set; }
<span class='line-number'> 12</span>             public string totalprice { get; set; }  
<span class='line-number'> 13</span>             public double ProgressValue { get; set; }
<span class='line-number'> 14</span>             public string BalanceAmount { get; set; }
<span class='line-number'> 15</span>             public bool isGreater { get; set; }
<span class='line-number'> 16</span>             public double promotionprice{ get; set; }
<span class='line-number'> 17</span>         }
<span class='line-number'> 18</span>     }
<span class='line-number'> 19</span>     
<span class='line-number'> 20</span>     @{
<span class='line-number'> 21</span>         string jsonFeed = &quot;&quot;;
<span class='line-number'> 22</span>     
<span class='line-number'> 23</span>         Root feedRoot = new Root();
<span class='line-number'> 24</span>     
<span class='line-number'> 25</span>         feedRoot.numberofproducts = GetDouble(&quot;Ecom:Order.OrderLines.TotalProductQuantity&quot;);
<span class='line-number'> 26</span>         feedRoot.subtotalprice = GetDouble(&quot;Ecom:Order.TotalPriceWithoutOrderDiscountsAndFees.Price.Value&quot;);
<span class='line-number'> 27</span>         feedRoot.totalprice = GetString(&quot;Ecom:Order.OrderLines.Total.PriceWithVAT&quot;);
<span class='line-number'> 28</span>         string shippingId = GetString(&quot;Ecom:Order.ShippingMethodID&quot;);
<span class='line-number'> 29</span>         feedRoot.promotionprice = GetDouble(&quot;Ecom:Order.PriceWithoutDiscounts.PriceWithVAT&quot;);
<span class='line-number'> 30</span>         double freeshippriceInt = 0;
<span class='line-number'> 31</span>         if (string.IsNullOrEmpty(shippingId))
<span class='line-number'> 32</span>         {
<span class='line-number'> 33</span>             string freeshipprice = Pageview.AreaSettings.GetString(&quot;Free_Shipping_Amount&quot;);
<span class='line-number'> 34</span>             freeshippriceInt = !string.IsNullOrEmpty(freeshipprice) ? Convert.ToInt32(freeshipprice) : 0;
<span class='line-number'> 35</span>         }
<span class='line-number'> 36</span>         else
<span class='line-number'> 37</span>         {
<span class='line-number'> 38</span>             Dynamicweb.Ecommerce.Orders.ShippingService shipservice = new Dynamicweb.Ecommerce.Orders.ShippingService();
<span class='line-number'> 39</span>             Dynamicweb.Ecommerce.Orders.Shipping shipping = shipservice.GetShipping(shippingId);
<span class='line-number'> 40</span>             if (shipping != null)
<span class='line-number'> 41</span>             {
<span class='line-number'> 42</span>                 freeshippriceInt = shipping.FreeFeeAmount;
<span class='line-number'> 43</span>             }
<span class='line-number'> 44</span>             if (freeshippriceInt == 0)
<span class='line-number'> 45</span>             {
<span class='line-number'> 46</span>                 string freeshipprice = Pageview.AreaSettings.GetString(&quot;Free_Shipping_Amount&quot;);
<span class='line-number'> 47</span>                 freeshippriceInt = !string.IsNullOrEmpty(freeshipprice) ? Convert.ToInt32(freeshipprice) : 0;
<span class='line-number'> 48</span>             }
<span class='line-number'> 49</span>         }
<span class='line-number'> 50</span>         var orderCurrency = Dynamicweb.Ecommerce.Services.Currencies.GetCurrency(GetString(&quot;Ecom:Order.Currency.Code&quot;));
<span class='line-number'> 51</span>         var orderlines1 = GetLoop(&quot;OrderLines&quot;);
<span class='line-number'> 52</span>         bool isOrderAmountDiscount1 = false;
<span class='line-number'> 53</span>         string discounttype = &quot;&quot;;
<span class='line-number'> 54</span>         for (int i = orderlines1.Count - 1; i &gt;= 0; i--)
<span class='line-number'> 55</span>         {
<span class='line-number'> 56</span>             var orderline = orderlines1[i];
<span class='line-number'> 57</span>             var discountId = orderline.GetString(&quot;Ecom:Order:OrderLine.DiscountID&quot;);
<span class='line-number'> 58</span>             int discountIdInt = !string.IsNullOrEmpty(discountId) ? Convert.ToInt32(discountId) : 0;
<span class='line-number'> 59</span>             if (discountIdInt &gt; 0)
<span class='line-number'> 60</span>             {
<span class='line-number'> 61</span>                 Dynamicweb.Ecommerce.Orders.Discounts.DiscountService discountService = new Dynamicweb.Ecommerce.Orders.Discounts.DiscountService();
<span class='line-number'> 62</span>                 Dynamicweb.Ecommerce.Orders.Discounts.Discount discountobj = discountService.GetDiscount(discountIdInt);
<span class='line-number'> 63</span>                 discounttype = discountobj.DiscountType.ToString();
<span class='line-number'> 64</span>             }
<span class='line-number'> 65</span>         }
<span class='line-number'> 66</span>     
<span class='line-number'> 67</span>         double ProgressValue = (GetDouble(&quot;Ecom:Order.PriceWithoutFees.PriceWithVAT&quot;) / freeshippriceInt) * 100;
<span class='line-number'> 68</span>         feedRoot.ProgressValue = ProgressValue;
<span class='line-number'> 69</span>         double BalanceAmountValue = (freeshippriceInt - GetDouble(&quot;Ecom:Order.PriceWithoutFees.PriceWithVAT&quot;));
<span class='line-number'> 70</span>         string BalanceAmount = Dynamicweb.Ecommerce.Services.Currencies.Format(orderCurrency, BalanceAmountValue);
<span class='line-number'> 71</span>         feedRoot.BalanceAmount = BalanceAmount;
<span class='line-number'> 72</span>         bool isGreater = GetDouble(&quot;Ecom:Order.PriceWithoutFees.PriceWithVAT&quot;) &gt;= freeshippriceInt ? true : false;
<span class='line-number'> 73</span>         bool haveol = GetInteger(&quot;Ecom:Order.OrderLines.Count&quot;) != 0 ? true : false;
<span class='line-number'> 74</span>         if (GetDouble(&quot;Ecom:Order.PriceWithoutFees.PriceWithVAT&quot;) == 0 || GetDouble(&quot;Ecom:Order.PriceWithoutFees.PriceWithVAT&quot;) &gt;= freeshippriceInt || discounttype == &quot;Shipping&quot;)
<span class='line-number'> 75</span>         {
<span class='line-number'> 76</span>             feedRoot.isGreater = true;
<span class='line-number'> 77</span>             feedRoot.ProgressValue = 100;
<span class='line-number'> 78</span>         }
<span class='line-number'> 79</span>         else
<span class='line-number'> 80</span>         {
<span class='line-number'> 81</span>             feedRoot.isGreater = false;
<span class='line-number'> 82</span>         }
<span class='line-number'> 83</span>     
<span class='line-number'> 84</span>         jsonFeed = Newtonsoft.Json.JsonConvert.SerializeObject(feedRoot);
<span class='line-number'> 85</span>     }
<span class='line-number'> 86</span>     @jsonFeed
</div>
</pre>
