Närko AB
U 2131
O.B. Wiik A/S
U 2470
O.B.Wiik designs and delivers mission-ready structures for defence operations worldwide. We support military forces and organisations operating in some of the world’s most demanding environments.Our deployable hangars are engineered for front-line operations, exercises, and contingency response. Modular and demountable by design, they provide secure, flexible protection for aircraft, helicopters, RPAS, and vehicles.
O2matic ApS
U 2448
Obsima AB
C 2524
Meet Obsima at DALO Industry DaysObsima AB is a Nordic partner for defence, law enforcement and security organisations. We provide selected solutions for training, tactical electronics, field operations and operational support.At DALO Industry Days, we present equipment and expertise that help users train realistically, operate safely and strengthen readiness in demanding environments. Our offering includes tactical training systems, range and target solutions, tactical electronics, communication-related equipment, field equipment and support solutions for professional users.We focus on understanding operational needs and delivering solutions
6 post
latest from 25. June 2026
Obsima Technology AS
C 2520
Obsima Technology AS is an independent Norwegian provider of tactical electronics, training solutions, and service & support to defence, emergency services, and industry. Founded in 1998, the company has more than 25 years of experience with mission-critical systems.Obsima works closely with leading manufacturers to deliver tailored solutions and long-term support to its customers. The company is headquartered in Norway and has also established Obsima ApS as a sister company in Denmark.
Ocotec Oy
U 2372
Ocotec spcialises in engineering and manufacturing customer-specific shielding solutions for devices and systems against RF/EMI/EMP/TEMPEST and other harmful interference. We provide our clients with customisable and bespoke shielding solutionsOur products include cabinets, racks, enclosures, chambers, rooms, tunnels, consoles, access doors and hatches. We also engineer and manufacture modular maintenance drawer systems for land, seä and air vehicles and systems.In addition to our own OEM products and customized protection solutions, the company also manufactures specialised sheet metal products as a subcontractor.We have over 40 years of eng
Error executing template "Designs/exhibition_site/QueryPublisher/partials/mch365-exhibitor-item.cshtml" System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Co3.MCH.Website.Frontend.Services.MCH365.ProfileService.GetProfileSubAssetInfo(Profile profile) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Services\MCH365\ProfileService.cs:line 107 at Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct.get_SubAssetInfo() in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Models\Frontend\Ecommerce\ProfileProduct.cs:line 55 at CompiledRazorTemplates.Dynamic.RazorEngine_77ab0b72fcdc41b09e916d3d66758e66.Execute() in E:\Websites\mch365.espresso5.dk\Files\Templates\Designs\exhibition_site\QueryPublisher\partials\mch365-exhibitor-item.cshtml:line 203 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 Co3.Espresso.Website.Services 2 @using Co3.MCH.Data.Models.MCH365 3 @using Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce 4 @using Dynamicweb 5 @using ProductService = Co3.MCH.Website.Frontend.Services.Ecommerce.ProductService 6 @inherits Dynamicweb.Rendering.ViewModelTemplate<Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct> 7 8 @{ 9 bool hasPresentation = Model.HasPresentation; 10 bool companyBookMeeting = Model.Contact.BookMeeting; 11 bool companyDirectContact = Model.Contact.DirectContact; 12 string companyEmail = Model.Company.Email; 13 IEnumerable<BoothInfo> booths = Model.Booths; 14 15 List<ContactPersonProduct> contactPersons; 16 17 string profileText; 18 19 20 if (hasPresentation) 21 { 22 contactPersons = Model.Presentation.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 23 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Presentation.DescriptionFormatted, 650); 24 } 25 else 26 { 27 contactPersons = Model.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 28 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Company.DescriptionFormatted, 650); 29 } 30 31 string listViewMode = string.IsNullOrEmpty(Context.Current.Session["ListViewMode"]?.ToString()) ? "expanded" : Context.Current.Session["ListViewMode"]?.ToString(); 32 if (listViewMode == "condensed") 33 { 34 <div data-listViewMode="@listViewMode" class="w-100 bg-ultralight border-radius mt-half e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 35 <div class="e-productlist-item-container container-fluid h-100"> 36 <div class="row h-100"> 37 <div class="col-12 p-1 mch365-productlist-item-content-wrapper item-condensed flex-row"> 38 <div class="item-condensed-title"> 39 <div class="d-flex mr-3"> 40 <div class="condensed-list-logo mr-1"> 41 @if (Model?.Company?.Logo != null) 42 { 43 string logoImage = Model.Company.Logo; 44 string companyBackgroundColor = Model.Company.BrandColor; 45 string noCompanyInfo = ""; 46 string textLight = "e-text-light"; 47 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 48 { 49 noCompanyInfo = "bg-light"; 50 textLight = "text-muted"; 51 } 52 53 string noLogoBackground = ""; 54 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 55 { 56 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 57 } 58 59 <div class="e-productlist-item-image-container @noCompanyInfo mb-0" @noLogoBackground> 60 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 61 @{ 62 if (string.IsNullOrEmpty(logoImage)) 63 { 64 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 65 } 66 else 67 { 68 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 69 } 70 } 71 72 </a> 73 </div> 74 } 75 </div> 76 <div> 77 <h4 class="mb-0 font-weight-extrabold line-clamp-1">@Model.Company.Name</h4> 78 <p class="small line-height-sm mb-0 mt-1 line-clamp-2"> 79 @profileText 80 </p> 81 </div> 82 </div> 83 </div> 84 <div class="item-condensed-booth"> 85 @if (booths != null) 86 { 87 if (booths.Count() == 1) 88 { 89 BoothInfo booth = booths.FirstOrDefault(); 90 if (booth.Hall != null && booth.Booth != null) 91 { 92 <p class="small mb-0"> 93 <small>@Translate("MCH365 - Profile booth - Text", "Stand")</small> 94 </p> 95 <h4 class="mt-half mb-0 font-weight-extrabold mr-xl-2" style="white-space: nowrap"> 96 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number </span> 97 </h4> 98 } 99 } 100 else 101 { 102 <div class="align-items-baseline d-inline-flex flex-wrap justify-content-end justify-content-xl-start mb-1"> 103 <p class="small w-100 mb-0"> 104 <small>@Translate("MCH365 - Profile booths - Text", "Stande")</small> 105 </p> 106 @foreach (BoothInfo booth in booths) 107 { 108 if (booth.Hall != null && booth.Booth != null) 109 { 110 <h4 class="font-weight-extrabold mb-0 ml-1 ml-xl-0 mr-xl-1 mt-half text-muted" style="white-space: nowrap"> 111 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 112 </h4> 113 } 114 } 115 </div> 116 } 117 } 118 </div> 119 <div class="item-condensed-subasset"> 120 @if (Model.SubAssetInfo.Count > 0) 121 { 122 <p class="mb-0 font-weight-bold"> 123 <small>@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</small> 124 </p> 125 <p class="small mb-0 mt-half font-weight-normal d-none d-md-block">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 126 } 127 </div> 128 <div class="item-condensed-contacts"> 129 @if (contactPersons.Any()) 130 { 131 <div class="mt-auto"> 132 <p class="d-block mb-0 text-right"> 133 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 134 </p> 135 </div> 136 } 137 </div> 138 <div class="item-condensed-options"> 139 @if (!string.IsNullOrEmpty(companyEmail)) 140 { 141 <div class="d-flex small align-items-center justify-content-end mch365-custom-productlist-cta"> 142 @if (companyDirectContact) 143 { 144 <span class="mch365-custom-productlist-cta-icon"> 145 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")" alt="" role="presentation"/> 146 </span> 147 } 148 @if (companyBookMeeting) 149 { 150 <span class="mch365-custom-productlist-cta-icon"> 151 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")" alt="" role="presentation"/> 152 </span> 153 } 154 </div> 155 } 156 </div> 157 </div> 158 </div> 159 </div> 160 </div> 161 } 162 else 163 { 164 <div class="w-100 bg-ultralight border-radius my-1 e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 165 <div class="e-productlist-item-container container-fluid h-100"> 166 <div class="row h-100"> 167 <div class="col-9 col-lg-7 col-xl-8 p-1 p-lg-2 mch365-productlist-item-content-wrapper"> 168 <h3 class="mb-0 font-weight-extrabold">@Model.Company.Name</h3> 169170 @if (booths != null) 171 { 172 if (booths.Count() == 1) 173 { 174 BoothInfo booth = booths.FirstOrDefault(); 175 if (booth.Hall != null && booth.Booth != null) 176 { 177 <h3 class="mt-0 mb-1 font-weight-extrabold"> 178 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 179 </h3> 180 } 181 } 182 else 183 { 184 <div class="d-inline-flex flex-wrap mb-1"> 185 @foreach (BoothInfo booth in booths) 186 { 187 if (booth.Hall != null && booth.Booth != null) 188 { 189 <h3 class="mt-0 mb-0 font-weight-extrabold mr-1" style="white-space: nowrap"> 190 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 191 </h3> 192 } 193 } 194 </div> 195 } 196 } 197198 <p class="small line-height-sm mb-2 mt-1 line-clamp-10"> 199 @profileText 200 </p> 201202203 @if (Model.SubAssetInfo.Count > 0) 204 { 205 <span class="mch365-productlist-item-bulletin-wrapper mt-auto"> 206 <h4 class="mb-0">@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</h4> 207 <p class="small mb-0 mt-half font-weight-normal">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 208 </span> 209 } 210211 </div> 212 <div class="col-3 col-lg-5 col-xl-4 bg-light p-1 p-lg-2 mch365-productlist-item-sidebar-wrapper"> 213214 @if (Model?.Company?.Logo != null) 215 { 216 string logoImage = Model.Company.Logo; 217 string companyBackgroundColor = Model.Company.BrandColor; 218219 string noCompanyInfo = ""; 220 string textLight = "e-text-light"; 221222 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 223 { 224 noCompanyInfo = "bg-light"; 225 textLight = "text-muted"; 226 } 227228 string noLogoBackground = ""; 229 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 230 { 231 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 232 } 233234 <div class="e-productlist-item-image-container @noCompanyInfo" @noLogoBackground> 235 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 236 @{ 237 if (string.IsNullOrEmpty(logoImage)) 238 { 239 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 240 } 241 else 242 { 243 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 244 } 245 } 246247 </a> 248 </div> 249 } 250251 @if (!string.IsNullOrEmpty(companyEmail)) 252 { 253 <div class="small flex-column mb-2"> 254 @if (companyDirectContact) 255 { 256 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 257 <span class="mch365-custom-productlist-cta-icon"> 258 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" alt="" role="presentation"/> 259 </span><span>@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")</span> 260 </span> 261 } 262 @if (companyBookMeeting) 263 { 264 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 265 <span class="mch365-custom-productlist-cta-icon"> 266 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" alt="" role="presentation"/> 267 </span><span>@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")</span> 268 </span> 269 } 270 </div> 271 } 272 @if (contactPersons.Any()) 273 { 274 <div class="mt-auto"> 275 <ul class="mch365-productlist-custom-contact-persons"> 276277 @foreach (ContactPersonProduct contactPerson in contactPersons.OrderBy(cp => cp.Sort).Take(3)) 278 { 279 string noImageClasses = ""; 280 string contactPersonImage = contactPerson.Image; 281 if (string.IsNullOrEmpty(contactPersonImage)) 282 { 283 contactPersonImage = "/Files/Templates/Designs/mch365_admin/_assets/img/mch365-noimage.svg"; 284 noImageClasses = "bg-white"; 285 } 286287 <li class="animate animate-triggered fadeIn animate-show @noImageClasses" style="background-image: url('/admin/public/getimage.ashx?Image=@contactPersonImage&Width=100&Height=100&Format=webp&Quality=75&Crop=0');" title="@contactPerson.Name"></li> 288 } 289290 @if (contactPersons.Count() > 3) 291 { 292 <li class="mch365-productlist-custom-contact-persons-add"> </li> 293 } 294295 </ul> 296 <p class="d-block mb-0 mt-1 small text-center"> 297 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 298 </p> 299 </div> 300 } 301 </div> 302 </div> 303 </div> 304 </div> 305 } 306 }
Odense Robotics
D 3174
Odense Robotics is Denmark’s national robotics, automation and drone cluster. We help robotics and drone companies innovate and grow. Together, we realise the potential of Danish robotics and drone technology.In addition, we organize the Northern Europe's largest drone conference, the International Drone Show, which will take place again next year in Odense on 2–3 June 2027.
3 post
latest from 2. June 2025
ODU Denmark ApS
D 3316
Headquartered in Germany and operating globally, ODU develops and manufactures high‑performance connectors and complete interconnect solutions that ensure the safe and reliable transmission of power, signals, data, and media—even under extreme conditions.For military applications, ODU offers a broad portfolio of rugged connector solutions, including circular and modular connectors such as the ODU AMC® and the ODU‑MAC® connector families. These solutions are engineered for high-speed transmission, reduced size and weight, and maximum reliability in the field. They are used in mission‑critical applications such as soldier communication syste
22 post
latest from 24. July 2026
OEM Automatic AB
D 3320
9 post
latest from 10. June 2026






