public static void FillintelDataRow([NotNull] IntelData.IntelDataRow intelDataRow, [NotNull] CvaCharacterInfo cvaCharacterInfo) { intelDataRow.CharacterID = cvaCharacterInfo.EveId; intelDataRow.CharacterName = cvaCharacterInfo.Label; intelDataRow.CharacterKos = cvaCharacterInfo.Kos; intelDataRow.CorporationName = cvaCharacterInfo.Corp.Label; intelDataRow.CorporationKos = cvaCharacterInfo.Corp.Kos; intelDataRow.AllianceName = cvaCharacterInfo.Corp.Alliance?.Label; intelDataRow.AllianceKos = cvaCharacterInfo.Corp.Alliance?.Kos ?? false; }
public static EveIntelCharacterInfo GetEveIntelCharacterInfo([NotNull] IntelData.IntelDataRow intelDataRow) { return(new EveIntelCharacterInfo { CharacterID = intelDataRow.CharacterID, CharacterName = intelDataRow.CharacterName, CharacterKos = intelDataRow.CharacterKos, CorporationName = intelDataRow.CorporationName, CorporationKos = intelDataRow.CorporationKos, AllianceName = intelDataRow.AllianceName, AllianceKos = intelDataRow.AllianceKos, SolarsystemID = intelDataRow.SolarsystemID, SolarsystemTime = intelDataRow.SolarsystemTime, ShipTypeID = intelDataRow.ShipTypeID, ShipTypeTime = intelDataRow.ShipTypeTime, Notes = intelDataRow.Notes }); }
private void dataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (_ShipCombo != null) { _ShipCombo.SelectedIndex = _ShipCombo.FindStringExact(_ShipCombo.Text); if (_ShipCombo.SelectedIndex != -1) { long charactedID = (long)dataGridView[CharacterID.Index, e.RowIndex].Value; IntelData.IntelDataRow row = _IntelData.IntelDataTable.Single(o => o.CharacterID == charactedID); row.ShipTypeID = (int?)_ShipCombo.SelectedValue; row.ShipTypeTime = DateTime.UtcNow; _IntelData.IntelDataTable.AddOrUpdate(row); _IntelData.SaveChanges(); dataGridView.Refresh(); } } }
private static EveIntelCharacterInfo[] GetEveIntelCharacterInfos(long solarsystemID, [NotNull] Dictionary <long, string> characters) { long[] characterIds = characters.Keys.ToArray(); Dictionary <long, IntelData.IntelDataRow> result = new Dictionary <long, IntelData.IntelDataRow>(); // try read info from local db IQueryable <IntelData.IntelDataRow> q = from o in _IntelData.IntelDataTable where characterIds.Contains(o.CharacterID) select o; int cached = 0; foreach (IntelData.IntelDataRow row in q) { result[row.CharacterID] = row; ++cached; } if (cached == characters.Count) { return(result.Values.Select(DataHelper.GetEveIntelCharacterInfo).ToArray()); } // download infos not stored in local db and save them foreach (KeyValuePair <long, string> pair in characters) { if (result.ContainsKey(pair.Key)) { continue; } CvaCharacterInfo cvaCharacterInfo = CvaClient.GetCharacterInfo(pair.Key, pair.Value); if (cvaCharacterInfo != null) { IntelData.IntelDataRow intelDataRow = new IntelData.IntelDataRow(); DataHelper.FillintelDataRow(intelDataRow, cvaCharacterInfo); intelDataRow.SolarsystemID = solarsystemID; intelDataRow.SolarsystemTime = DateTime.Now; _IntelData.IntelDataTable.Add(intelDataRow); result.Add(intelDataRow.CharacterID, intelDataRow); } } return(result.Values.Select(DataHelper.GetEveIntelCharacterInfo).ToArray()); }
public void ClientIntelUpdate(List <EveIntelCharacterInfo> characters) { IntelData intelData = new IntelData();; foreach (EveIntelCharacterInfo character in characters) { var stored = intelData.IntelDataTable.FirstOrDefault(o => o.CharacterID == character.CharacterID); if (stored != null) { stored.SolarsystemID = character.SolarsystemID; stored.SolarsystemTime = character.SolarsystemTime; stored.ShipTypeID = character.ShipTypeID; stored.ShipTypeTime = character.ShipTypeTime; stored.Notes = character.Notes; } else { var row = new IntelData.IntelDataRow(); row.CharacterID = character.CharacterID; row.CharacterName = character.CharacterName; row.CharacterKos = character.CharacterKos; row.CorporationName = character.CorporationName; row.CorporationKos = character.CorporationKos; row.AllianceName = character.AllianceName; row.AllianceKos = character.AllianceKos; row.SolarsystemID = character.SolarsystemID; row.SolarsystemTime = character.SolarsystemTime; row.ShipTypeID = character.ShipTypeID; row.ShipTypeTime = character.ShipTypeTime; row.Notes = character.Notes; intelData.IntelDataTable.Add(row); } } intelData.SaveChanges(); //mapControl1.UpdateData(); intelGrid1.UpdateData(); }
private static EveIntelCharacterInfo[] GetEveIntelCharacterInfos(long solarsystemID, [NotNull] Dictionary<long, string> characters) { long[] characterIds = characters.Keys.ToArray(); Dictionary<long, IntelData.IntelDataRow> result = new Dictionary<long, IntelData.IntelDataRow>(); // try read info from local db IQueryable<IntelData.IntelDataRow> q = from o in _IntelData.IntelDataTable where characterIds.Contains(o.CharacterID) select o; int cached = 0; foreach (IntelData.IntelDataRow row in q) { result[row.CharacterID] = row; ++cached; } if (cached == characters.Count) { return result.Values.Select(DataHelper.GetEveIntelCharacterInfo).ToArray(); } // download infos not stored in local db and save them foreach (KeyValuePair<long, string> pair in characters) { if (result.ContainsKey(pair.Key)) { continue; } CvaCharacterInfo cvaCharacterInfo = CvaClient.GetCharacterInfo(pair.Key, pair.Value); if (cvaCharacterInfo != null) { IntelData.IntelDataRow intelDataRow = new IntelData.IntelDataRow(); DataHelper.FillintelDataRow(intelDataRow, cvaCharacterInfo); intelDataRow.SolarsystemID = solarsystemID; intelDataRow.SolarsystemTime = DateTime.Now; _IntelData.IntelDataTable.Add(intelDataRow); result.Add(intelDataRow.CharacterID, intelDataRow); } } return result.Values.Select(DataHelper.GetEveIntelCharacterInfo).ToArray(); }