Exemple #1
0
        public void AddLog(EJ.DB.easyjob db, int userid, int databaseid)
        {
            var log = new EJ.SysLog();

            log.DatabaseId = databaseid;
            log.Content    = this.ToJsonString();
            log.UserId     = userid;
            log.Type       = this.GetType().Name;
            log.Time       = DateTime.Now;
            db.Insert(log);
        }
Exemple #2
0
        public object Save(EJ.DB.easyjob db, int databaseid)
        {
            BeforeSave();

            var action = new EntityDB.CustomDataItem("__action", "id", null);

            action.SetValue("type", this.GetType().Name);
            action.SetValue("databaseid", databaseid);
            action.SetValue("content", this.ToJsonString());

            db.Insert(action);
            return(action.GetValue("id"));
        }
Exemple #3
0
        public object Save(EJ.DB.easyjob db, int databaseid)
        {
            BeforeSave();

            var action = new EJ.DesignHistory();

            action.Type       = this.GetType().Name;
            action.DatabaseId = databaseid;
            action.Content    = this.ToJsonString();

            var actionObject = IDDict.GetOrAdd(databaseid, new ActionIdObject());

            lock (actionObject)
            {
                if (actionObject.ActionId == 0)
                {
                    actionObject.ActionId = db.DesignHistory.Where(m => m.DatabaseId == databaseid).Max(m => m.ActionId).GetValueOrDefault();
                }
            }
            action.ActionId = System.Threading.Interlocked.Increment(ref actionObject.ActionId);

            db.Insert(action);
            return(action.ActionId);
        }
Exemple #4
0
        public static void Main(string[] args)
        {
            HttpServer server = null;

            try
            {
                Console.OutputEncoding = System.Text.Encoding.UTF8;

                int port = 6068;
                if (args != null && args.Length > 0)
                {
                    port = Convert.ToInt32(args[0]);
                }

                Console.WriteLine($"server starting at port:{port}...");
                var webroot = $"{AppDomain.CurrentDomain.BaseDirectory}Port{port}";

                if (!System.IO.Directory.Exists(webroot))
                {
                    System.IO.Directory.CreateDirectory(webroot);
                }

                if (System.IO.File.Exists($"{webroot}/main.html") == false)
                {
                    System.IO.File.WriteAllText($"{webroot}/main.html", "<html><body controller=\"Way.EJServer.MainController\"></body></html>");
                }

                server = new HttpServer(new int[] { port }, webroot);
                Console.WriteLine($"Root:{server.Root}");

                server.RegisterHandler(new DownLoadCodeHandler());
                server.RegisterHandler(new DownLoadSimpleCodeHandler());
                server.RegisterHandler(new DownloadTableDataHandler());
                server.RegisterHandler(new ImportDataHandler());
                server.RegisterHandler(new ImportCSFileHandler());

                server.UseHttps(new X509Certificate2(Way.Lib.PlatformHelper.GetAppDirectory() + "EJServerCert.pfx", "123456"), true);
                Console.WriteLine($"use ssl EJServerCert.pfx");

                server.SessionTimeout = 60 * 24;


                //copy action table data
                //复制action表
                using (var db = new EJ.DB.easyjob($"Data Source=\"{webroot}/EasyJob.db\"", DatabaseType.Sqlite))
                {
                    if (db.DesignHistory.Count() == 0)
                    {
                        db.BeginTransaction();
                        try
                        {
                            db.Database.ExecuteReader((reader) =>
                            {
                                db.Insert(new DesignHistory()
                                {
                                    ActionId   = Convert.ToInt32(reader["id"]),
                                    Type       = (string)reader["type"],
                                    Content    = (string)reader["content"],
                                    DatabaseId = Convert.ToInt32(reader["databaseid"]),
                                });
                                return(true);
                            }, "select * from __action", null);
                            db.CommitTransaction();
                        }
                        catch (Exception)
                        {
                            db.RollbackTransaction();
                            throw;
                        }
                    }
                }

                server.Start();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            while (true)
            {
                Console.Write("Web>");
                var line = Console.ReadLine();
                if (line == null)
                {
                    //是在后台运行的
                    while (true)
                    {
                        System.Threading.Thread.Sleep(10000000);
                    }
                }
                else if (line == "exit")
                {
                    break;
                }
            }
            server?.Stop();
            System.Diagnostics.Process.GetCurrentProcess().Kill();
        }