/// <summary> /// Read engineering model data from stream. /// </summary> /// <param name="stream"> /// The stream. /// </param> /// <param name="password"> /// The password. /// </param> /// <param name="engineeringModelSetup"> /// The engineering model setup. /// </param> /// <returns> /// The engineering model contained <see cref="Thing"/> collection. /// </returns> /// <exception cref="FileLoadException"> /// If file was not loaded properly /// </exception> private IEnumerable <Thing> ReadEngineeringModelDataFromStream( MemoryStream stream, string password, EngineeringModelSetup engineeringModelSetup) { try { // read file, SiteDirectory first. using (var zip = ZipFile.Read(stream)) { // read engineeringmodel data var engineeringModelFilePath = string.Format(ExchangeFileNameFormat, engineeringModelSetup.EngineeringModelIid); var engineeringModelZipEntry = zip.Entries.SingleOrDefault(x => x.FileName.EndsWith(engineeringModelFilePath)); var engineeringModelItems = this.ReadInfoFromArchiveEntry(engineeringModelZipEntry, password); Logger.Info("{0} Engineering Model item(s) encountered", engineeringModelItems.Count); return(engineeringModelItems); } } catch (Exception ex) { var msg = string.Format("{0}: {1}", "Failed to load file. Error", ex.Message); Logger.Error(msg); throw new FileLoadException(msg); } }
/// <summary> /// Get the engineering model from file. /// </summary> /// <param name="filePath"> /// The file path. /// </param> /// <param name="password"> /// The password. /// </param> /// <param name="engineeringModelSetup"> /// The engineering model setup. /// </param> /// <returns> /// The deserialized engineering model contained <see cref="Thing"/> collection. /// </returns> public IEnumerable <Thing> ReadEngineeringModelFromfile( string filePath, string password, EngineeringModelSetup engineeringModelSetup) { var memoryStream = this.ReadFileToMemory(filePath); return(this.ReadEngineeringModelDataFromStream(memoryStream, password, engineeringModelSetup)); }
/// <summary> /// Instantiate and deserialize the properties of a <paramref name="EngineeringModelSetup"/> /// </summary> /// <param name="jObject">The <see cref="JObject"/> containing the data</param> /// <returns>The <see cref="EngineeringModelSetup"/> to instantiate</returns> public static CDP4Common.DTO.EngineeringModelSetup FromJsonObject(JObject jObject) { var iid = jObject["iid"].ToObject <Guid>(); var revisionNumber = jObject["revisionNumber"].IsNullOrEmpty() ? 0 : jObject["revisionNumber"].ToObject <int>(); var engineeringModelSetup = new CDP4Common.DTO.EngineeringModelSetup(iid, revisionNumber); if (!jObject["activeDomain"].IsNullOrEmpty()) { engineeringModelSetup.ActiveDomain.AddRange(jObject["activeDomain"].ToObject <IEnumerable <Guid> >()); } if (!jObject["alias"].IsNullOrEmpty()) { engineeringModelSetup.Alias.AddRange(jObject["alias"].ToObject <IEnumerable <Guid> >()); } if (!jObject["defaultOrganizationalParticipant"].IsNullOrEmpty()) { engineeringModelSetup.DefaultOrganizationalParticipant = jObject["defaultOrganizationalParticipant"].ToObject <Guid?>(); } if (!jObject["definition"].IsNullOrEmpty()) { engineeringModelSetup.Definition.AddRange(jObject["definition"].ToObject <IEnumerable <Guid> >()); } if (!jObject["engineeringModelIid"].IsNullOrEmpty()) { engineeringModelSetup.EngineeringModelIid = jObject["engineeringModelIid"].ToObject <Guid>(); } if (!jObject["excludedDomain"].IsNullOrEmpty()) { engineeringModelSetup.ExcludedDomain.AddRange(jObject["excludedDomain"].ToObject <IEnumerable <Guid> >()); } if (!jObject["excludedPerson"].IsNullOrEmpty()) { engineeringModelSetup.ExcludedPerson.AddRange(jObject["excludedPerson"].ToObject <IEnumerable <Guid> >()); } if (!jObject["hyperLink"].IsNullOrEmpty()) { engineeringModelSetup.HyperLink.AddRange(jObject["hyperLink"].ToObject <IEnumerable <Guid> >()); } if (!jObject["iterationSetup"].IsNullOrEmpty()) { engineeringModelSetup.IterationSetup.AddRange(jObject["iterationSetup"].ToObject <IEnumerable <Guid> >()); } if (!jObject["kind"].IsNullOrEmpty()) { engineeringModelSetup.Kind = jObject["kind"].ToObject <EngineeringModelKind>(); } if (!jObject["modifiedOn"].IsNullOrEmpty()) { engineeringModelSetup.ModifiedOn = jObject["modifiedOn"].ToObject <DateTime>(); } if (!jObject["name"].IsNullOrEmpty()) { engineeringModelSetup.Name = jObject["name"].ToObject <string>(); } if (!jObject["organizationalParticipant"].IsNullOrEmpty()) { engineeringModelSetup.OrganizationalParticipant.AddRange(jObject["organizationalParticipant"].ToObject <IEnumerable <Guid> >()); } if (!jObject["participant"].IsNullOrEmpty()) { engineeringModelSetup.Participant.AddRange(jObject["participant"].ToObject <IEnumerable <Guid> >()); } if (!jObject["requiredRdl"].IsNullOrEmpty()) { engineeringModelSetup.RequiredRdl.AddRange(jObject["requiredRdl"].ToObject <IEnumerable <Guid> >()); } if (!jObject["shortName"].IsNullOrEmpty()) { engineeringModelSetup.ShortName = jObject["shortName"].ToObject <string>(); } if (!jObject["sourceEngineeringModelSetupIid"].IsNullOrEmpty()) { engineeringModelSetup.SourceEngineeringModelSetupIid = jObject["sourceEngineeringModelSetupIid"].ToObject <Guid?>(); } if (!jObject["studyPhase"].IsNullOrEmpty()) { engineeringModelSetup.StudyPhase = jObject["studyPhase"].ToObject <StudyPhaseKind>(); } if (!jObject["thingPreference"].IsNullOrEmpty()) { engineeringModelSetup.ThingPreference = jObject["thingPreference"].ToObject <string>(); } return(engineeringModelSetup); }