private TableSchema(TableSchemaDto dto) { var fieldsList = dto.Fields.Select(FieldSchema.FromDto).ToList(); var dateTimeField = fieldsList.FirstOrDefault(f => string.Equals(f.Name, dto.DateTimeField, StringComparison.OrdinalIgnoreCase)); var sortFields = fieldsList.Where(f => dto.SortFields.Contains(f.Name, StringComparer.OrdinalIgnoreCase)); Name = dto.Name; Fields = new ReadOnlyCollection <FieldSchema>(fieldsList); SortFields = new ReadOnlyCollection <FieldSchema>(sortFields.ToList()); DateTimeField = dateTimeField; Validate(); }
public TableSchemaDto AsDto() { var tableSchemaDto = new TableSchemaDto { Name = Name }; foreach (var fieldSchema in Fields) { tableSchemaDto.Fields.Add(fieldSchema.AsDto()); } return(tableSchemaDto); }
public static TableSchema FromDto(TableSchemaDto tableSchemaDto) { return(new TableSchema(tableSchemaDto)); }