public bool TryDeserialize(ISmartScriptProjectItem projectItem, out ISolutionItem?solutionItem) { solutionItem = null; if (projectItem.Type == 32 && projectItem.Comment != null) { var split = projectItem.Comment.Split(':'); if (split.Length != 2) { return(false); } var table = split[0]; var items = split[1].Split(',') .Where(i => uint.TryParse(i, out var _)) .Select(uint.Parse) .Select(i => new SolutionItemDatabaseEntity(i, true)); var dbItem = new DatabaseTableSolutionItem(table); dbItem.Entries.AddRange(items); solutionItem = dbItem; return(true); } return(false); }
public bool TryDeserialize(ISmartScriptProjectItem projectItem, out ISolutionItem?solutionItem) { solutionItem = null; if (projectItem.Type == 32 && projectItem.StringValue != null) { var split = projectItem.StringValue.Split(':'); if (split.Length != 2) { return(false); } var table = split[0]; var items = split[1].Split(',') .Where(i => uint.TryParse(i, out var _)) .Select(uint.Parse) .Select(i => new SolutionItemDatabaseEntity(i, true)); var dbItem = new DatabaseTableSolutionItem(table); if (string.IsNullOrEmpty(projectItem.Comment)) { dbItem.Entries.AddRange(items); } else { var entries = JsonConvert.DeserializeObject <List <SolutionItemDatabaseEntity> >(projectItem.Comment); dbItem.Entries.AddRange(entries); } solutionItem = dbItem; return(true); } return(false); }
public bool TryDeserialize(ISmartScriptProjectItem projectItem, out ISolutionItem?solutionItem) { if (projectItem.Type == 25 && !string.IsNullOrEmpty(projectItem.StringValue)) { solutionItem = new PacketDocumentSolutionItem(projectItem.StringValue); return(true); } solutionItem = null; return(false); }
public bool TryDeserialize(ISmartScriptProjectItem projectItem, out ISolutionItem?solutionItem) { if (projectItem.Type == 43) { solutionItem = new QuestChainSolutionItem(); return(true); } solutionItem = null; return(false); }
public bool TryDeserialize(ISmartScriptProjectItem projectItem, out ISolutionItem?solutionItem) { solutionItem = null; if (projectItem.Type < 100 || projectItem.Type >= 100 + (int)SmartScriptType.END) { return(false); } solutionItem = new SmartScriptSolutionItem(projectItem.Value, (SmartScriptType)(projectItem.Type - 100)); return(true); }
public bool TryDeserialize(ISmartScriptProjectItem item, out ISolutionItem?solutionItem) { foreach (var deserializer in deserializers) { if (deserializer.TryDeserialize(item, out solutionItem)) { return(true); } } solutionItem = null; return(false); }
public bool TryDeserialize(ISmartScriptProjectItem projectItem, out ISolutionItem?solutionItem) { solutionItem = null; if (projectItem.Type == 32 && projectItem.StringValue != null) { var split = projectItem.StringValue.Split(':'); if (split.Length != 2 && split.Length != 3) { return(false); } var table = split[0]; var items = split[1].Split(',') .Where(i => DatabaseKey.TryDeserialize(i, out var _)) .Select(DatabaseKey.Deserialize) .Select(i => new SolutionItemDatabaseEntity(i, true)); var deletedEntries = split.Length == 2 ? null : split[2].Split(',') .Where(i => DatabaseKey.TryDeserialize(i, out var _)) .Select(DatabaseKey.Deserialize); var definition = tableDefinitionProvider.GetDefinition(table); if (definition == null) { return(false); } var dbItem = new DatabaseTableSolutionItem(table, definition.IgnoreEquality); if (string.IsNullOrEmpty(projectItem.Comment)) { dbItem.Entries.AddRange(items); } else { var entries = JsonConvert.DeserializeObject <List <SolutionItemDatabaseEntity> >(projectItem.Comment); dbItem.Entries.AddRange(entries); } if (deletedEntries != null) { dbItem.DeletedEntries.AddRange(deletedEntries); } solutionItem = dbItem; return(true); } return(false); }
public bool TryDeserialize(ISmartScriptProjectItem projectItem, out ISolutionItem?solutionItem) { solutionItem = null; if (projectItem.Type == 42 && projectItem.StringValue != null && projectItem.StringValue.Contains(":")) { var index = projectItem.StringValue.IndexOf(":"); var id = projectItem.StringValue.Substring(0, index); var name = projectItem.StringValue.Substring(index + 1); solutionItem = new CustomSqlSolutionItem() { Id = id, Name = name, Query = (projectItem.Comment ?? "").Replace("\\n", "\n") }; return(true); } return(false); }
public bool TryDeserialize(ISmartScriptProjectItem projectItem, out ISolutionItem?solutionItem) { if (projectItem.Type == 25 && !string.IsNullOrEmpty(projectItem.StringValue)) { var indexOfPipe = projectItem.StringValue.IndexOf("|", StringComparison.Ordinal); var path = projectItem.StringValue; int?version = null; if (indexOfPipe != -1) { if (int.TryParse(path.Substring(0, indexOfPipe), out var version_)) { version = version_; path = path.Substring(indexOfPipe + 1); } } solutionItem = new PacketDocumentSolutionItem(path, version); return(true); } solutionItem = null; return(false); }