protected override ImportedQuantityDTO MapQuantityFromRow(DataTable table, DataRow row, int rowIndex) { if (row.ItemArray.Count() < DataTableRowIndexes.COLUMNS) { throw new ImportQuantityDTOsFromDataTablesMapperException(row, rowIndex, AppConstants.Exceptions.TableShouldBeNColumns(DataTableRowIndexes.COLUMNS)); } var dimension = GetDimension(table, rowIndex, DataTableRowIndexes.UNIT, DataTableRowIndexes.DIMENSION); var containerPath = GetPath(row, DataTableRowIndexes.CONTAINER_PATH); var quantity = GetQuantity(table, rowIndex, DataTableRowIndexes.VALUE); var parameterName = GetQuantityName(row, DataTableRowIndexes.NAME); var dto = new ImportedQuantityDTO { Dimension = dimension, ContainerPath = new ObjectPath(containerPath), Name = parameterName, DisplayUnit = dimension.Unit(row[DataTableRowIndexes.UNIT].ToString()), IsQuantitySpecified = true, IsScaleDivisorSpecified = false }; dto.QuantityInBaseUnit = dto.ConvertToBaseUnit(quantity); return(dto); }
private static void updateImportedQuantityWithQuantityDimension(IWithDimension originalWithDimension, ImportedQuantityDTO dto) { var valueInDisplayUnit = dto.ConvertToDisplayUnit(dto.QuantityInBaseUnit); dto.Dimension = originalWithDimension.Dimension; dto.DisplayUnit = originalWithDimension.Dimension.Unit(dto.DisplayUnit.Name); dto.QuantityInBaseUnit = dto.ConvertToBaseUnit(valueInDisplayUnit); }
protected override ImportedQuantityDTO MapQuantityFromRow(DataTable table, DataRow row, int rowIndex) { if (row.ItemArray.Count() < DataTableRowIndexes.COLUMNS) { throw new ImportQuantityDTOsFromDataTablesMapperException(row, rowIndex, AppConstants.Exceptions.TableShouldBeNColumns(DataTableRowIndexes.COLUMNS)); } var path = GetPath(row, DataTableRowIndexes.PATH); var moleculeName = GetQuantityName(row, DataTableRowIndexes.MOLECULE); var msv = new ImportedQuantityDTO { ContainerPath = new ObjectPath(path), Name = moleculeName, IsPresent = getIsPresent(row), IsScaleDivisorSpecified = getIsValueSpecified(row, DataTableRowIndexes.SCALE_DIVISOR), IsQuantitySpecified = getIsValueSpecified(row, DataTableRowIndexes.VALUE), NegativeValuesAllowed = getNegativeValuesAllowed(row) }; msv.ScaleDivisor = msv.IsScaleDivisorSpecified ? getScaleFactor(table, rowIndex) : double.NaN; if (!msv.IsQuantitySpecified) { return(msv); } var dimension = GetDimension(table, rowIndex, DataTableRowIndexes.UNIT); msv.Dimension = dimension; msv.DisplayUnit = dimension.Unit(row[DataTableRowIndexes.UNIT].ToString()); msv.QuantityInBaseUnit = msv.IsQuantitySpecified ? msv.ConvertToBaseUnit(GetQuantity(table, rowIndex, DataTableRowIndexes.VALUE)) : double.NaN; return(msv); }