예제 #1
0
        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));
        }
예제 #2
0
        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;
        }