/// <summary> /// Fügt ein neues Video in die Datenbank ein.</summary> /// <param name="videoTitel">Video Titel (Pflicht Parameter).(max. 100 Zeichen)</param> /// <param name="videoBeschreibung">Text zum Video.(max 255 Zeichen)</param> /// <param name="videoPfad">URL oder lokaler Pfad(max 255 Zeichen)</param> /// <param name="videoThumbnail">Image in Hexadecimaler-form</param> /// <param name="videoDatum">Video erscheinungsdatum</param> /// <param name="videoPlattform">Video Plattform wird standardmässig auf unbestimmt gesetzt.</param> public void VideoHinzufuegen(string videoTitel, string videoBeschreibung = "", string videoPfad = "", string videoThumbnail = "", DateTime? videoDatum = null, Plattform videoPlattform = Plattform.Unbestimmt) { if (!string.IsNullOrEmpty(videoTitel)) { if (!videoExistiert(videoTitel)) { connection.Open(); string insertVideo = @"INSERT INTO Video (VideoId, VideoTitel, VideoBeschreibung, VideoPfad, VideoThumbnail, VideoDatum, VideoPlattformId) VALUES (null,'" + ParseText(videoTitel) + "', " + "'" + ParseText(videoBeschreibung) + "', " + "'" + videoPfad + "', " + "X'" + videoThumbnail + "', " + "'" + videoDatum.Value + "', " + "'" + GetVideoPlattforms().Where(e => e.plattform == videoPlattform).SingleOrDefault().VideoPlattformId.ToString() + "');"; executeQuery(insertVideo); connection.Close(); } else { throw new Exception(string.Format("Video: {0} bereits vorhanden.", ParseText(videoTitel))); } } else { throw new Exception("Videotitel fehlt!!"); } }
/// <summary> /// Ändert User-Eigenschaften zu der ensprechenden VideoId. Wenn Die Werte "" oder null(bei Datum) gesetzt werden, werden diese Eigenschaften nicht überschrieben. /// Beispiel: controllerDatabase.VideoUpdate(controllerDatabase.GetAllVideos().Where(e => e.VideoTitel == "Dark Knight").FirstOrDefault().VideoId,"","Toller Film","","",null); /// </summary> /// <param name="videoId">VideoId. Pflicht Parameter.</param> /// <param name="videoTitel">Video Titel. Optionaler Parameter.(max. 100 Zeichen)</param> /// <param name="videoBeschreibung">Video Beschreibung. Optionaler Parameter.(Kann leer sein)(max. 255 Zeichen)</param> /// <param name="videoPfad">Video Pfad. Optionaler Parameter.(Kann leer sein)(max. 255 Zeichen)</param> /// <param name="videoThumbnail">Video Thumbnail in Hexadezimaler Form (Kann leer sein)</param> /// <param name="videoDatum">Video Datum. Optionaler Parameter.(Kann null sein)</param> /// <param name="videoDatum">Video Datum. Optionaler Parameter.(Kann null sein)</param> /// <param name="videoPlattform">Video Plattform wird standardmässig auf unbestimmt gesetzt.</param> public void VideoUpdate(int? videoId, string videoTitel = "", string videoBeschreibung = "", string videoPfad = "", string videoThumbnail = "", DateTime? videoDatum = null, Plattform videoPlattform = Plattform.Unbestimmt) { if (videoId != null) { connection.Open(); if (keineVideoEigenschaftenGesetzt(videoTitel, videoBeschreibung, videoPfad, videoThumbnail, videoDatum, videoPlattform)) { throw new Exception("No Properties are set for Update"); } else { string updateVideo = getUpdateVideoQuery(videoId.Value, videoTitel, videoBeschreibung, videoPfad, videoThumbnail, videoDatum, videoPlattform); executeQuery(updateVideo); } connection.Close(); } else { throw new Exception("Video nicht vorhanden."); } }
/// <summary> /// Erzeugt ein Update-Query String aus den übergebenen Parametern /// </summary> private bool keineVideoEigenschaftenGesetzt(string videoTitel, string videoBeschreibung, string videoPfad, string videoThumbnail, DateTime? videoDatum, Plattform videoPlattform) { return (videoTitel == string.Empty && videoBeschreibung == string.Empty && videoPfad == string.Empty && videoThumbnail == string.Empty && videoDatum == null && videoPlattform == Plattform.Unbestimmt) ? true : false; }
/// <summary> /// Erzeugt ein Update-Query String aus den übergebenen Parametern /// </summary> /// <param name="videoId">VideoId. Pflicht Parameter.</param> /// <param name="videoTitel">Video Titel. Optionaler Parameter.(max. 100 Zeichen)</param> /// <param name="videoBeschreibung">Video Beschreibung. Optionaler Parameter.(Kann leer sein)(max. 255 Zeichen)</param> /// <param name="videoPfad">Video Pfad. Optionaler Parameter.(Kann leer sein)(max. 255 Zeichen)</param> /// <param name="videoThumbnail">Video Thumbnail in Hexadezimaler Form (Kann leer sein)</param> /// <param name="videoDatum">Video Datum. Optionaler Parameter.(Kann null sein)</param> /// <param name="videoDatum">Video Datum. Optionaler Parameter.(Kann null sein)</param> /// <param name="videoPlattform">Video Plattform erwartet standardmässig Plattform.Unbestimmt</param> private string getUpdateVideoQuery(int videoId, string videoTitel, string videoBeschreibung, string videoPfad, string videoThumbnail, DateTime? videoDatum, Plattform videoPlattform) { string updateVideo = @"UPDATE Video set "; bool firstValueExists = false; if (videoTitel != string.Empty) { updateVideo += getEigenschaftUpdate("VideoTitel", ParseText(videoTitel), firstValueExists); firstValueExists = true; } if (!firstValueExists) { updateVideo = string.Concat(updateVideo, " VideoBeschreibung='" + ParseText(videoBeschreibung) + "'"); firstValueExists = true; } else { updateVideo = string.Concat(updateVideo, ", VideoBeschreibung='" + ParseText(videoBeschreibung) + "'"); } if (videoPfad != string.Empty) { updateVideo += getEigenschaftUpdate("VideoPfad", ParseText(videoPfad), firstValueExists); firstValueExists = true; } if (videoThumbnail != string.Empty) { if (!firstValueExists) { updateVideo = string.Concat(updateVideo, " VideoThumbnail=X'" + videoThumbnail + "'"); firstValueExists = true; } else { updateVideo = string.Concat(updateVideo, ", VideoThumbnail=X'" + videoThumbnail + "'"); } } if (videoDatum != null) { updateVideo += getEigenschaftUpdate("VideoDatum", videoDatum.ToString(), firstValueExists); firstValueExists = true; } if (videoPlattform != Plattform.Unbestimmt) { var videoPlatform = GetVideoPlattforms().Where(e => e.plattform == videoPlattform).SingleOrDefault().VideoPlattformId.ToString(); updateVideo += getEigenschaftUpdate("VideoPlattformId", videoPlatform, firstValueExists); firstValueExists = true; } updateVideo = string.Concat(updateVideo, " WHERE VideoId= ", videoId.ToString(), ";"); return updateVideo; }
/// <summary> /// Filter die Liste aller Videos nach den übergebenen Suchparametern /// </summary> /// <param name="suchbegriff">Suchbegriff, Titel und Beschreibung werden danach durchsucht</param> /// <param name="einstellzeitraum">Einstellzeitraum, bspw. letzte Woche</param> /// <param name="plattform">Plattform</param> /// <returns>Liste mit passenden Videos</returns> public List<Video> VideoSuchen(string suchbegriff, Einstellzeitraum einstellzeitraum, Plattform plattform) { // suchparams an db übergeben, response anzeigen // keine überprüfung auf leere parameter, da sie teilweise leer sein dürfen var videos = this.datenbank.GetAlleVideos(); // TODO: Filtern nach Plattform switch (plattform) { case Plattform.Online: videos = videos.Where(v => v.VideoPlattformId == (int)plattform).ToList(); break; case Plattform.Lokal: videos = videos.Where(v => v.VideoPlattformId == (int)plattform).ToList(); break; } // Filtern nach Einstellzeitraum switch (einstellzeitraum) { case Einstellzeitraum.Heute: videos = videos.Where(f => (DateTime.Now - f.VideoDatum).TotalDays < 1).ToList(); break; case Einstellzeitraum.LetzteWoche: videos = videos.Where(f => (DateTime.Now - f.VideoDatum).TotalDays < 7).ToList(); break; case Einstellzeitraum.LetzterMonat: videos = videos.Where(f => (DateTime.Now - f.VideoDatum).TotalDays < 30).ToList(); break; case Einstellzeitraum.LetztesJahr: videos = videos.Where(f => (DateTime.Now - f.VideoDatum).TotalDays < 365).ToList(); break; } // Filtern nach Suchbegriff if (!String.IsNullOrWhiteSpace(suchbegriff) && !suchbegriff.Equals("Suchbegriff (z.B. Star Wars)")) { videos = videos.Where(f => f.VideoTitel.ContainsIgnoreCase(suchbegriff) || f.VideoBeschreibung.ContainsIgnoreCase(suchbegriff)).ToList(); } if (videos.Count < 1) { this.MeldungAnzeigen("Keine Suchergebnisse gefunden."); } // Gefunden Videos zurückgeben return videos; }
/// <summary> /// Speichert die übergebenen Parameter als Video in der Datenbank /// </summary> /// <param name="videoId">Id des Videos, -1 bei neuen Videos, ansonsten das Video, das aktualisiert werden soll</param> /// <param name="titel">Titel des Videos</param> /// <param name="erstellungsDatum">Einstelldatum des Videos</param> /// <param name="beschreibung">Beschreibung</param> /// <param name="plattform">Plattform auf dem das Video liegt (lokal oder online)</param> /// <param name="pfad">Pfad/URL des Videos</param> /// <param name="thumbnailPfad">Pfad/URL des Video-Thumbnails</param> public void VideoSpeichern(int videoId, string titel, DateTime erstellungsDatum, string beschreibung, Plattform plattform, string pfad, string thumbnailPfad) { // Daten kommen aus Videoverwaltung View (für neues video und video bearbeiten) // thumbnail und beschreibung darf leer sein, plattform kann nicht null sein (enum) if (!String.IsNullOrWhiteSpace(titel) && !String.IsNullOrWhiteSpace(pfad) && Validierung.ValidiereVideoPfad(pfad)) { try { // Thumbnail laden var thumbnail = Bildverarbeitung.GetHexStringVonThumbnailPfad(thumbnailPfad); // An DB Funktion übergeben if (videoId == -1) { this.datenbank.VideoHinzufuegen(titel, beschreibung, pfad, thumbnail, erstellungsDatum, (Videoverwaltung.Datenbank.Modell.Plattform)plattform); } else { var standardThumbnail = Bildverarbeitung.GetHexStringVonThumbnailPfad(""); if (thumbnail == standardThumbnail) { var video = this.datenbank.GetAlleVideos().Where(e => e.VideoId == videoId).FirstOrDefault(); if (video != null) { // Video hat bereits ein Thumbnail if (video.VideoThumbnail.Length > 0) { this.datenbank.VideoUpdate(videoId, titel, beschreibung, pfad, "", erstellungsDatum, (Videoverwaltung.Datenbank.Modell.Plattform)plattform); } else { this.datenbank.VideoUpdate(videoId, titel, beschreibung, pfad, thumbnail, erstellungsDatum, (Videoverwaltung.Datenbank.Modell.Plattform)plattform); } } } else { this.datenbank.VideoUpdate(videoId, titel, beschreibung, pfad, thumbnail, erstellungsDatum, (Videoverwaltung.Datenbank.Modell.Plattform)plattform); } } if (this.hauptfenster != null) // if Abfrage nur wegen Test-Datensätzen vorhanden { this.hauptfenster.ZeichneListe(this.LadeAlleVideos()); } } catch (Exception exception) { this.MeldungAnzeigen(exception.Message); } } else { // Fehlermeldung this.MeldungAnzeigen("Titel, Beschreibung, Pfad und Erstellungsdatum dürfen nicht leer sein. Achten Sie auch darauf, dass der Pfad gültig ist."); } }
public override Container ObjectStructure(List <BIS_GrundObjekt> bisList) { var formattedBisList = bisList; Container container = new Container(); //All softypes must be aggregated before they are added to the container var containerSoftTypes = new List <SoftType>(); //Sort this mess out at some point var geoPlaceringar = new List <GeografiskPlaceringsreferensInstances>(); var plattformsProdukter = new List <AnläggningsproduktInstances>(); var plattformsFunktioner = new List <FunktionellAnläggningInstances>(); var plattformVäderskydd = new List <AnläggningsproduktInstances>(); var plattformStyckevaror = new List <StyckevaraInstances>(); var plattformSkylt = new List <AnläggningsproduktInstances>(); var plattformSkyltIndivid = new List <StyckevaraInstances>(); var plattformKanalisation = new List <AnläggningsproduktInstances>(); var plattformKanalisationIndivid = new List <StyckevaraInstances>(); var plattformIndivider = new List <StyckevaraInstances>(); //Does all the real mapping against ANDA resources foreach (BIS_Plattform bisPlattform in formattedBisList) { var suffix = bisPlattform.ObjektTypNummer + bisPlattform.ObjektNummer + ExtraCounter; //Noterings fix bisPlattform.Notering = string.IsNullOrEmpty(bisPlattform.Notering) ? "Ingen Notering" : bisPlattform.Notering; var plattform = new Plattform { name = "Plattform", notering = bisPlattform.Notering, versionId = _VersionId, företeelsetyp = new ClassificationReference_GeografiskPlaceringsreferens_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTGeografiskPlaceringsreferensReference { softType = "FTGeografiskPlaceringsreferens", instanceRef = "Plattform" } } }; plattform.id = plattform.name + suffix; var plattformGPR = new GeografiskPlaceringsreferensEntrydefaultIn { Array = true, id = "Plattform" + suffix, inputSchemaRef = _InputSchemaRef, data = plattform }; geoPlaceringar.Add(plattformGPR); var plattformsProduktInstans = new AnläggningsproduktEntrydefaultIn { Array = true, inputSchemaRef = _InputSchemaRef, id = "PlattformProduktAnläggningsprodukt" + suffix }; var plattformprodukt = new Plattformprodukt { notering = bisPlattform.Notering, name = "Plattformprodukt", versionId = _VersionId, stringSet = new PlattformproduktStringSet { PlattformBeläggning = SkapaPlattformBeläggning(bisPlattform, new Plattformprodukt_PlattformBeläggning()), plattformskantMaterial = SkapaPlattformKantMaterial(bisPlattform, new Plattformprodukt_plattformskantMaterial()), nominellHöjd = new Plattformprodukt_nominellHöjd { generalProperty = new nominellHöjd { instanceRef = "nominellHöjd", softType = _SoftTypeProperty }, value = bisPlattform.Höjd, JSonMapToPropertyName = _JsonMapToValue } }, numericSet = new PlattformproduktNumericSet { verkligHöjd = SkapaVerkligHöjd(bisPlattform, new Plattformprodukt_verkligHöjd()), längd = new Plattformprodukt_längd { generalProperty = new längd { instanceRef = "längd", softType = _SoftTypeProperty }, value = bisPlattform.Längd, JSonMapToPropertyName = _JsonMapToValue, Unit = new m { instanceRef = "m", softType = "Unit" } }, bredd = new Plattformprodukt_bredd { generalProperty = new bredd { instanceRef = "bredd", softType = _SoftTypeProperty }, value = bisPlattform.Bredd, JSonMapToPropertyName = _JsonMapToValue, Unit = new m { instanceRef = "m", softType = "Unit" } } }, företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTAnläggningsproduktReference { softType = "FTAnläggningsprodukt", instanceRef = "Plattformprodukt" } } }; plattformprodukt.id = plattformprodukt.name + suffix; plattformsProduktInstans.data = plattformprodukt; plattformsProdukter.Add(plattformsProduktInstans); var plattformsFunktionInstans = new FunktionellAnläggningEntrydefaultIn { Array = true, inputSchemaRef = _InputSchemaRef, id = "PlattformFunktionFunktionell" + suffix }; var plattformFunktion = new Plattformfunktion { notering = bisPlattform.Notering, name = "PlattformFunktion", versionId = _VersionId, stringSet = new PlattformfunktionStringSet { harFotsteg = SkapaPlattformFotsteg(bisPlattform, new Plattformfunktion_harFotsteg()), harPlattformsutrustning = SkapaPlattformUtrustning(bisPlattform, new Plattformfunktion_harPlattformsutrustning()), harSkyddsräcken = SkapaPlattformSkyddsräcken(bisPlattform, new Plattformfunktion_harSkyddsräcken()) }, numericSet = new PlattformfunktionNumericSet(), företeelsetyp = new ClassificationReference_FunktionellAnläggning_företeelsetyp { @class = new FTFunktionellAnläggningReference { softType = "FTFunktionellAnläggning", instanceRef = "Plattformfunktion" } } }; plattformFunktion = SkyddzonOchLedstråk(bisPlattform, plattformFunktion, new Plattformfunktion_harLedstråk(), new Plattformfunktion_harSkyddszon()); plattformFunktion.id = plattformFunktion.name + suffix; plattformsFunktionInstans.data = plattformFunktion; plattformsFunktioner.Add(plattformsFunktionInstans); //Skydd eller Tak var plattformAnläggningsProduktInstans = new AnläggningsproduktEntrydefaultIn { Array = true, id = "PlattformVäderskyddOchSkärmtakAnläggningsprodukt" + suffix, inputSchemaRef = _InputSchemaRef }; var plattformStyckevaraInstans = new StyckevaraEntrydefaultIn { Array = true, id = "PlattformVäderskyddOchSkärmtakStyckevara" + suffix, inputSchemaRef = _InputSchemaRef }; var väderskyddProdukt = new Väderskyddprodukt { name = "Väderskyddprodukt", notering = bisPlattform.Notering, versionId = _VersionId, företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTAnläggningsproduktReference { softType = "FTAnläggningsprodukt", instanceRef = "Väderskyddprodukt" } } }; väderskyddProdukt.id = väderskyddProdukt.name + suffix; var väderskyddIndivid = new Väderskyddindivid { startSpecified = false, endSpecified = false, name = "Väderskyddindivid", notering = bisPlattform.Notering, versionId = _VersionId, företeelsetyp = new ClassificationReference_Styckevara_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTStyckevaraReference { softType = "FTStyckevara", instanceRef = "Väderskyddindivid" } } }; väderskyddIndivid.id = väderskyddIndivid.name + suffix; var skärmtakProdukt = new Skärmtakprodukt { name = "Skärmtakprodukt", notering = bisPlattform.Notering, versionId = _VersionId, företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTAnläggningsproduktReference { softType = "FTAnläggningsprodukt", instanceRef = "Skärmtakprodukt" } } }; skärmtakProdukt.id = skärmtakProdukt.name + suffix; var skärmtakIndivid = new Skärmtakindivid { startSpecified = false, endSpecified = false, name = "Skärmtakindivid", notering = bisPlattform.Notering, versionId = _VersionId, företeelsetyp = new ClassificationReference_Styckevara_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTStyckevaraReference { softType = "FTStyckevara", instanceRef = "Skärmtakindivid" } } }; skärmtakIndivid.id = skärmtakIndivid.name + suffix; switch (bisPlattform.Väderskydd) { case "Skydd": plattformAnläggningsProduktInstans.data = väderskyddProdukt; plattformStyckevaraInstans.data = väderskyddIndivid; break; case "Tak": plattformAnläggningsProduktInstans.data = skärmtakProdukt; plattformStyckevaraInstans.data = skärmtakIndivid; break; } plattformVäderskydd.Add(plattformAnläggningsProduktInstans); plattformStyckevaror.Add(plattformStyckevaraInstans); //End Väderskydd //Skylt var skyltProdukt = new Fast_skyltprodukt { name = "Fast_skyltprodukt", notering = bisPlattform.Notering, versionId = _VersionId, företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTAnläggningsproduktReference { softType = "FTAnläggningsprodukt", instanceRef = "Fast_skyltprodukt" } } }; skyltProdukt.id = skyltProdukt.name + suffix; var skyltIndivid = new Fast_skyltindivid { startSpecified = false, endSpecified = false, name = "Fast_skyltindivid", notering = bisPlattform.Notering, versionId = _VersionId, företeelsetyp = new ClassificationReference_Styckevara_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTStyckevaraReference { softType = "FTStyckevara", instanceRef = "Fast_skyltindivid" } } }; skyltIndivid.id = skyltIndivid.name + suffix; var plattformSkyltAnläggningsProdukt = new AnläggningsproduktEntrydefaultIn { Array = true, id = "PlattformSkyltAnläggningsprodukt" + suffix, inputSchemaRef = _InputSchemaRef, data = skyltProdukt }; var plattformSkyltStyckevara = new StyckevaraEntrydefaultIn { Array = true, id = "PlattformSkyltStyckevara" + suffix, inputSchemaRef = _InputSchemaRef, data = skyltIndivid }; if (bisPlattform.Skylt != "?") { plattformSkylt.Add(plattformSkyltAnläggningsProdukt); plattformSkyltIndivid.Add(plattformSkyltStyckevara); } //Kanalisation (BrunOLock) var kanalisationsProdukt = new Kanalisationprodukt { name = "Kanalisationprodukt", notering = bisPlattform.Notering, versionId = _VersionId, stringSet = new KanalisationproduktStringSet(), numericSet = new KanalisationproduktNumericSet(), företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTAnläggningsproduktReference { softType = "FTAnläggningsprodukt", instanceRef = "Kanalisationprodukt" } } }; kanalisationsProdukt.id = kanalisationsProdukt.name + suffix; var kanalisationsIndivid = new Kanalisationindivid { name = "Kanalisationindivid", notering = bisPlattform.Notering, versionId = _VersionId, startSpecified = false, endSpecified = false, företeelsetyp = new ClassificationReference_Styckevara_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTStyckevaraReference { softType = "FTStyckevara", instanceRef = "Kanalisationindivid" } } }; kanalisationsIndivid.id = kanalisationsIndivid.name + suffix; var plattformKanalisationProdukt = new AnläggningsproduktEntrydefaultIn { Array = true, id = "PlattformKanalisationAnläggningsprodukt" + suffix, inputSchemaRef = _InputSchemaRef, data = kanalisationsProdukt }; var plattformKanalisationStyckevara = new StyckevaraEntrydefaultIn { Array = true, id = "PlattformKanalisationStyckevara" + suffix, inputSchemaRef = _InputSchemaRef, data = kanalisationsIndivid }; if (bisPlattform.Brunn_Och_Lock != "?") { plattformKanalisation.Add(plattformKanalisationProdukt); plattformKanalisationIndivid.Add(plattformKanalisationStyckevara); } //PlattformIndivid var plattformindivid = new Plattformindivid { startSpecified = false, endSpecified = false, name = "Plattformindivid", notering = bisPlattform.Notering, versionId = _VersionId, företeelsetyp = new ClassificationReference_Styckevara_företeelsetyp { startSpecified = false, endSpecified = false, @class = new FTStyckevaraReference { softType = "FTStyckevara", instanceRef = "Plattformindivid" } } }; plattformindivid.id = plattformindivid.name + suffix; var plattformIndividStyckevara = new StyckevaraEntrydefaultIn { Array = true, id = "PlattformIndividStyckevara" + suffix, inputSchemaRef = _InputSchemaRef, data = plattformindivid }; plattformIndivider.Add(plattformIndividStyckevara); ExtraCounter++; } var anläggningsProduktSoftType = new SoftType_Anläggningsprodukt { Array = true, id = "Anläggningsprodukt", instances = plattformsProdukter.ToArray() }; var funktionellAnläggningsSoftType = new SoftType_FunktionellAnläggning { Array = true, id = "FunktionellAnläggning", instances = plattformsFunktioner.ToArray() }; var anläggningsProduktSoftTypeSkydd = new SoftType_Anläggningsprodukt { Array = true, id = "Anläggningsprodukt", instances = plattformVäderskydd.ToArray() }; var styckevaraProduktSoftType = new SoftType_Styckevara { Array = true, id = "Styckevara", instances = plattformStyckevaror.ToArray() }; var anläggningsProduktSTSkylt = new SoftType_Anläggningsprodukt { Array = true, id = "Anläggningsprodukt", instances = plattformSkylt.ToArray() }; var styckevaraProduktSTSkylt = new SoftType_Styckevara { Array = true, id = "Styckevara", instances = plattformSkyltIndivid.ToArray() }; var anläggningsProduktKanalisation = new SoftType_Anläggningsprodukt { Array = true, id = "Anläggningsprodukt", instances = plattformKanalisation.ToArray() }; var styckevaraProduktKanalisation = new SoftType_Styckevara { Array = true, id = "Styckevara", instances = plattformKanalisationIndivid.ToArray() }; var plattformIndivid = new SoftType_Styckevara { Array = true, id = "Styckevara", instances = plattformIndivider.ToArray() }; var geoPlaceringSoftType = new SoftType_GeografiskPlaceringsreferens { Array = true, id = "GeografiskPlaceringsreferens", instances = geoPlaceringar.ToArray() }; containerSoftTypes.Add(anläggningsProduktSoftType); containerSoftTypes.Add(funktionellAnläggningsSoftType); containerSoftTypes.Add(anläggningsProduktSoftTypeSkydd); containerSoftTypes.Add(styckevaraProduktSoftType); containerSoftTypes.Add(anläggningsProduktSTSkylt); containerSoftTypes.Add(styckevaraProduktSTSkylt); containerSoftTypes.Add(anläggningsProduktKanalisation); containerSoftTypes.Add(styckevaraProduktKanalisation); containerSoftTypes.Add(plattformIndivid); containerSoftTypes.Add(geoPlaceringSoftType); //Adds the extra softypes needed containerSoftTypes.AddRange(CreateSupplementarySoftypes()); containerSoftTypes.AddRange(CreateFTKeyReferenceSoftTypes()); //Last step is to prepare the container for serialization container.softTypes = containerSoftTypes.ToArray(); return(container); }