/// <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))); }
/// <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))); }