/// <inheritdoc cref="INonPersistentColumnsAggregator"/> public void Add(ImportEntity importEntity, ImportColumn column, ImportColumnValue columnValue, ImportColumnDestination destination) { IColumnProcessor columnProcessor = GetColumnProcessor(destination); columnProcessor.Add(importEntity, column, columnValue, destination); }
/// <inheritdoc cref="BaseColumnProcessor"/> /// <summary> /// Finds processed value. /// </summary> /// <param name="destination">Import column destination.</param> /// <param name="columnValue">Import column value.</param> /// <returns>Processed value.</returns> public object FindValueForSave(ImportColumnDestination destination, ImportColumnValue columnValue) { EntitySchema entitySchema = UserConnection.EntitySchemaManager.GetInstanceByUId(destination.SchemaUId); EntitySchemaColumn column = entitySchema.Columns.GetByName(destination.ColumnName); return(TextColumnHelper.PrepareTextColumnValue((TextDataValueType)column.DataValueType, columnValue.Value)); }
/// <summary> /// Gets destination values for save. /// </summary> /// <param name="destinationValues">Destination values.</param> /// <param name="destination">Import column destination.</param> /// <returns>Destination columns names.</returns> private IEnumerable <object> GetDestinationValuesForSave( Dictionary <ImportColumnDestination, object> destinationValues, ImportColumnDestination destination) { return(destinationValues .Where(destinationValue => destinationValue.Key.GetKey() == destination.GetKey()) .Select(destinationValue => destinationValue.Value)); }
/// <summary> /// Gets destination columns names. /// </summary> /// <param name="destinationValues">Destination values.</param> /// <param name="destination">Import column destination.</param> /// <returns>Destination columns names.</returns> private IEnumerable <string> GetDestinationColumnsNames( Dictionary <ImportColumnDestination, object> destinationValues, ImportColumnDestination destination) { return(destinationValues .Where(destinationValue => destinationValue.Key.GetKey() == destination.GetKey()) .Select(destinationValue => destinationValue.Key.ColumnName)); }
/// <summary> /// Gets destination attribute column name. /// </summary> /// <param name="destination">Import column destination.</param> /// <param name="schema">EntitySchema.</param> /// <returns>Destination attribute column name.</returns> private string GetDestinationAttributeColumnName(ImportColumnDestination destination, EntitySchema schema) { string attributeColumnValueName = destination.FindAttributeColumnValueName(); return(schema.Columns .Where(column => column.ColumnValueName.Equals(attributeColumnValueName)) .Select(column => column.Name) .First()); }
private ColumnExpression GetColumnExpression(int index, ImportColumnDestination destination) { var columnExpression = new ColumnExpression { BufferedColumnName = $"Column{index}", ColumnValueName = destination.ColumnName, ComparisonType = FilterComparisonType.Equal }; return(columnExpression); }
/// <summary> /// Gets entity key columns names. /// </summary> /// <param name="destination">Import column destination.</param> /// <param name="schema">Entity schema.</param> /// <param name="importEntity">Import entity.</param> /// <param name="destinationValues">Destination values.</param> /// <returns>Entity key columns names.</returns> private IEnumerable <string> GetEntityKeyColumnsNames(ImportColumnDestination destination, EntitySchema schema, ImportEntity importEntity, Dictionary <ImportColumnDestination, object> destinationValues) { List <string> entityKeyColumnsNames = new List <string> { GetDestinationAttributeColumnName(destination, schema) }; EntitySchemaColumn connectionColumn = importEntity.GetReferenceColumn(schema); entityKeyColumnsNames.Add(connectionColumn.Name); IEnumerable <string> destinationColumnsNames = GetDestinationColumnsNames(destinationValues, destination); entityKeyColumnsNames.AddRange(destinationColumnsNames); return(entityKeyColumnsNames); }
/// <inheritdoc cref="IProcessedValuesProvider"/> public object FindValueForSave(ImportColumnDestination destination, ImportColumnValue columnValue) { if (Results.TryGetValue(columnValue.Value, out TResult savedValue)) { if (savedValue == null) { SendProcessError(columnValue); } return(savedValue); } TResult convertedValue = ConvertValue(columnValue); AddToResults(columnValue, convertedValue); return(convertedValue); }
private KeyValuePair <string, object> GetFilterItemParameter(ImportColumnDestination destination, ImportColumnValue importColumnValue, EntitySchema entitySchema) { object value = null; if (importColumnValue != null) { value = ColumnsProcessor.FindValueForSave(destination, importColumnValue); } if (value == null) { var columns = entitySchema.Columns; value = columns.GetByName(destination.ColumnName).DataValueType.DefValue; } return(new KeyValuePair <string, object>(destination.ColumnName, value)); }
/// <summary> /// Gets import entity key. /// </summary> /// <param name="destination">Import column destination.</param> /// <param name="schema">Entity schema.</param> /// <param name="importEntity">Import entity.</param> /// <param name="destinationValues">Destination values.</param> /// <returns>Import entity key.</returns> private string GetImportEntityKey(ImportColumnDestination destination, EntitySchema schema, ImportEntity importEntity, Dictionary <ImportColumnDestination, object> destinationValues) { StringBuilder sb = new StringBuilder(); object attributeColumnValue = destination.FindAttributeColumnValue(); sb.Append(attributeColumnValue); Guid connectionColumnValue = importEntity.PrimaryEntity.PrimaryColumnValue; sb.Append(connectionColumnValue); IEnumerable <object> destinationValuesForSave = GetDestinationValuesForSave(destinationValues, destination); foreach (object destinationValueForSave in destinationValuesForSave) { sb.Append(destinationValueForSave); } return(sb.ToString()); }
/// <summary> /// Adds child entities. /// </summary> /// <param name="entities">Entities.</param> /// <param name="importEntity">Import entity.</param> /// <param name="schemasKeyDestinations">Schemas key destinations.</param> private void AddChildEntities(IEnumerable <Entity> entities, ImportEntity importEntity, Dictionary <EntitySchema, Dictionary <ImportColumnDestination, object> > schemasKeyDestinations) { foreach (var schemaKeyDestinations in schemasKeyDestinations) { EntitySchema schema = schemaKeyDestinations.Key; Dictionary <ImportColumnDestination, object> destinationValues = schemaKeyDestinations.Value; foreach (var destinationValue in destinationValues) { ImportColumnDestination destination = destinationValue.Key; Entity childEntity = importEntity.FindChildEntity(destination); if (childEntity != null) { continue; } AddChildEntity(destination, schema, importEntity, destinationValues, entities); } } }
/// <summary> /// Adds child entity. /// </summary> /// <param name="destination">Import column destination.</param> /// <param name="schema">Entity schema.</param> /// <param name="importEntity">Import entity.</param> /// <param name="destinationValues">Destination values.</param> /// <param name="entities">Entities.</param> private void AddChildEntity(ImportColumnDestination destination, EntitySchema schema, ImportEntity importEntity, Dictionary <ImportColumnDestination, object> destinationValues, IEnumerable <Entity> entities) { string importEntityKey = GetImportEntityKey(destination, schema, importEntity, destinationValues); IEnumerable <string> entityKeyColumnsNames = GetEntityKeyColumnsNames(destination, schema, importEntity, destinationValues); foreach (Entity entity in entities) { if (!entity.Schema.UId.Equals(schema.UId)) { continue; } string entityKey = GetEntityKey(entity, entityKeyColumnsNames); if (importEntityKey.Equals(entityKey)) { importEntity.AddChildEntity(destination, entity); break; } } }
/// <inheritdoc /> public object FindValueForSave(ImportColumnDestination destination, ImportColumnValue columnValue) { return(_lookupProcessedValues.FindValueForSave(destination, columnValue)); }
/// <inheritdoc cref="IColumnProcessor"/> public void Add(ImportEntity importEntity, ImportColumn column, ImportColumnValue columnValue, ImportColumnDestination destination) { }
/// <summary> /// Finds processed value. /// </summary> /// <param name="destination">Import column destination.</param> /// <param name="columnValue">Import column value.</param> /// <returns>Processed value.</returns> public object FindValueForSave(ImportColumnDestination destination, ImportColumnValue columnValue) { return(Results.FindValueForSave(destination, columnValue)); }
/// <summary> /// Adds raw value that will be processed. /// </summary> /// <param name="importEntity">Import entity.</param> /// <param name="column">Import column.</param> /// <param name="columnValue">Import column value.</param> /// <param name="destination">Import column destination.</param> public void Add(ImportEntity importEntity, ImportColumn column, ImportColumnValue columnValue, ImportColumnDestination destination) { LookupValuesToProcess.Add(importEntity, column, columnValue, destination); }