/// <summary> /// Convert a DB-CompetitionEntry to the PES format. /// </summary> /// <param name="sourceCompetitionEntry"></param> /// <returns></returns> public static Task <PESCompetitionEntry> ConvertBack(CompetitionEntry sourceCompetitionEntry) { PESCompetitionEntry converted = new PESCompetitionEntry() { Position = sourceCompetitionEntry.DatabasePosition, Id = System.Convert.ToUInt32(sourceCompetitionEntry.SourceId), TeamId = System.Convert.ToUInt32(sourceCompetitionEntry.TeamId), CompetitionId = System.Convert.ToUInt32(sourceCompetitionEntry.CompetitionId), Group = (uint)sourceCompetitionEntry.Group, Order = (byte)sourceCompetitionEntry.Order }; return(Task.FromResult(converted)); }
/// <summary> /// Read all competition entries from the PES database. /// </summary> /// <param name="path"></param> /// <returns></returns> public async Task <List <CompetitionEntry> > ReadCompetitionEntriesAsync(string path) { MemoryStream memory = await this.CreateMemoryStreamAsync(path + competitionEntryPath); var reader = new BinaryReader(memory); int index; int length = Convert.ToInt32(reader.BaseStream.Length / competitionEntryBlock); reader.BaseStream.Position = 0; string all = System.Text.Encoding.UTF8.GetString(reader.ReadBytes(96)); List <PESCompetitionEntry> tempList = new List <PESCompetitionEntry>(); for (int i = 0; i < length; i++) { index = (i * competitionEntryBlock); reader.BaseStream.Position = index; UInt32 teamId = reader.ReadUInt32(); UInt32 continentalCompetitionId = reader.ReadUInt16(); // continental cup UInt16 entryIndex = reader.ReadUInt16(); byte compId = reader.ReadByte(); // competition (league) byte check2 = reader.ReadByte(); byte check3 = reader.ReadByte(); // order byte check4 = reader.ReadByte(); // group PESCompetitionEntry comp = new PESCompetitionEntry() { Id = entryIndex, Position = index, TeamId = teamId, CompetitionId = compId, ContinentalCompetitionId = continentalCompetitionId, Order = check3, // order Group = check4, // group }; tempList.Add(comp); } //var championsleague = tempList.Where(x => x.CompetitionId == 2); //var pool = tempList.Where(x => x.TeamId == 103); return(await CompetitionEntryConverter.ConvertMany(tempList)); }
/// <summary> /// Converts a PES team to the DB format. /// </summary> /// <param name="sourceCompetitionEntry"></param> /// <returns></returns> public static Task <CompetitionEntry> Convert(PESCompetitionEntry sourceCompetitionEntry) { var guid = Guid.NewGuid().ToString(); CompetitionEntry converted = new CompetitionEntry() { CompetitionEntryId = guid, SourceId = sourceCompetitionEntry.Id.ToString(), DatabasePosition = sourceCompetitionEntry.Position, TeamId = sourceCompetitionEntry.TeamId.ToString(), CompetitionId = sourceCompetitionEntry.CompetitionId.ToString(), Group = (int)sourceCompetitionEntry.Group, Order = sourceCompetitionEntry.Order }; return(Task.FromResult(converted)); }