public void UpdateEntry(PcdbEntry parent, IPcdbField field) { database.BeginTransaction(); switch (field.Id) { case PcdbFieldId.Comment: var info = (PcdbItemContainer<string>)field; database.UpdateHash(parent.Hash, info); break; case PcdbFieldId.Name: var name = (PcdbName)field; database.UpdateName(parent.Hash, name.Name, name.Timestamp); break; case PcdbFieldId.Ip: var ip = (PcdbIp)field; database.UpdateIp(parent.Hash, ip.Ip, ip.Timestamp); break; case PcdbFieldId.Gsid: var gsid = (PcdbGsid)field; database.UpdateGsid(parent.Hash, gsid.Gsid, gsid.Timestamp); break; } database.CommitTransaction(); }
private void FormatField(IPcdbField root, StringBuilder data) { switch (root.Id) { case PcdbFieldId.Group | PcdbFieldId.Hash: { var entry = (PcdbEntry)root; data.AppendLine(entry.Hash); FormatField(entry.Names, data); FormatField(entry.Ips, data); if (dbGameVersion == PcdbGameVersion.COP) FormatField(entry.Gsids, data); FormatField(entry.Info, data); break; } case (PcdbFieldId.Name | PcdbFieldId.Group): { data.AppendLine("\r\n; names\r\n"); var groupName = (PcdbListContainer<PcdbName>)root; foreach (var fieldName in groupName) FormatField(fieldName, data); break; } case PcdbFieldId.Name: { var fieldName = (PcdbName)root; data.AppendLine(String.Format(" {0,-32} | {1}", fieldName.Name, fieldName.Timestamp.ToString(Utils.DateTimePatternLong))); break; } case (PcdbFieldId.Ip | PcdbFieldId.Group): { data.AppendLine("\r\n; ip addresses\r\n"); var groupIp = (PcdbListContainer<PcdbIp>)root; foreach (var fieldIp in groupIp) FormatField(fieldIp, data); break; } case PcdbFieldId.Ip: { var fieldIp = (PcdbIp)root; data.AppendLine(String.Format(" {0,-32} | {1}", fieldIp.Ip, fieldIp.Timestamp.ToString(Utils.DateTimePatternLong))); break; } case (PcdbFieldId.Gsid | PcdbFieldId.Group): { data.AppendLine("\r\n; gamespy id's\r\n"); var groupGsid = (PcdbListContainer<PcdbGsid>)root; foreach (var fieldGsid in groupGsid) FormatField(fieldGsid, data); break; } case PcdbFieldId.Gsid: { var fieldGsid = (PcdbGsid)root; data.AppendLine(String.Format(" {0,-32} | {1}", fieldGsid.Gsid, fieldGsid.Timestamp.ToString(Utils.DateTimePatternLong))); break; } case PcdbFieldId.Comment: { data.AppendLine("\r\n; comments\r\n"); data.AppendLine((PcdbItemContainer<string>)root); data.AppendLine("\r\n; ----\r\n"); break; } } }
public void DataToClipboard(IPcdbField root) { var data = new StringBuilder(); FormatField(root, data); Clipboard.SetText(data.ToString()); }