Error executing template "/Designs/Basic/Paragraph/pricecalc.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_a113206f8bda497db020af9775689915.Execute() in C:\inetpub\EmbeddedKonfigurator\Files\Templates\Designs\Basic\Paragraph\pricecalc.cshtml:line 20
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using System; 3 @using System.Web; 4 @using Pagunette.CustomModules; 5 @using Pagunette.CustomModules.Classes; 6 @using System.Configuration; 7 @using Pagunette.Models; 8 @using Newtonsoft.Json; 9 @using Pagunette.CustomModules.Utils; 10 @using Dynamicweb; 11 @using Dynamicweb.Logging; 12 @using Dynamicweb.Ecommerce.Orders; 13 14 @{ 15 ILogger logger = LogManager.Current.GetLogger("internalReceipt"); 16 17 var request = HttpContext.Current.Request; 18 19 Order ordre = Dynamicweb.Ecommerce.Orders.Order.GetOrderById(request.QueryString["OrderID"]); 20 OrderFieldValueCollection orderFields = ordre.OrderFieldValues; 21 22 23 } 24 <html> 25 <head> 26 <meta charset="utf-8"> 27 <style> 28 #cookieWarningDiv { 29 display: none 30 } 31 </style> 32 </head> 33 34 <body> 35 36 @{ 37 var user = Dynamicweb.Security.UserManagement.User.GetUserByID(ordre.CustomerAccessUserId); 38 Pagunette.Configurator.Services.User.SetUser(user.CustomFieldValues.FirstOrDefault(u => u.CustomField.SystemName == "AccessUser_ConfiguratorId")?.Value.ToString()); 39 40 var costPriceCustomerNumber = user.CustomerNumber; 41 } 42 43 @foreach (OrderLine orderline in ordre.OrderLines.Where(ol => ol.ProductNumber == ConfigurationManager.AppSettings["ConfiguratorProductNumber"])) 44 { 45 46 var lang = user.CustomFieldValues.FirstOrDefault(u => u.CustomField.SystemName == "AccessUser_ConfiguratorDWLangunage")?.Value.ToString(); 47 string perfionLang = Pagunette.Helpers.PerfionLanguage.GetPerfionLanguage(lang); 48 49 string productNumber = orderline.ProductNumber; 50 bool isConfiguratorProduct = productNumber == ConfigurationManager.AppSettings["ConfiguratorProductNumber"]; 51 ConfiguratorSelectionModel configuratorSelection = null; 52 ConfiguratorPriceDetailsModel selectionPrices = null; 53 ConfiguratorPriceDetailsModel resellerCustomerPrices = null; 54 string image = string.Empty; 55 OrderLineFieldValueCollection items = orderline.OrderLineFieldValues; 56 57 58 foreach (OrderLineFieldValue item in items) 59 { 60 61 switch (item.OrderLineFieldSystemName) 62 { 63 case "KonfiguratorData": 64 try 65 { 66 //@item.GetString("Ecom:Order:OrderLine.OrderLineField.Value 67 configuratorSelection = ConfiguratorOperations.GetConfiguratorSelection(perfionLang, JsonConvert.DeserializeObject<ConfiguratorSelectionJsonModel>(item.Value)); 68 //configuratorSelection = JsonConvert.DeserializeObject<ConfiguratorSelectionModel>(item.Value); 69 70 71 selectionPrices = ConfiguratorOperations.GetPriceDetails(configuratorSelection, orderline.Quantity, true, false, null, false, costPriceCustomerNumber); 72 //selectionPrices = ConfiguratorOperations.GetPriceDetails(configuratorSelection, orderline.Quantity, true, true, ordre); 73 74 75 var resellerjsonmodel = JsonConvert.DeserializeObject<ConfiguratorSelectionJsonModel>(item.Value); 76 resellerjsonmodel.Currency = user.CustomFieldValues.FirstOrDefault(u => u.CustomField.SystemName == "AccessUser_ConfiguratorPriceFeature")?.Value.ToString(); 77 78 var resellerconfiguratorSelection = ConfiguratorOperations.GetConfiguratorSelection(perfionLang, resellerjsonmodel); 79 80 resellerCustomerPrices = ConfiguratorOperations.GetPriceDetails(resellerconfiguratorSelection, orderline.Quantity, true, false, null, false); 81 82 83 } 84 catch (Exception e) { 85 } 86 break; 87 default: 88 break; 89 } 90 } 91 var countryService = new Dynamicweb.Ecommerce.International.CountryService(); 92 var country = countryService.GetCountry(user.CountryCode); 93 94 95 96 <table width="800" border="0" cellspacing="0" cellpadding="0" ID="Table3"> 97 <tr> 98 <td width="50%" valign="top"> 99 Resellers pris 100 </td> 101 <td> 102 Resellers kundes pris 103 </td> 104 </tr> 105 <tr> 106 <td> 107 <div>@selectionPrices.PriceOneCurtain</div> 108 <div>Metervare forbrug: @selectionPrices.AntalMtrForbrugtMainProduct</div> 109 <div>Metervare pris: @selectionPrices.MainProductPris</div> 110 111 <div>Syning: @selectionPrices.PrisForSyning</div> 112 <div>Syning og tilbehør: @selectionPrices.TotalSyningInklTilbehoer</div> 113 <div>StyringPris: @selectionPrices.StyringPris</div> 114 115 <div></div> 116 </td> 117 <td> 118 <div>@resellerCustomerPrices.PriceOneCurtain</div> 119 <div>Metervare forbrug: @resellerCustomerPrices.AntalMtrForbrugtMainProduct</div> 120 <div>Metervare pris: @resellerCustomerPrices.MainProductPris</div> 121 122 <div>Syning: @resellerCustomerPrices.PrisForSyning</div> 123 <div>Syning og tilbehør: @resellerCustomerPrices.TotalSyningInklTilbehoer</div> 124 125 <div>Total with vat: @(resellerCustomerPrices.TotalPriceInAll * ((country.Vat + 100) / 100))</div> 126 127 </td> 128 </tr> 129 </table> 130 131 132 } 133 </body> 134 135 </html> 136