OBS! Den version af Internet Explorer, du benytter, er forældet. Vi anbefaler, du gør brug af en nyere browser, så du får den fulde oplevelse, når du besøger Rybners.dk

On- og offshore

Du får kompetencer til offshorebranchen og industrien på vores kurser.

Vi tilbyder både faglige kurser som fx instrumentrørlægger eller momenttilspænding/efterspænd af bolte i vores Styrings- og Reguleringscenter samt sikkerhedskurser i samarbejde med Rescue Center Denmark.

Din sikkerhed går forud for alt andet

Rescue Center Denmark tilbyder kurser i sikkerhed, når du arbejder i offshorebranchen eller vindindustrien. Rescue Center Denmark er GWO-certificeret. Det vil sige, at du kan tage kurser i vindmøllesikkerhed certificeret af Global Wind Organisation. Pas på dig selv og tag et sikkerhedskursus.

 


Styrings- og Reguleringscenter 

Vores Styrings- og Reguleringscenter er udstyret med elektriske, hydrauliske og pneumatiske systemer, hvor du får opgaver, som svarer til de krav, erhvervslivet stiller.

 


Karriere inden for on- og offshorebranchen

I vores quickguide giver vi dig inspiration til, hvordan du får en fod inden for branchen.

Se quickguide

Kommende kurser
 

Error executing template "/Designs/rybners/Paragraph/rybners-course-overview.cshtml"
Newtonsoft.Json.JsonSerializationException: Error getting value from 'UserPermissions' on 'Dynamicweb.Content.Area'. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Dynamicweb.Content.Area.get_UserPermissions()
at GetUserPermissions(Object )
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
--- End of inner exception stack trace ---
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.Converters.KeyValuePairConverter.WriteJson(JsonWriter writer, Object value, JsonSerializer serializer)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeConvertable(JsonWriter writer, JsonConverter converter, Object value, JsonContract contract, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)
at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, JsonSerializerSettings settings)
at CompiledRazorTemplates.Dynamic.RazorEngine_abe4ecd3051c4ef78edd8bcad7dabbe8.Execute() in E:\Dynamicweb.NET\Solutions\Co3\staging.rybners.espresso4.dk\Files\Templates\Designs\rybners\Paragraph\rybners-course-overview.cshtml:line 70
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.Rybners.Website.Services 3 @using Dynamicweb.Content 4 @using Dynamicweb.Frontend 5 @using Newtonsoft.Json 6 @using Page = Dynamicweb.Content.Page 7 @using PageService = Dynamicweb.Content.PageService 8 9 <div class="container-fluid"> 10 <div class="row"> 11 <div class="col-12"> 12 13 @{ 14 PageService ps = new PageService(); 15 PageCollection courseItemCollection = ps.GetPagesForItems( new[] { "CourseItem" } ); 16 17 object courseItemCategories = PageView.Current().Item[ "KursusKategorier" ]; 18 string[] courseCategories = courseItemCategories.ToString().ToLower().Trim().Replace( " ", "" ).Split( ',' ); 19 20 Dictionary< string, Page > matchingCourseCollection = new Dictionary< string, Page >(); 21 IEnumerable< Page > pagesWithCategory = courseItemCollection.Where( hc => courseCategories.Contains( hc.Item[ "KategoriNavn" ]?.ToString().ToLower().Trim().Replace( " ", "" ) ) ); 22 bool showAllCourses = false; 23 24 if (PageView.Current().Page.Item["ShowAllCourses"] != null ) 25 { 26 showAllCourses = (bool) PageView.Current().Page.Item["ShowAllCourses"]; 27 } 28 29 if ( showAllCourses == true ) 30 { 31 pagesWithCategory = courseItemCollection.Where( p => p.Area.ID == PageView.Current().Area.ID ); 32 } 33 34 List<Page> pagesWithCategoryWithoutHold = new List<Page>(); 35 36 37 foreach ( Page page in pagesWithCategory ) 38 { 39 Page teamPage = RybnersItemService.Instance.GetTeamsForCourse( page.ID ).OrderByDescending( c => 40 { 41 string courseDeadlineStr = c.Item["HoldTilmeldingsfrist"]?.ToString(); 42 DateTime courseDeadlineDate = new DateTime(); 43 DateTime.TryParse( courseDeadlineStr, out courseDeadlineDate ); 44 return courseDeadlineDate; 45 }).Take(1).FirstOrDefault(); 46 if ( teamPage != null ) 47 { 48 string holdId = teamPage.Item["HoldAktiId"].ToString(); 49 if (!matchingCourseCollection.ContainsKey( holdId )) 50 { 51 matchingCourseCollection.Add( holdId, teamPage ); 52 } 53 } 54 else 55 { 56 pagesWithCategoryWithoutHold.Add(page); 57 } 58 } 59 } 60 61 62 @if ( matchingCourseCollection.Any() ) 63 { 64 65 <ul class="rybners-course-overview"> 66 @foreach ( KeyValuePair< string, Page > firstTeamInCourse in matchingCourseCollection.OrderBy( c => (DateTime)c.Value.Item[ "HoldStartDato" ]) ) 67 { 68 string holdId = firstTeamInCourse.Value.Item[ "HoldAktiId" ]?.ToString(); 69 70 <script>console.log("%cTEXT", "color:white;background:rebeccapurple;padding:5px;", @Newtonsoft.Json.JsonConvert.SerializeObject(firstTeamInCourse, new JsonSerializerSettings {ReferenceLoopHandling = ReferenceLoopHandling.Ignore, PreserveReferencesHandling = PreserveReferencesHandling.Objects}));</script> 71 72 73 74 75 var teams = RybnersItemService.Instance.GetTeamsForCourse( firstTeamInCourse.Value.Parent.ID ); 76 var teamsSorted = teams.Where( t => ( DateTime ) t.Item[ "HoldStartDato" ] > DateTime.Now ); 77 var severalTeams = teamsSorted.Count() > 1; 78 79 var fagByCourseItemList = RybnersItemService.Instance.GetSchoolSubjectsForCourse( firstTeamInCourse.Value.Parent.ID ); 80 81 82 83 if ( firstTeamInCourse.Value != null && firstTeamInCourse.Value.Item != null && holdId != null ) 84 { 85 string courseName = firstTeamInCourse.Value.Item[ "HoldAktivitetsnavn" ]?.ToString(); 86 string courseType = firstTeamInCourse.Value.Parent.Item[ "AktivitetOfflineVisning" ]?.ToString(); 87 88 string courseStartStr = firstTeamInCourse.Value.Item[ "HoldStartDato" ]?.ToString(); 89 DateTime courseStartDate = new DateTime(); 90 DateTime.TryParse( courseStartStr, out courseStartDate ); 91 92 string courseEndStr = firstTeamInCourse.Value.Item[ "HoldSlutDato" ]?.ToString(); 93 DateTime courseEndDate = new DateTime(); 94 DateTime.TryParse( courseEndStr, out courseEndDate ); 95 96 string courseDeadlineStr = firstTeamInCourse.Value.Item[ "HoldTilmeldingsfrist" ]?.ToString(); 97 DateTime courseDeadlineDate = new DateTime(); 98 DateTime.TryParse( courseDeadlineStr, out courseDeadlineDate ); 99100 var fagItem = fagByCourseItemList.FirstOrDefault(); 101102 string courseDuration = null; 103 if ( fagItem != null ) 104 { 105 courseDuration = fagItem[ "SkoleFagVarighed" ].ToString(); 106 } 107 double courseDurationDouble; 108 double.TryParse( courseDuration, out courseDurationDouble ); 109 string courseUrl = string.Format( "Default.aspx?ID={0}", firstTeamInCourse.Value.Parent.ID ); 110111 courseUrl = SearchEngineFriendlyURLs.GetFriendlyUrl( courseUrl ); 112113 bool hasDeadlineInFurture = (courseDeadlineDate.Date) >= DateTime.Now.Date; 114115 bool isOpenCourseOrGuaranteed = hasDeadlineInFurture && ( (bool) firstTeamInCourse.Value.Item["HoldErGarantikursus"] == true || (string) firstTeamInCourse.Value.Item["HoldType"] == "av") ; 116117 bool isFull = (string)firstTeamInCourse.Value.Item["HoldStatus"] == "Optaget"; 118119120 bool isAllFull = true; 121122 foreach ( var d in teamsSorted ) 123 { 124 if ( (string)d.Item["HoldStatus"] != "Optaget" ) 125 { 126 isAllFull = false; 127 } 128 } 129130 if ( isAllFull ) 131 { 132 continue; 133 } 134135136137138 if ((courseDeadlineDate.Date) >= DateTime.Now.Date && teamsSorted.Any( t => ((int) t.Item["HoldLedigePladser"]) > 0 ) || isOpenCourseOrGuaranteed == true ) 139 { 140 <li class="align-self-center d-flex rybners-course-list w-100"> 141 <div class="course-name"> 142 <a href="@courseUrl"> 143 @if ( showAllCourses ) 144 { 145 <h5 class="mb-0 text-muted"> 146 @firstTeamInCourse.Value.Parent.Item["KategoriNavn"] 147 </h5> 148 <h3 class="mt-0">@courseName</h3> 149 } 150 else 151 { 152 <h3>@courseName</h3> 153 } 154155 </a> 156 </div> 157158 @if ( fagByCourseItemList.Count() > 1 ) 159 { 160 <div class="course-date small">Flere fag tilknyttet</div> 161 } 162 else 163 { 164 <div class="course-date small"> 165 <table class="table"> 166 @foreach (Page teamPage in teamsSorted.OrderBy( t => (DateTime)t.Item[ "HoldStartDato" ] )) 167 { 168 DateTime startDato = ( DateTime ) teamPage.Item[ "HoldStartDato" ]; 169 DateTime slutDato = ( DateTime ) teamPage.Item[ "HoldSlutDato" ]; 170 double freeSpots; 171 double.TryParse( teamPage.Item["HoldLedigePladser"]?.ToString(), out freeSpots ); 172 <tr> 173 <td class="px-0"> 174 @startDato.ToString("dd. MMM yyyy")- @slutDato.ToString("dd. MMM yyyy") 175 </td> 176 <td class=" px-0 text-right"> 177 <span class="badge p-1 badge-pill badge-secondary"> 178 @if ( freeSpots > 0) 179 { 180 <span>@freeSpots ledige pladser</span> 181 } 182 else 183 { 184 <span>Kontakt os</span> 185 } 186187 </span> 188 </td> 189 </tr> 190 } 191 </table> 192 </div> 193194 } 195 <div class="course-signup text-right"> 196 <a class="btn btn-sm " href="@courseUrl">@Translate( "Rybners Course module - Signup DA - Button", "Se mere og tilmeld" )</a> 197 <br /> 198 </div> 199 <div class="course-type text-left"> 200201 @if ( courseType == "amu" ) 202 { 203 <p class="mb-0 mr-2 float-left"><i class="material-icons">done</i> AMU-kursus</p> 204 } 205 else if ( courseType == "idv") 206 { 207 <p class="mb-0 mr-2 float-left"><i class="material-icons">done</i> IDV-kursus</p> 208 } 209 else 210 { 211 <p class="mb-0">@courseType</p> 212 } 213214 </div> 215 <div class="course-deadline text-right"> 216 @if ( fagByCourseItemList.Count() == 1 && (courseDeadlineDate.Date) >= DateTime.Now.Date ) 217 { 218 <small>@Translate( "Rybners Course module - Deadline DA - Text", "Tilmeldingsfrist:" )<br />@courseDeadlineDate.ToString( "dd. MMM yyyy" )</small> 219 } 220 </div> 221 </li> 222 } 223 } 224 } 225 </ul> 226 } 227 else 228 { 229 <p>Der er pt. ingen hold oprettet - @Translate( "Rybners Course module - Inactive contact DA - Text", "Kontakt skolen" )</p> 230 } 231232 <h2>Vi tilbyder også kurser indenfor:</h2> 233234 <ul class="rybners-course-overview"> 235236 @if ( matchingCourseCollection.Any() ) 237 { 238 foreach ( KeyValuePair<string, Page> coursePage in matchingCourseCollection ) 239 { 240241 string holdId = coursePage.Value.Item["HoldAktiId"]?.ToString(); 242 var fagByCourseItemList = RybnersItemService.Instance.GetSchoolSubjectsForCourse( coursePage.Value.Parent.ID ); 243 var teams = RybnersItemService.Instance.GetTeamsForCourse( coursePage.Value.Parent.ID ); 244 if ( coursePage.Value != null && coursePage.Value.Item != null && holdId != null ) 245 { 246 string courseName = coursePage.Value.Item["HoldAktivitetsnavn"]?.ToString(); 247 string courseType = coursePage.Value.Parent.Item["AktivitetOfflineVisning"]?.ToString(); 248249 string courseStartStr = coursePage.Value.Item["HoldStartDato"]?.ToString(); 250 DateTime courseStartDate = new DateTime(); 251 DateTime.TryParse( courseStartStr, out courseStartDate ); 252253 string courseEndStr = coursePage.Value.Item["HoldSlutDato"]?.ToString(); 254 DateTime courseEndDate = new DateTime(); 255 DateTime.TryParse( courseEndStr, out courseEndDate ); 256257 string courseDeadlineStr = coursePage.Value.Item["HoldTilmeldingsfrist"]?.ToString(); 258 DateTime courseDeadlineDate = new DateTime(); 259 DateTime.TryParse( courseDeadlineStr, out courseDeadlineDate ); 260261262 string courseUrl = string.Format( "Default.aspx?ID={0}", coursePage.Value.Parent.ID ); 263264 courseUrl = SearchEngineFriendlyURLs.GetFriendlyUrl( courseUrl ); 265266267 bool hasAnyFreeTeams = teams.Any( t => (DateTime) t.Item["HoldTilmeldingsfrist"] > DateTime.Now ); 268 bool hasAnyFreeSpots = teams.Any(t => (int)t.Item["HoldLedigePladser"] > 0); 269 bool isFull = (string)coursePage.Value.Item["HoldStatus"] == "Optaget"; 270271 bool isAllFull = true; 272273 foreach ( var d in teams ) 274 { 275 if ( (string)d.Item["HoldStatus"] != "Optaget" ) 276 { 277 isAllFull = false; 278 } 279 } 280281 if ( isAllFull ) 282 { 283 continue; 284 } 285286287 bool isOpenCourseOrGuaranteed = teams.Any(t => (bool)t.Item["HoldErGarantikursus"] == true || (string)t.Item["HoldType"] == "av" ) && hasAnyFreeTeams; 288289 if ( isAllFull == true || isOpenCourseOrGuaranteed == false && (hasAnyFreeTeams == false || hasAnyFreeSpots == false) ) 290 { 291 <li class="align-self-center d-flex rybners-course-list rybners-course-list-others w-100"> 292 <div class="course-name small"> 293 <h3 class="small"> 294 <a href="@courseUrl"> 295 @courseName 296 </a> 297 </h3> 298 </div> 299300 <div class="text-right">@Translate( "Rybners Course module - Inactive contact DA - Text", "Kontakt skolen" )</div> 301 </li> 302 } 303 } 304 } 305 } 306307308309310 @foreach ( Page fagsideWithoutHold in pagesWithCategoryWithoutHold ) 311 { 312 bool showFag = bool.Parse(fagsideWithoutHold.Item["AktivitetVisesOffline"]?.ToString() ?? bool.FalseString); 313 bool activeFag = bool.Parse(fagsideWithoutHold.Item["AktivitetVisible"]?.ToString() ?? bool.FalseString); 314315 if ( activeFag == true && showFag == true ) 316 { 317 string courseName = fagsideWithoutHold.Item["AktivitetNavn"]?.ToString(); 318 string courseUrl = string.Format( "Default.aspx?ID={0}", fagsideWithoutHold.ID ); 319320 courseUrl = SearchEngineFriendlyURLs.GetFriendlyUrl( courseUrl ); 321322 <li class="align-self-center d-flex rybners-course-list rybners-course-list-others w-100"> 323 <div class="course-name small"> 324 <h3 class="small"> 325 <a href="@courseUrl"> 326 @courseName 327 </a> 328 </h3> 329 </div> 330331 <div class="text-right">@Translate( "Rybners Course module - Inactive contact DA - Text", "Kontakt skolen" )</div> 332 </li> 333 } 334 } 335 </ul> 336337 </div> 338 </div> 339 </div> 340

Kontakt

 

Susanne Ellehage Justesen

Account manager

smartphone+4541999400

mailsej@rybners.dk

Susanne Ellehage Justesen


Camilla Eve Jessen

Full-service koordinator

smartphone+45 2071 5178

mailcej@rybners.dk

Camilla Eve Jessen

keyboard_arrow_up