/* [JsonIgnore] * public FortScriptableObject ScriptableObject { get; set; }*/ public void Save(IInfo fortObject) { Tokens = new Dictionary <string, Object>(); try { using (MemoryStream stream = new MemoryStream()) { Serializer.Serializer serializer = new Serializer.Serializer(); serializer.Serialize(stream, fortObject, new UnityObjectSerializerToken(this)); SerializedData = Convert.ToBase64String(stream.ToArray()); } } catch (Exception e) { Debug.LogException(e); SerializedData = null; } /* SerializedData = JsonConvert.SerializeObject(fortObject, * new JsonSerializerSettings { Converters = { new UnityObjectConverter(this) }, /*Converters = { new ArrayReferencePreservngConverter() },#1# TypeNameHandling = TypeNameHandling.All/*,PreserveReferencesHandling = PreserveReferencesHandling.All#1#});*/ UnityObjectTokens = Tokens.Select(pair => new UnityObjectToken { Item = pair.Value, Token = pair.Key }).ToArray(); }
/// <summary> /// Returns the jsonified parsed content of the file. /// </summary> /// <param name="options"></param> /// <returns></returns> public virtual string ToJson(SerializerOptions options = null) { options = options ?? new SerializerOptions(); var _serializer = new Serializer.Serializer(options); return(_serializer.Serialize(this)); }
public void AddVirtualKeyFactory(Serializer.Serializer context, VirtualKeyFactory vf) { if (vf.Worker != this) { throw new Serializer.SerializerException(); } _virtualKeyFactories[context] = vf; }
public String ToSqlString(Serializer.Serializer serializer, Type type, String target) { StringBuilder b = new StringBuilder(); b.Append("NOT (").Append(_restriction.ToSqlString(serializer, type, target)).Append(") "); return(b.ToString()); }
public IList <Type> ComputeVirtualKeyPath(Serializer.Serializer context, Type from, Type to) { List <Type> ret = _virtualKeyFactories[context].ComputeVirtualKeyPath(from, to, new List <Type>()); ret.Reverse(); return(ret); }
public override String ToSqlString(Serializer.Serializer serializer, Type type, String target) { AttributeWorker w = AttributeWorker.GetInstance(target); IList <Type> path = w.ComputeVirtualKeyPath(serializer, _type, type); //ComputePath(type, _type, target); return(ComputeSqlJoin(serializer, path, _sqlString, target).ToString()); }
public string ToSqlString(Serializer.Serializer serializer, Type type, String target) { StringBuilder tmp = new StringBuilder(); tmp.Append("("); tmp.Append(_restriction.ToSqlString(serializer, type, target)); tmp.Append(") "); return(tmp.ToString()); }
protected StringBuilder ComputeSqlJoin(Serializer.Serializer serializer, IList <Type> path, String restriction, String target) { AttributeWorker w = AttributeWorker.GetInstance(target); QueryGenerator ret = new QueryGenerator(); ret.AddQueryComponent(new PlaceHolderComponent()); //StringBuilder b = new StringBuilder(); //b.Append(" @@@"); for (int i = 0; i < path.Count - 1; i++) { Type from = path[i]; Type to = path[i + 1]; //if (i > 0) //{ // b.Replace(" @@@", " WHERE @@@"); //} IVirtualKey vKey = w.CreateVirtualKey(serializer, from, to); QueryGenerator gen1 = vKey.ToSqlRestriction(target, from, to, serializer); ret.ReplacePlaceHolders(gen1); //b.Replace(" @@@", vKey.ToSqlRestriction(target, from, to)); if (i == path.Count - 2) { QueryGenerator gen2 = new QueryGenerator(); gen2.AddQueryComponent(new SqlStringComponent(" WHERE ")); gen2.AddQueryComponent(new SqlStringComponent(restriction)); ret.ReplacePlaceHolders(gen2); //b.Replace(" @@@", " WHERE @@@"); //b.Replace(" @@@", restriction); } } if (path.Count == 1) { QueryGenerator gen3 = new QueryGenerator(); gen3.AddQueryComponent(new SqlStringComponent(" WHERE ")); gen3.AddQueryComponent(new SqlStringComponent(restriction)); ret.ReplacePlaceHolders(gen3); //b.Replace(" @@@", " WHERE @@@"); //b.Replace(" @@@", restriction); } //Entferne das führende " WHERE " return(ret.ToSqlString()); //return b.Remove(0,7); }
public TcpServer(int port, HandlersRegistry reg, Serializer.Serializer serializer) { Serializer = serializer; Registry = reg; Server = new TcpListener(GetLocalIp(), port); Server.Start(); StartAccepting(); Console.WriteLine("Server started at " + Server.LocalEndpoint); }
static void Main(string[] args) { Collection <Factory> collection = new Collection <Factory>(); collection.Add(new Factory("Гвозди", 728, 1000)); collection.Add(new Factory("Коленвалы", 1307, 30)); collection.Add(new Factory("Бюсты", 1508, 6000000)); collection.Add(new Factory("Обувь", 168, 2000)); collection.Add(new Factory("Лопапты", 6606, 666)); collection.Add(new Factory("Кирпичи", 1400, -28)); Serializer.Serializer serializer = new Serializer.Serializer(); serializer.SerializeByLINQ(collection, "FactoriesLINQ.xml"); serializer.SerializeXML(collection, "FactoriesXML.xml"); serializer.SerializeJSON(collection, "FactoriesJson.json"); Collection <Factory> outCollectionLinq = new Collection <Factory>(); Console.WriteLine("\nВывод из файла LINQ:"); foreach (var factory in serializer.DeSerializeByLINQ("FactoriesLINQ.xml")) { outCollectionLinq.Add(factory); } foreach (Factory factory in outCollectionLinq) { factory.Info(); } Collection <Factory> outCollectionXml = new Collection <Factory>(); Console.WriteLine("\nВывод из файла XML:"); foreach (var factory in serializer.DeSerializeXML("FactoriesXML.xml")) { outCollectionXml.Add(factory); } foreach (Factory factory in outCollectionXml) { factory.Info(); } Collection <Factory> outCollectionJson = new Collection <Factory>(); Console.WriteLine("\nВывод из файла JSON:"); foreach (var factory in serializer.DeSerializeJSON("FactoriesJson.json")) { outCollectionJson.Add(factory); } foreach (Factory factory in outCollectionJson) { factory.Info(); } }
/// <summary> /// Exports the jsonified parsed content of the file. /// </summary> /// <param name="options"></param> /// <param name="fileName"></param> public virtual void Export(SerializerOptions options = null, string fileName = "") { options = options ?? new SerializerOptions(); if (string.IsNullOrWhiteSpace(fileName)) { fileName = Utils.GetExportFileName(FileName, options.Compression); } var _serializer = new Serializer.Serializer(options); _serializer.Export(fileName, this); }
public QueryGenerator ToSqlRestriction(String target, Type from, Type to, Serializer.Serializer ser) { if (from == _sourceType && to == _targetType) { return(ToSqlRestrictionForward(target, ser)); } else if (from == _targetType && to == _sourceType) { return(ToSqlRestrictionBackward(target, ser)); } throw new Exception(); }
public override string ToSqlString(Serializer.Serializer serializer, Type type, string target) { AttributeWorker w = AttributeWorker.GetInstance(target); FieldInfo f = w.RetrieveField(_type, _field, false); if (f == null) { throw new RestrictionException("Field '" + _field + "' not found in '" + _type.ToString() + "'"); } if (!(_value is String) || f.FieldType != typeof(String)) { throw new RestrictionException("LIKE operator can only applied to Strings"); } return(base.ToSqlString(serializer, type, target)); }
private QueryGenerator ToSqlRestrictionForward(String target, Serializer.Serializer ser) { AttributeWorker w = AttributeWorker.GetInstance(target); QueryGenerator gen = new QueryGenerator(); gen.AddQueryComponent(new SqlStringComponent(" WHERE ")); bool start = true; foreach (String key in _virtualDefKeyFields.Keys) { if (!start) { gen.AddQueryComponent(new SqlStringComponent(" AND ")); } else { gen.AddQueryComponent(new SqlStringComponent("(")); } start = false; String translatedKey = _keyTranslation[key]; FieldInfo joinField = _virtualJoinKeyFields[translatedKey]; String joinMapping = w.GetColumnMapping(joinField); FieldInfo defField = _virtualDefKeyFields[key]; String defMapping = w.GetColumnMapping(defField); StringBuilder tmp = new StringBuilder(); tmp.Append(defMapping).Append(" IN (SELECT ").Append(joinMapping).Append(" FROM "); tmp.Append(w.GetTableMapping(TargetType, ser.Praefix)); gen.AddQueryComponent(new SqlStringComponent(tmp)); gen.AddQueryComponent(new PlaceHolderComponent()); gen.AddQueryComponent(new SqlStringComponent(")")); } gen.AddQueryComponent(new SqlStringComponent(")")); return(gen); //ret.Append(")"); //return ret.ToString(); }
public override String ToSqlString(Serializer.Serializer serializer, Type type, String target) { AttributeWorker w = AttributeWorker.GetInstance(target); IList <Type> path = w.ComputeVirtualKeyPath(serializer, _type, type); //ComputePath(_type, type, target); StringBuilder b = new StringBuilder(); FieldInfo f = w.RetrieveField(_type, _field, false); if (f == null) { throw new RestrictionException("Field '" + _field + "' not found in '" + _type.ToString() + "'"); } b.Append(w.GetColumnMapping(f)); b.Append(_comparer).Append(SqlUtil.SqlConvert(_value)); String tmp = ComputeSqlJoin(serializer, path, b.ToString(), target).ToString(); return(tmp); }
public virtual string ToSqlString(Serializer.Serializer serializer, Type type, String target) { StringBuilder b = new StringBuilder(); bool start = true; foreach (IRestriction r in _restriction) { if (!start) { b.Append(_connector); b.Append(r.ToSqlString(serializer, type, target).Remove(0, 7)); } else { start = false; b.Append(r.ToSqlString(serializer, type, target)); } } return(b.ToString()); }
public IInfo Load(Type objectType) { if (UnityObjectTokens == null) { UnityObjectTokens = new UnityObjectToken[0]; } Tokens = UnityObjectTokens.ToDictionary(token => token.Token, token => token.Item); if (string.IsNullOrEmpty(SerializedData) || SerializedData == "null") { return((IInfo)Activator.CreateInstance(objectType)); } try { using (MemoryStream stream = new MemoryStream(Convert.FromBase64String(SerializedData))) { Serializer.Serializer serializer = new Serializer.Serializer(); object deserialize = serializer.Deserialize(stream, new UnityObjectSerializerToken(this)); if (deserialize == null) { return(null); } if (!objectType.IsInstanceOfType(deserialize)) { throw new Exception("Invalid Item on loading in FortScriptableObject"); } return((IInfo)deserialize); } /* return * JsonConvert.DeserializeObject(SerializedData, * new JsonSerializerSettings { Converters = { new UnityObjectConverter(this) }, /*Converters = { new ArrayReferencePreservngConverter() },#1# TypeNameHandling = TypeNameHandling.All/*, PreserveReferencesHandling = PreserveReferencesHandling.All#1# });*/ } catch (Exception e) { Debug.LogException(e); return((IInfo)Activator.CreateInstance(objectType)); } }
public abstract string ToSqlString(Serializer.Serializer serializer, Type type, String target);
public ItemsDataStore(Version currentVersion) { _currentVersion = currentVersion; _serializer = new Serializer.Serializer(); }
public bool IsForeignKey(Serializer.Serializer context, FieldInfo fi) { return(_virtualKeyFactories[context].IsForeignKey(fi)); }
public IVirtualKey CreateVirtualKey(Serializer.Serializer context, Type source, Type target) { return(_virtualKeyFactories[context].GetVirtualKeyTemplate(source, target).CreateFromTemplate()); }
public Rpc(Serializer.Serializer serializer) { Client = new TcpClient(); Serializer = serializer; }