private List <object[]> ExecuteInnerJoin(int rowIndex, RowHash rowHash, IEnumerable <object[]> smallDatastoreRows) { List <object[]> joinedRows = new List <object[]>(); if (rowHash.ContainsNullColumns) { return(joinedRows); } foreach (var row in smallDatastoreRows) { object[] resultRow = new object[this.Configuration.OutputColumns.Count]; foreach (var outputColumn in this.Configuration.OutputColumns) { object value = null; if (outputColumn.DataStream == DataStreamSource.Left) { value = largeDatastore[rowIndex][largeDatastore.Metadata[outputColumn.Column.ColumnName].ColumnIndex]; } else { value = row[smallDatastore.Metadata[outputColumn.Column.ColumnName].ColumnIndex]; } resultRow[outputColumn.Column.ColumnIndex] = value; } joinedRows.Add(resultRow); } return(joinedRows); }
private void JoinDatastoreRecords(IDatastore resultDatastore) { IDatastoreColumnHashBuilder smallDataStoreHashBuilder = new DatastoreColumnHashBuilder(smallDatastore, smallDatastoreKeys); smallDataStoreHashBuilder.BuildHashes(); int[] largeDatastoreColumnIndexes = GetColumnIndexes(); for (int rowIndex = 0; rowIndex < largeDatastore.Count; rowIndex++) { RowHash rowHash = smallDataStoreHashBuilder.GetRowHash(largeDatastore[rowIndex], largeDatastoreColumnIndexes); var smallDatastoreRows = smallDataStoreHashBuilder.GetRowsByHash(rowHash.Value); List <object[]> joinedRows = null; switch (this.Configuration.JoinType) { case JoinRecordsJoinType.LeftJoin: joinedRows = ExecuteLeftJoin(rowIndex, rowHash, smallDatastoreRows); break; case JoinRecordsJoinType.InnerJoin: joinedRows = ExecuteInnerJoin(rowIndex, rowHash, smallDatastoreRows); break; } AddJoinedRowsToDatastore(resultDatastore, joinedRows); } }
protected override PvpTier MapEntity(PvpTierSheetDto dto, RowHash rowHash, PvpTier pvpTier = null) { pvpTier ??= new PvpTier(); pvpTier.IdHash = rowHash.IdHash; pvpTier.Hash = rowHash.ContentHash; pvpTier.ImportSheetId = rowHash.ImportSheetId; pvpTier.Name = dto.Name; pvpTier.SortIndex = dto.SortIndex; return(pvpTier); }
protected override ElementalType MapEntity(ElementalTypeSheetDto dto, RowHash rowHash, ElementalType elementalType = null) { elementalType ??= new ElementalType(); elementalType.IdHash = rowHash.IdHash; elementalType.Hash = rowHash.ContentHash; elementalType.ImportSheetId = rowHash.ImportSheetId; elementalType.Name = dto.Name; elementalType.PokeApiName = dto.PokeApiName; return(elementalType); }
protected override BagCategory MapEntity(BagCategorySheetDto dto, RowHash rowHash, BagCategory bagCategory = null) { bagCategory ??= new BagCategory(); bagCategory.IdHash = rowHash.IdHash; bagCategory.Hash = rowHash.ContentHash; bagCategory.ImportSheetId = rowHash.ImportSheetId; bagCategory.Name = dto.Name; bagCategory.SortIndex = dto.SortIndex; return(bagCategory); }
protected override Event MapEntity(EventSheetDto dto, RowHash rowHash, Event eventEntity = null) { eventEntity ??= new Event(); eventEntity.IdHash = rowHash.IdHash; eventEntity.Hash = rowHash.ContentHash; eventEntity.ImportSheetId = rowHash.ImportSheetId; eventEntity.Name = dto.Name; eventEntity.StartDate = dto.StartDate; eventEntity.EndDate = dto.EndDate; return(eventEntity); }
protected override Currency MapEntity(CurrencySheetDto dto, RowHash rowHash, Currency currency = null) { currency ??= new Currency(); currency.IdHash = rowHash.IdHash; currency.Hash = rowHash.ContentHash; currency.ImportSheetId = rowHash.ImportSheetId; currency.Item = new Item { Name = dto.ItemName }; return(currency); }
protected override MoveDamageClass MapEntity( MoveDamageClassSheetDto dto, RowHash rowHash, MoveDamageClass moveDamageClass = null) { moveDamageClass ??= new MoveDamageClass(); moveDamageClass.IdHash = rowHash.IdHash; moveDamageClass.Hash = rowHash.ContentHash; moveDamageClass.ImportSheetId = rowHash.ImportSheetId; moveDamageClass.Name = dto.Name; return(moveDamageClass); }
protected override TimeOfDay MapEntity(TimeOfDaySheetDto dto, RowHash rowHash, TimeOfDay timeOfDay = null) { timeOfDay ??= new TimeOfDay(); timeOfDay.IdHash = rowHash.IdHash; timeOfDay.Hash = rowHash.ContentHash; timeOfDay.ImportSheetId = rowHash.ImportSheetId; timeOfDay.SortIndex = dto.SortIndex; timeOfDay.Name = dto.Name; timeOfDay.Abbreviation = dto.Abbreviation; timeOfDay.Color = dto.Color; return(timeOfDay); }
protected override Season MapEntity(SeasonSheetDto dto, RowHash rowHash, Season season = null) { season ??= new Season(); season.IdHash = rowHash.IdHash; season.Hash = rowHash.ContentHash; season.ImportSheetId = rowHash.ImportSheetId; season.SortIndex = dto.SortIndex; season.Name = dto.Name; season.Abbreviation = dto.Abbreviation; season.Color = dto.Color; return(season); }
protected override PokemonAvailability MapEntity( AvailabilitySheetDto dto, RowHash rowHash, PokemonAvailability availability = null) { availability ??= new PokemonAvailability(); availability.IdHash = rowHash.IdHash; availability.Hash = rowHash.ContentHash; availability.ImportSheetId = rowHash.ImportSheetId; availability.Name = dto.Name; availability.Description = dto.Description; return(availability); }
protected override SpawnType MapEntity(SpawnTypeSheetDto dto, RowHash rowHash, SpawnType spawnType = null) { spawnType ??= new SpawnType(); spawnType.IdHash = rowHash.IdHash; spawnType.Hash = rowHash.ContentHash; spawnType.ImportSheetId = rowHash.ImportSheetId; spawnType.Name = dto.Name; spawnType.SortIndex = dto.SortIndex; spawnType.IsSyncable = dto.IsSyncable; spawnType.IsInfinite = dto.IsInfinite; spawnType.Color = dto.Color; return(spawnType); }
protected override Nature MapEntity(NatureSheetDto dto, RowHash rowHash, Nature nature = null) { nature ??= new Nature(); nature.IdHash = rowHash.IdHash; nature.Hash = rowHash.ContentHash; nature.ImportSheetId = rowHash.ImportSheetId; nature.Name = dto.Name; nature.Attack = dto.Attack; nature.SpecialAttack = dto.SpecialAttack; nature.Defense = dto.Defense; nature.SpecialDefense = dto.SpecialDefense; nature.Speed = dto.Speed; return(nature); }
private List <object[]> ExecuteLeftJoin(int rowIndex, RowHash rowHash, IEnumerable <object[]> smallDatastoreRows) { var innerJoinResult = ExecuteInnerJoin(rowIndex, rowHash, smallDatastoreRows); if (innerJoinResult.Count == 0) { object [] leftJoinRow = new object[this.Configuration.OutputColumns.Count]; foreach (var outputColumn in this.Configuration.OutputColumns.Where(t => t.DataStream == DataStreamSource.Left)) { object value = largeDatastore[rowIndex][largeDatastore.Metadata[outputColumn.Column.ColumnName].ColumnIndex]; leftJoinRow[outputColumn.Column.ColumnIndex] = value; } innerJoinResult.Add(leftJoinRow); } return(innerJoinResult); }
protected override Ability MapEntity(AbilitySheetDto dto, RowHash rowHash, Ability ability = null) { ability ??= new Ability(); ability.IdHash = rowHash.IdHash; ability.Hash = rowHash.ContentHash; ability.ImportSheetId = rowHash.ImportSheetId; ability.PokeApiName = dto.PokeApiName; ability.Name = dto.Name; ability.EffectDescription = dto.Effect; ability.EffectShortDescription = dto.ShortEffect; ability.AttackBoost = dto.AtkBoost; ability.SpecialAttackBoost = dto.SpaBoost; ability.DefenseBoost = dto.DefBoost; ability.SpecialDefenseBoost = dto.SpdBoost; ability.SpeedBoost = dto.SpeBoost; ability.HitPointsBoost = dto.HpBoost; ability.BoostConditions = dto.BoostConditions; return(ability); }