Beispiel #1
0
        public IEnumerable <TableDataRecord> Query(IOEngine io, string tableName, string entityId,
                                                   string parentIdFilter = null, IQueryCollection queryParams = null)
        {
            var td = io.Tables[tableName].GetData(entityId);

            td.Records.ParentIdFilter = parentIdFilter;

            var result = td.Records.ToList();

            if (queryParams != null && queryParams.ContainsKey("select"))
            {
                string selectedFieldsList = queryParams["select"];

                var selectedFields = selectedFieldsList.Split(',');

                foreach (var tdr in result)
                {
                    tdr.Properties = new Dictionary <string, object>();

                    foreach (var p in selectedFields)
                    {
                        if (io.Tables[tableName].Fields.ContainsKey(p.ToLower()))
                        {
                            tdr.Properties.Add(_dataModelRepository.GetFieldName(tableName, p), tdr.get_ItemConverted(p));
                        }
                    }
                }
            }

            return(result);
        }
Beispiel #2
0
        public IEnumerable <IDictionary <string, object> > GetLibrary(IOEngine io, string libraryName)
        {
            var list = new List <Dictionary <string, object> >();

            var datatable = io.Library.GetDataTable(libraryName);

            var idx = 0;

            foreach (DataRow row in datatable.Rows)
            {
                var val = new Dictionary <string, object>();

                val["recordId"] = idx;

                foreach (DataColumn col in datatable.Columns)
                {
                    val[col.ColumnName] = row[col.ColumnName];
                }

                list.Add(val);

                idx++;
            }

            return(list);
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += new ResolveEventHandler(CurrentDomain_ReflectionOnlyAssemblyResolve);

            var mainFolder = @"C:\Peloton\WellView";

            var assembly = Assembly.LoadFrom(mainFolder + @"\system\bin\Peloton.AppFrame.IO.dll");
            var library  = Assembly.LoadFrom(mainFolder + @"\system\bin\Peloton.AppFrame.Library.dll");

            var io = new IOEngine(mainFolder + @"\system", mainFolder + @"\custom", mainFolder + @"\user", "All Data", "", "US");

            io.Connect(DBMS.SQLCompact, mainFolder + @"\user\database\wv10.0 sample.sdf", "", "", "", true);

            var dt = io.Library.GetDataTable("libcascomp");

            var firstEntity = io.Search("SELECT idwell from wvwellheader", new List <object>()).FirstOrDefault();

            var td = io.Tables["wvjob"].GetData(firstEntity);

            var tdrc = td.Records;

            var f = tdrc[0];

            var lastRecordId = tdrc.Last().UniqueId;

            var tdr = tdrc[lastRecordId];

            var doesContain = tdrc.Contains(lastRecordId);

            var removedRecord = tdrc.Remove(lastRecordId);

            td.Update(true);

            Console.WriteLine("Done!");
        }
Beispiel #4
0
        public void Delete(IOEngine io, string tableName, string entityId, string uniqueId)
        {
            var td = io.Tables[tableName].GetData(entityId);

            if (td.Records.Contains(uniqueId))
            {
                td.Records.Remove(uniqueId);

                td.Update(true);
            }
        }
Beispiel #5
0
            private static void Start()
            {
                if (Instance != null)
                {
                    return;
                }
                Instance        = new IOEngine();
                Instance.thread = new Thread(Instance.Main);
                Instance.thread.Start();
#if UNITY_EDITOR
                AssemblyReloadEvents.beforeAssemblyReload += Instance.OnBeforeAssemblyReload;
#endif
            }
Beispiel #6
0
        public TableDataRecord Create(IOEngine io, string parentTableName, string tableName, string entityId, string parentId, IDictionary <string, object> properties)
        {
            properties = new Dictionary <string, object>(properties, StringComparer.OrdinalIgnoreCase);

            TableData       td;
            TableDataRecord tdr;

            if (io.TableMain.Key == tableName)
            {
                entityId = io.AddEntity();
                td       = io.Tables[tableName].GetData(entityId);
                tdr      = td.Records[entityId];
            }
            else
            {
                td  = io.Tables[tableName].GetData(entityId);
                tdr = td.Records.Add(parentId);
            }

            var newUniqueId = tdr.UniqueId;

            foreach (var p in properties.Where(prop => io.Tables[tableName].Fields.ContainsKey(prop.Key)))
            {
                try
                {
                    tdr.set_ItemConverted(p.Key.ToLower(), p.Value);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }

            td.Update(true);

            td.Refresh();

            tdr = td.Records[newUniqueId];

            tdr.Properties = new Dictionary <string, object>();

            foreach (var p in io.Tables[tableName.ToLower()].Fields.Keys)
            {
                tdr.Properties.Add(_dataModelRepository.GetFieldName(tableName, p), tdr.get_ItemConverted(p));
            }

            return(tdr);
        }
Beispiel #7
0
        public TableDataRecord Update(IOEngine io, string tableName, string entityId, string uniqueId,
                                      IDictionary <string, object> properties)
        {
            properties = new Dictionary <string, object>(properties, StringComparer.OrdinalIgnoreCase);

            var td = io.Tables[tableName].GetData(entityId);

            var tdr = td.Records[uniqueId];

            foreach (var f in io.Tables[tableName].Fields)
            {
                try
                {
                    tdr.set_ItemConverted(f.Key, properties.ContainsKey(f.Key) ? properties[f.Key] : null);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }

            td.Update(true);

            td.Refresh();

            tdr = td.Records[uniqueId];

            tdr.Properties = new Dictionary <string, object>();

            foreach (var p in io.Tables[tableName.ToLower()].Fields.Keys)
            {
                tdr.Properties.Add(_dataModelRepository.GetFieldName(tableName, p), tdr.get_ItemConverted(p));
            }


            return(tdr);
        }
Beispiel #8
0
        public TableDataRecord Get(IOEngine io, string tableName, string entityId, string uniqueId,
                                   IQueryCollection queryParams = null)
        {
            var td = io.Tables[tableName].GetData(entityId);

            var tdr = td.Records[uniqueId];

            tdr.Properties = new Dictionary <string, object>();

            if (queryParams != null && queryParams.ContainsKey("select"))
            {
                string selectedFieldsList = queryParams["select"];

                var selectedFields = selectedFieldsList.Split(',');

                foreach (var p in selectedFields)
                {
                    if (io.Tables[tableName].Fields.ContainsKey(p.ToLower()))
                    {
                        tdr.Properties.Add(_dataModelRepository.GetFieldName(tableName, p), tdr.get_ItemConverted(p));
                    }
                }
            }
            else
            {
                foreach (var p in io.Tables[tableName.ToLower()].Fields.Keys)
                {
                    if (io.Tables[tableName].Fields.ContainsKey(p.ToLower()))
                    {
                        tdr.Properties.Add(_dataModelRepository.GetFieldName(tableName, p), tdr.get_ItemConverted(p));
                    }
                }
            }

            return(tdr);
        }
Beispiel #9
0
 public void CheckIn(IOEngine io)
 {
     _pool.PutObject(io);
 }
Beispiel #10
0
        public IList <string> SearchEntities(IOEngine io, string sql, List <object> parameters)
        {
            var result = io.Search(sql, parameters);

            return(result);
        }
Beispiel #11
0
 public TableMeta GetTable(IOEngine io, string tableName)
 {
     return(new TableMeta(io.Tables[tableName]));
 }
Beispiel #12
0
 public IList <string> GetTables(IOEngine io)
 {
     return(io.Tables.Keys.OrderBy(t => t).ToList());
 }
Beispiel #13
0
        private void Initialize(IStartupOptions startOptions)
        {
            LogInformation("Initializing core..");

            if (File.Exists(startOptions.ConfigFile))
            {
                LogInformation("Loading configuration.");
                //The IOManager is not initialized yet, so read the data directly.
                Settings = JsonConvert.DeserializeObject <MetaServerSettings>(File.ReadAllText(startOptions.ConfigFile));
            }
            else
            {
                LogInformation("Initializing new configuration.");
                Settings = new MetaServerSettings(startOptions.RootPath)
                {
                    //TODO: Add additional startup options.
                };
            }

            #region Create Directory Structure.

            if (Directory.Exists(Settings.RootPath) == false)
            {
                Directory.CreateDirectory(Settings.RootPath);
            }

            if (Directory.Exists(Settings.TransactionPath) == false)
            {
                Directory.CreateDirectory(Settings.TransactionPath);
            }

            #endregion

            //Settings.LoginFile

            if (File.Exists(Settings.ConfigFile) == false)
            {
                //The IOManager is not initialized yet, so write the data directly.
                File.WriteAllText(Settings.ConfigFile, JsonConvert.SerializeObject(Settings));
            }

            if (File.Exists(Settings.LoginFile) == false)
            {
                var loginCatalog = new MetaLoginCollection();

#if DEBUG
                var defaultLogin = new MetaLogin("root");
                defaultLogin.SetPassword("p@ssWord!");
                loginCatalog.Add(defaultLogin);
#endif

                //The IOManager is not initialized yet, so write the data directly.
                File.WriteAllText(Settings.LoginFile, JsonConvert.SerializeObject(loginCatalog));
            }

            LogInformation("Initializing security engine.");
            Security = new SecurityEngine(this);

            LogInformation("Initializing IO engine.");
            IO = new IOEngine(this);

            LogInformation("Initializing schema engine.");
            Schema = new SchemaEngine(this);

            LogInformation("Initializing session engine.");
            Session = new SessionEngine(this);

            LogInformation("Initializing latch engine.");
            Latch = new LatchEngine(this);

            LogInformation("Initializing transaction engine.");
            Transaction = new TransactionEngine(this);

            LogInformation("Initializing document engine.");
            Document = new DocumentEngine(this);

            LogInformation("Initializing query engine.");
            Query = new QueryEngine(this);

            LogInformation("Starting transaction recovery.");
            Transaction.Recover();
            LogInformation("Transaction recovery complete.");
        }