Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        /// <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);
        }