Exemplo n.º 1
0
        /// <summary>
        /// Creates an instance of <see cref="SerializableCombinedFailureMechanismSectionAssemblyResult"/>
        /// based on <paramref name="sectionResult"/>.
        /// </summary>
        /// <param name="sectionResult">The <see cref="ExportableFailureMechanismCombinedSectionAssemblyResult"/>
        /// to create a <see cref="SerializableCombinedFailureMechanismSectionAssemblyResult"/> for.</param>
        /// <returns>A <see cref="SerializableCombinedFailureMechanismSectionAssemblyResult"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="sectionResult"/> is <c>null</c>.</exception>
        /// <exception cref="AssemblyCreatorException">Thrown when <paramref name="sectionResult"/>
        /// is invalid to create a serializable counterpart for.</exception>
        public static SerializableCombinedFailureMechanismSectionAssemblyResult Create(ExportableFailureMechanismCombinedSectionAssemblyResult sectionResult)
        {
            if (sectionResult == null)
            {
                throw new ArgumentNullException(nameof(sectionResult));
            }

            ExportableFailureMechanismSubSectionAssemblyResult sectionResultSectionAssemblyResult = sectionResult.SectionAssemblyResult;

            if (sectionResultSectionAssemblyResult.AssemblyGroup == FailureMechanismSectionAssemblyGroup.NoResult ||
                sectionResultSectionAssemblyResult.AssemblyGroup == FailureMechanismSectionAssemblyGroup.Dominant)
            {
                throw new AssemblyCreatorException("The assembly result is invalid and cannot be created.");
            }

            return(new SerializableCombinedFailureMechanismSectionAssemblyResult(
                       SerializableAssemblyMethodCreator.Create(sectionResultSectionAssemblyResult.AssemblyMethod),
                       SerializableFailureMechanismTypeCreator.Create(sectionResult.FailureMechanismType),
                       sectionResult.Code,
                       sectionResult.Name,
                       SerializableFailureMechanismSectionAssemblyGroupCreator.Create(sectionResultSectionAssemblyResult.AssemblyGroup)));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates an instance of <see cref="SerializableFailureMechanism"/> based on its input parameters.
        /// </summary>
        /// <param name="idGenerator">The generator to generate an id for the <see cref="SerializableFailureMechanism"/>.</param>
        /// <param name="serializableTotalAssembly">The <see cref="SerializableTotalAssemblyResult"/>
        /// the <see cref="SerializableFailureMechanism"/> belongs to.</param>
        /// <param name="failureMechanism">The <see cref="ExportableFailureMechanism"/>
        /// to create a <see cref="SerializableFailureMechanism"/> for.</param>
        /// <returns>A <see cref="SerializableFailureMechanism"/></returns>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        /// <exception cref="AssemblyCreatorException">Thrown when <paramref name="failureMechanism"/> is invalid to
        /// create a serializable counterpart for.</exception>
        public static SerializableFailureMechanism Create(IdentifierGenerator idGenerator,
                                                          SerializableTotalAssemblyResult serializableTotalAssembly,
                                                          ExportableFailureMechanism failureMechanism)
        {
            if (idGenerator == null)
            {
                throw new ArgumentNullException(nameof(idGenerator));
            }

            if (serializableTotalAssembly == null)
            {
                throw new ArgumentNullException(nameof(serializableTotalAssembly));
            }

            if (failureMechanism == null)
            {
                throw new ArgumentNullException(nameof(failureMechanism));
            }

            return(new SerializableFailureMechanism(idGenerator.GetNewId(Resources.SerializableFailureMechanismCreator_IdPrefix),
                                                    SerializableFailureMechanismTypeCreator.Create(failureMechanism.FailureMechanismType),
                                                    failureMechanism.Code, failureMechanism.Name, serializableTotalAssembly,
                                                    SerializableFailureMechanismResultCreator.Create(failureMechanism.FailureMechanismAssembly)));
        }