/// <summary> /// Reads the <see cref="SpecificFailureMechanismEntity"/> and uses the information to create a <see cref="SpecificFailureMechanism"/>. /// </summary> /// <param name="entity">The <see cref="SpecificFailureMechanismEntity"/> to create a <see cref="SpecificFailureMechanism"/> with.</param> /// <param name="collector">The object keeping track of read operations.</param> /// <exception cref="ArgumentNullException">Thrown when any argument is <c>null</c>.</exception> internal static SpecificFailureMechanism Read(this SpecificFailureMechanismEntity entity, ReadConversionCollector collector) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } if (collector == null) { throw new ArgumentNullException(nameof(collector)); } var failureMechanism = new SpecificFailureMechanism { Name = entity.Name, Code = entity.Code, GeneralInput = { N = (RoundedDouble)entity.N, ApplyLengthEffectInSection = Convert.ToBoolean(entity.ApplyLengthEffectInSection) } }; entity.ReadCommonFailureMechanismProperties(failureMechanism, collector); ReadFailureMechanismSectionResults(entity, failureMechanism, collector); return(failureMechanism); }