protected void ValidateDtoAgainstBuilderForUpdate(IWithDimension originalWithDimension, ImportedQuantityDTO dto, DataRow row, int rowIndex) { if (Equals(originalWithDimension.Dimension, dto.Dimension)) { return; } //Different dimensions sharing a common unit. Make sure we import in the expected dimension if (haveCommonUnits(originalWithDimension.Dimension, dto.DisplayUnit)) { updateImportedQuantityWithQuantityDimension(originalWithDimension, dto); return; } // +2 because there is a mandatory header row (+1) and this index is 0-based, while excel rows start at 1 (+1) dto.SetWarning(row, rowIndex + 2, AppConstants.Warnings.TheImportedDimensionDoesNotMatchTheExistingQuantity(dto.Path.ToString(), originalWithDimension.Dimension, dto.Dimension)); }
protected override void ValidateInContext(ImportedQuantityDTO dto, QuantityImporterDTO quantityImporterDTO, IMoBiSimulation simulation, DataRow row, int rowIndex) { // Skipping base call because the default validation is to stop import when first error occurs if (IsUpdate(dto, simulation)) { if (!ValidateDTOForUpdate(dto)) { throw new ImportQuantityDTOsFromDataTablesMapperException(row, rowIndex, AppConstants.Validation.ValueNotValidForUpdate(dto.Path.ToString())); } ValidateDtoAgainstBuilderForUpdate(dto.Path.TryResolve <IParameter>(simulation.Model.Root), dto, row, rowIndex); } if (!IsNewInsert(dto, simulation)) { return; } // +2 because there is a mandatory header row (+1) and this index is 0-based, while excel rows start at 1 (+1) dto.SetWarning(row, rowIndex + 2, AppConstants.Warnings.CannotAddNewParameterFromImportToSimulation(simulation.Name, dto.Path.ToString())); dto.SkipImport = true; }