EIVA A/S

To use this site, please enable javascript

EIVA is now part of Kraken Robotics 

Together, we're creating a world-leading marine technology company focused on transforming subsea intelligence.

    Kraken Robotics has acquired EIVA

Whatever you need, we make sure you're fully equipped

EIVA is an engineering company with more than 45 years’ experience in the offshore and shallow water construction and survey industries.

We provide software, equipment, integrated system solutions, rental services, support and training to a wide range of customer segments, covering virtually any subsea task.

Were you not able to find what you were looking for? Please feel free to reach out.

Error executing template "/Designs/Eiva/Paragraph/TrainingCoursesList.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_876ea26f118e466ea23de38d57809f6f.<>c__DisplayClass0_0.<DisplayOTraining>b__0(TextWriter __razor_helper_writer) in E:\Webroot\Eiva.com\Web\Files\Templates\Designs\Eiva\Paragraph\TrainingCoursesList.cshtml:line 121
at CompiledRazorTemplates.Dynamic.RazorEngine_876ea26f118e466ea23de38d57809f6f.Execute() in E:\Webroot\Eiva.com\Web\Files\Templates\Designs\Eiva\Paragraph\TrainingCoursesList.cshtml:line 52
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.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @using Dynamicweb.Content 2 @using Dynamicweb.Content.Items 3 @using Dynamicweb.Ecommerce 4 @using Dynamicweb.Ecommerce.Prices 5 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 6 7 @{ 8 Item thisItem = Dynamicweb.Extensibility.ServiceLocator.Current.GetItemService().GetItem("TrainingCoursesList", GetString("Item.Id")); 9 //Item thisItem = new Item(GetString("Item.Id")); 10 string productPageId = Pageview.Area.Item["Productpage_Id"].ToString(); 11 var productListTrainingCourses = !string.IsNullOrWhiteSpace(thisItem.First(e => e.Key == "TrainingCoursesProduct").Value.ToString()) ? thisItem.First(e => e.Key == "TrainingCoursesProduct") : new KeyValuePair<string, object>(); 12 var productListELearning = !string.IsNullOrWhiteSpace(thisItem.First(e => e.Key == "ELearningProduct").Value.ToString()) ? thisItem.First(e => e.Key == "ELearningProduct") : new KeyValuePair<string, object>(); 13 var newArrayProductListELearning = Enumerable.Empty<KeyValuePair<string, string>>(); 14 if (!productListELearning.Equals(default(KeyValuePair<string, object>))) 15 { 16 newArrayProductListELearning = newArrayProductListELearning.Concat(productListELearning.Value.ToString().Split(',').Select(x => new KeyValuePair<string, string>(productListELearning.Key, x))); 17 } 18 if (!productListTrainingCourses.Equals(default(KeyValuePair<string, object>))) 19 { 20 newArrayProductListELearning = newArrayProductListELearning.Concat(productListTrainingCourses.Value.ToString().Split(',').Select(x => new KeyValuePair<string, string>(productListTrainingCourses.Key, x))); 21 } 22 var readMoreLinkELearning = string.Empty; 23 var readMoreLinkTitleELearning = string.Empty; 24 var readMoreLinkTrainingCourses = string.Empty; 25 var readMoreLinkTitleTrainingCourses = string.Empty; 26 27 if (!string.IsNullOrWhiteSpace(GetString("Item.ELearningLink.Title"))) 28 { 29 readMoreLinkELearning = GetString("Item.ELearningLink.Link"); 30 readMoreLinkTitleELearning = GetString("Item.ELearningLink.Title"); 31 } 32 33 if (!string.IsNullOrWhiteSpace(GetString("Item.TrainingCoursesLink.Title"))) 34 { 35 readMoreLinkTrainingCourses = GetString("Item.TrainingCoursesLink.Link"); 36 readMoreLinkTitleTrainingCourses = GetString("Item.TrainingCoursesLink.Title"); 37 } 38 var cardTexts = new 39 { 40 cardLabelELearning1 = GetString("Item.ELearningLabel_1"), 41 cardLabelELearning2 = GetString("Item.ELearningLabel_2"), 42 cardLinkTextELearning = Translate("Whats included", "Whats included"), 43 cardLabelTraining1 = GetString("Item.TrainingCoursesLabel_1"), 44 cardLabelTraining2 = GetString("Item.TrainingCoursesLabel_2"), 45 cardLinkTextTraining = Translate("See training course", "See training course") 46 }; 47 } 48 <section class="o-training" id="@GetString("Global.ParagraphId")"> 49 <div class="container"> 50 <div class="row"> 51 <div class="col-xs-12 col-sm-8"> 52 @DisplayOTraining(new 53 { 54 type = "ELearning", 55 header = GetString("Item.ELearningHeader"), 56 teaser = GetString("Item.ELearningContent"), 57 productList = newArrayProductListELearning, 58 cardTexts = cardTexts, 59 productPageId = productPageId, 60 readMoreLink= readMoreLinkELearning, 61 readMoreLinkTitle= readMoreLinkTitleELearning 62 }) 63 </div> 64 <div class="col-xs-12 col-sm-4"> 65 @DisplayOTraining(new 66 { 67 type = "TrainingCourses", 68 header = GetString("Item.TrainingCoursesHeader"), 69 teaser = GetString("Item.TrainingCoursesContent"), 70 productList = new List<KeyValuePair<string, string>>(), 71 cardTexts = cardTexts, 72 productPageId = productPageId, 73 readMoreLink = readMoreLinkTrainingCourses, 74 readMoreLinkTitle = readMoreLinkTitleTrainingCourses 75 }) 76 </div> 77 </div> 78 </div> 79 </section> 80 81 82 83 84 85 86 87 @helper DisplayOTraining(dynamic colData) 88 { 89 bool isTrainingCourse = colData.GetType().GetProperty("type") != null && colData.type == "TrainingCourses"; 90 string modifier = isTrainingCourse ? "o-listTraining--small" : "o-listTraining--large"; 91 string header = colData.GetType().GetProperty("header") != null ? colData.header : ""; 92 string teaser = colData.GetType().GetProperty("teaser") != null ? colData.teaser : ""; 93 94 string productPageId = colData.GetType().GetProperty("productPageId") != null ? colData.productPageId : ""; 95 dynamic cardTexts = colData.GetType().GetProperty("cardTexts") != null ? colData.cardTexts : ""; 96 97 string readMoreLink = colData.GetType().GetProperty("readMoreLink") != null ? colData.readMoreLink : ""; 98 string readMoreLinkTitle = colData.GetType().GetProperty("readMoreLinkTitle") != null ? colData.readMoreLinkTitle : ""; 99100 IEnumerable<KeyValuePair<string, string>> productList = colData.GetType().GetProperty("productList") != null ? (IEnumerable<KeyValuePair<string, string>>)colData.productList : null; 101 int counter = 1; 102 var type = ""; 103104105 <div class="o-listTraining @modifier"> 106 <div class="o-listTraining__text"> 107 <h3 class="o-listTraining__header">@header</h3> 108 <div class="o-listTraining__teaser m-rich-text-editor"> 109 @teaser 110 </div> 111 </div> 112113 <div class="o-listTraining__cardsAndLinks"> 114 @if (productList.Any()) 115 { 116 <ul class="o-listTraining__list"> 117 @foreach (var ie in productList) 118 { 119 string prodId = ie.Value.Substring(2).TrimEnd(':'); 120 var prod = Dynamicweb.Ecommerce.Products.Product.GetProductById(prodId); 121 string prodName = prod.Name; 122 string prodImage = "/Files/Images/Products/" + prod.GetPropertyValue("Number") + ".jpg"; ; 123 //string prodImage = prod.ImageLarge.Replace(" ", "%20"); 124 string prodLink = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("default.aspx?id=" + productPageId + "&productId=" + prodId); 125 string prodTeaser = prod.ShortDescription; 126 if (type != ie.Key) 127 { 128 counter = 1; 129 type = ie.Key; 130 } 131 isTrainingCourse = type == "TrainingCoursesProduct"; 132133 string cardLinkText = isTrainingCourse || counter == 3 ? cardTexts.cardLinkTextTraining : cardTexts.cardLinkTextELearning; 134135 <li class="o-listTraining__listItem"> 136 <div class="m-cardImageText m-cardImageText--trainingList"> 137 <a href="@prodLink" class="m-cardImageText__link"> 138 <span class="m-cardImageText__label@(isTrainingCourse ? " training-course-label" : "")"> 139 @(isTrainingCourse ? (counter == 1 ? cardTexts.cardLabelTraining1 : cardTexts.cardLabelTraining2) : (counter == 1 ? cardTexts.cardLabelELearning1 : cardTexts.cardLabelELearning2)) 140 </span> 141 @{ 142 counter++; 143 } 144 <figure class="m-cardImageText__figure"> 145 <img class="lazyload lazyload-measure lazyload-bg a-image m-cardImageText__image" 146 src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" 147 alt="@prodName" 148 property="contentUrl" 149 data-src="@(prodImage)" 150 data-query-obj='{ "mode":"crop" , "quality":"80", "upscale":false }'> 151 <noscript> 152 <img src="@(prodImage)?mode=crop&width=350" 153 alt="@prodName"> 154 </noscript> 155 </figure> 156157 <h3 class="m-cardImageText__header">@prodName</h3> 158 <div class="m-cardImageText__body"> 159 @if (isTrainingCourse || counter == 3) 160 { 161 DateTime fromDateTime = Convert.ToDateTime(prod.GetCategoryValue("Class_room_training", "Course_date_start")); 162 DateTime toDateTime = Convert.ToDateTime(prod.GetCategoryValue("Class_room_training", "Course_date_end")); 163 string location = (prod.GetCategoryValue("Class_room_training", "Location") != null) ? prod.GetCategoryValue("Class_room_training", "Location").ToString() : ""; 164165 <p class="m-cardImageText__facts"> 166 @if (fromDateTime.ToString("dd-MM-yyyy") != "01-01-0001") 167 { 168 if (fromDateTime.Year == toDateTime.Year && fromDateTime.Month == toDateTime.Month) 169 { 170 @: @fromDateTime.ToString("%d")-@toDateTime.ToString("d MMM yyyy") 171 } 172 else 173 { 174 @fromDateTime.ToString("d MMM")<text> &ndash; </text>@toDateTime.ToString("d MMM yyyy") 175 } 176 } 177 <span class="m-cardImageText__place">@location</span> 178 </p> 179 } 180 <p class="m-cardImageText__teaser">@prodTeaser</p> 181 </div> 182183 <span class="m-cardImageText__linkFake"> 184 <span class="m-cardImageText__linkArrow"> 185 &rsaquo; 186 </span> 187 @cardLinkText 188 </span> 189 </a> 190 </div> 191 </li> 192 } 193 </ul> 194 } 195 @if (!string.IsNullOrEmpty(readMoreLink) && !string.IsNullOrEmpty(readMoreLinkTitle)) 196 { 197 <a href="@readMoreLink" title="@readMoreLinkTitle" class="a-link o-listTraining__readMoreLink" property="url">@readMoreLinkTitle</a> 198 } 199200 </div> 201202 </div> 203204 }
Navisuite trade in offer

NaviSuite trade-in offer

Would you like to upgrade your current software spread?

With the EIVA NaviSuite trade-in offer, you can get up to 85% off the price of the NaviSuite software product(s) that match(es) your current software setup by trading the latter for NaviSuite licences.