示例#1
1
        static void Main(string[] argv)
        {
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
            Application.ThreadException += Application_ThreadException;

            #if !DEBUG
            //if (!Util.VerifyKey())
            //{
            //    using (var form = new RegisterForm())
            //    {
            //        DialogResult res = form.ShowDialog();
            //        if (res == DialogResult.OK)
            //            Application.Restart();
            //    }

            //    return;
            //}
            #endif
            try
            {
                DevExpress.UserSkins.OfficeSkins.Register();
                DevExpress.UserSkins.BonusSkins.Register();
                DevExpress.Skins.SkinManager.EnableFormSkins();

                DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("Devexpress Style");

                int count = 0;
                IDataStore dataStore = null;
            RETRY:
                try
                {
                    dataStore = XpoDefault.GetConnectionProvider(
                        MSSqlConnectionProvider.GetConnectionString(Properties.Settings.Default.SqlInstanceName, "FaceCapture"),
                        AutoCreateOption.DatabaseAndSchema);

                }
                catch (Exception ex)
                {
                    ++count;
                    if (count == 3)
                    {
                        MessageBox.Show("无法连接数据库,请确认数据库已经正确安装。", "数据库", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    else
                    {
                        //让sqlserver有时间启动。
                        System.Threading.Thread.Sleep(3000);
                        goto RETRY;
                    }
                }

                using (SimpleDataLayer dataLayer = new SimpleDataLayer(dataStore))
                {
                    using (Session session = new Session(dataLayer))
                    {
                        session.UpdateSchema();
                        session.CreateObjectTypeRecords(
                            typeof(Damany.PortraitCapturer.DAL.DTO.CapturedImageObject),
                            typeof(Damany.PortraitCapturer.DAL.DTO.Video),
                            typeof(Damany.PortraitCapturer.DAL.DTO.Portrait),
                            typeof(Damany.PortraitCapturer.DAL.DTO.Frame),
                            typeof(Damany.PortraitCapturer.DAL.DTO.TargetPerson));
                        var cachNode = new DataCacheNode(new DataCacheRoot(dataStore));
                        XpoDefault.DataLayer = new ThreadSafeDataLayer(session.Dictionary, cachNode);
                    }
                }

                try
                {

            #if !DEBUG
                    //if (!Util.VerifyKey())
                    //{
                    //    RegisterForm form = new RegisterForm();
                    //    DialogResult res = form.ShowDialog();
                    //    if (res == DialogResult.OK)
                    //    {
                    //        Application.Restart();
                    //    }

                    //    return;
                    //}
            #endif

                    var modeCollection = new DevExpress.Xpo.XPCollection<WorkModeCamSetting>();
                    modeCollection.Load();

                    if (modeCollection.Count == 0)
                    {
                        var workingModeSettings = new WorkModeCamSetting();
                        workingModeSettings.ModeName = "室外模式";
                        workingModeSettings.ShutterSpeed = 3;
                        workingModeSettings.IrisLevel = 40;
                        workingModeSettings.Save();

                        workingModeSettings = new WorkModeCamSetting();
                        workingModeSettings.ShutterSpeed = 1;
                        workingModeSettings.IrisLevel = 50;
                        workingModeSettings.ModeName = "室内模式";
                        workingModeSettings.Save();
                    }

                    foreach (var workModeCamSetting in modeCollection)
                    {
                        var dummy = workModeCamSetting;
                        System.Diagnostics.Debug.WriteLine(dummy);
                    }

                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);

                    var strapper = new StartUp();
                    strapper.Start();

                    var mainForm = strapper.Container.Resolve<RemoteImaging.RealtimeDisplay.MainForm>();
                    var controller = strapper.Container.Resolve<MainController>();
                    mainForm.AttachController(controller);

                    mainForm.ButtonsVisible =
                        (ButtonsVisibleSectionHandler)System.Configuration.ConfigurationManager.GetSection("FaceDetector.ButtonsVisible");

                    try
                    {
                        //StartLicensePlateMonitor(strapper.Container);
                        WireupNavigation(strapper.Container);

                        //RegisterLicensePlateRepository(strapper);
                    }
                    catch (Exception e)
                    {
                        HandleException(e);
                    }

                    Application.Run(mainForm);

                }
                catch (Exception e)
                {
                    HandleException(e);
                }

            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
        }
        public static SimpleDataLayer CreateCachedDataLayer(this XafApplication xafApplication, IDataStore argsDataStore)
        {
            var cacheRoot = new DataCacheRoot(argsDataStore);
            var cacheNode = new DataCacheNode(cacheRoot);

            return(new SimpleDataLayer(XpoTypesInfoHelper.GetXpoTypeInfoSource().XPDictionary, cacheNode));
        }
示例#3
0
        public static SimpleDataLayer CreateCachedDataLayer(this XafApplication xafApplication, IDataStore argsDataStore)
        {
            var cacheRoot = new DataCacheRoot(argsDataStore);
            var cacheNode = new DataCacheNode(cacheRoot);

            return(new SimpleDataLayer(XpandModuleBase.Dictiorary, cacheNode));
        }
示例#4
0
 public IDataStore CreateWorkingStore(out IDisposable[] disposableObjects) {
     disposableObjects = null;
     if ((ConfigurationManager.AppSettings["DataCache"] + "").Contains("Client")) {
         var cacheNode = HttpContext.Current.Application["DataStore"] as DataCacheNode;
         if (cacheNode == null) {
             var cacheRoot = new DataCacheRoot(Proxy.DataStore);
             cacheNode = new DataCacheNode(cacheRoot);
         }
         return cacheNode;
     }
     return Proxy;
 }
示例#5
0
 IDataStore IXafApplicationDataStore.GetDataStore(IDataStore dataStore)
 {
     if ((ConfigurationManager.AppSettings["DataCache"] + "").Contains("Client"))
     {
         if (_cacheNode == null)
         {
             var _cacheRoot = new DataCacheRoot(dataStore);
             _cacheNode = new DataCacheNode(_cacheRoot);
         }
         return(_cacheNode);
     }
     return(null);
 }
示例#6
0
 IDataStore IXafApplication.GetDataStore(IDataStore dataStore)
 {
     if ((ConfigurationManager.AppSettings["DataCache"] + "").Contains("Client"))
     {
         var cacheNode = HttpContext.Current.Application["DataStore"] as DataCacheNode;
         if (cacheNode == null)
         {
             var _cacheRoot = new DataCacheRoot(dataStore);
             cacheNode = new DataCacheNode(_cacheRoot);
         }
         return(cacheNode);
     }
     return(null);
 }
示例#7
0
 public IDataStore CreateWorkingStore(out IDisposable[] disposableObjects)
 {
     disposableObjects = null;
     if ((ConfigurationManager.AppSettings["DataCache"] + "").Contains("Client"))
     {
         var cacheNode = HttpContext.Current.Application["DataStore"] as DataCacheNode;
         if (cacheNode == null)
         {
             var cacheRoot = new DataCacheRoot(Proxy.DataStore);
             cacheNode = new DataCacheNode(cacheRoot);
         }
         return(cacheNode);
     }
     return(Proxy);
 }
示例#8
0
 static IDataStore CreateDataStore(string connectionString, bool enableCaching) {
     if (!enableCaching) {
         var connectionProvider = XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.DatabaseAndSchema);
         XpoDefault.Session = null;
         return connectionProvider;
     }
     var dataStore = HttpContext.Current.Application["datastore"] as IDataStore;
     if (dataStore == null) {
         var subjectForCache = XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.DatabaseAndSchema);
         var _cacheRoot = new DataCacheRoot(subjectForCache);
         dataStore = new DataCacheNode(_cacheRoot);
         HttpContext.Current.Application["datastore"] = dataStore;
     }
     XpoDefault.Session = null;
     return dataStore;
 }
示例#9
0
        protected override IDataLayer CreateDataLayer(IDataStore workingDataStore)
        {
            var cacheRoot = new DataCacheRoot(workingDataStore);
            var cacheNode = new DataCacheNode(cacheRoot);

            //下面这种方式是仅用 PmsOrder表、EdsProd表
            //var cfg = new DataCacheConfiguration(DataCacheConfigurationCaching.InList, "PmsOrder","EdsProd");
            //下面的方式是关闭除指定的。其他的,都启用。
            var cfg = new DataCacheConfiguration(DataCacheConfigurationCaching.NotInList, "Online", "OnlineItem");

            cacheRoot.Configure(cfg);
            //可以自己选用一种方式,然后开启上面这行

            if (this.threadSafe)
            {
                return(new ThreadSafeDataLayer(this.XPDictionary, cacheNode, new Assembly[0]));
            }
            return(new SimpleDataLayer(this.XPDictionary, cacheNode));
        }
示例#10
0
        static IDataStore CreateDataStore(string connectionString, bool enableCaching)
        {
            if (!enableCaching)
            {
                var connectionProvider = XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.DatabaseAndSchema);
                XpoDefault.Session = null;
                return(connectionProvider);
            }
            var dataStore = HttpContext.Current.Application["datastore"] as IDataStore;

            if (dataStore == null)
            {
                var subjectForCache = XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.DatabaseAndSchema);
                var _cacheRoot      = new DataCacheRoot(subjectForCache);
                dataStore = new DataCacheNode(_cacheRoot);
                HttpContext.Current.Application["datastore"] = dataStore;
            }
            XpoDefault.Session = null;
            return(dataStore);
        }
示例#11
0
 DataCacheNode IXafApplication.GetDataCacheRoot(IDataStore dataStore) {
     if ((ConfigurationManager.AppSettings["DataCache"] + "").Contains("Client")) {
         if (_cacheNode == null) {
             var _cacheRoot = new DataCacheRoot(dataStore);
             _cacheNode = new DataCacheNode(_cacheRoot);
         }
         return _cacheNode;
     }
     return null;
 }
示例#12
0
        static void Main(string[] argv)
        {
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
            Application.ThreadException += Application_ThreadException;


#if !DEBUG
            //if (!Util.VerifyKey())
            //{
            //    using (var form = new RegisterForm())
            //    {
            //        DialogResult res = form.ShowDialog();
            //        if (res == DialogResult.OK)
            //            Application.Restart();
            //    }

            //    return;
            //}
#endif
            try
            {
                DevExpress.UserSkins.OfficeSkins.Register();
                DevExpress.UserSkins.BonusSkins.Register();
                DevExpress.Skins.SkinManager.EnableFormSkins();

                DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("Devexpress Style");


                int        count     = 0;
                IDataStore dataStore = null;
RETRY:
                try
                {
                    dataStore = XpoDefault.GetConnectionProvider(
                        MSSqlConnectionProvider.GetConnectionString(Properties.Settings.Default.SqlInstanceName, "FaceCapture"),
                        AutoCreateOption.DatabaseAndSchema);
                }
                catch (Exception ex)
                {
                    ++count;
                    if (count == 3)
                    {
                        MessageBox.Show("无法连接数据库,请确认数据库已经正确安装。", "数据库", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    else
                    {
                        //让sqlserver有时间启动。
                        System.Threading.Thread.Sleep(3000);
                        goto RETRY;
                    }
                }


                using (SimpleDataLayer dataLayer = new SimpleDataLayer(dataStore))
                {
                    using (Session session = new Session(dataLayer))
                    {
                        session.UpdateSchema();
                        session.CreateObjectTypeRecords(
                            typeof(Damany.PortraitCapturer.DAL.DTO.CapturedImageObject),
                            typeof(Damany.PortraitCapturer.DAL.DTO.Video),
                            typeof(Damany.PortraitCapturer.DAL.DTO.Portrait),
                            typeof(Damany.PortraitCapturer.DAL.DTO.Frame),
                            typeof(Damany.PortraitCapturer.DAL.DTO.TargetPerson));
                        var cachNode = new DataCacheNode(new DataCacheRoot(dataStore));
                        XpoDefault.DataLayer = new ThreadSafeDataLayer(session.Dictionary, cachNode);
                    }
                }

                try
                {
#if !DEBUG
                    //if (!Util.VerifyKey())
                    //{
                    //    RegisterForm form = new RegisterForm();
                    //    DialogResult res = form.ShowDialog();
                    //    if (res == DialogResult.OK)
                    //    {
                    //        Application.Restart();
                    //    }

                    //    return;
                    //}
#endif

                    var modeCollection = new DevExpress.Xpo.XPCollection <WorkModeCamSetting>();
                    modeCollection.Load();

                    if (modeCollection.Count == 0)
                    {
                        var workingModeSettings = new WorkModeCamSetting();
                        workingModeSettings.ModeName     = "室外模式";
                        workingModeSettings.ShutterSpeed = 3;
                        workingModeSettings.IrisLevel    = 40;
                        workingModeSettings.Save();

                        workingModeSettings = new WorkModeCamSetting();
                        workingModeSettings.ShutterSpeed = 1;
                        workingModeSettings.IrisLevel    = 50;
                        workingModeSettings.ModeName     = "室内模式";
                        workingModeSettings.Save();
                    }

                    foreach (var workModeCamSetting in modeCollection)
                    {
                        var dummy = workModeCamSetting;
                        System.Diagnostics.Debug.WriteLine(dummy);
                    }

                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);

                    var strapper = new StartUp();
                    strapper.Start();

                    var mainForm   = strapper.Container.Resolve <RemoteImaging.RealtimeDisplay.MainForm>();
                    var controller = strapper.Container.Resolve <MainController>();
                    mainForm.AttachController(controller);

                    mainForm.ButtonsVisible =
                        (ButtonsVisibleSectionHandler)System.Configuration.ConfigurationManager.GetSection("FaceDetector.ButtonsVisible");

                    try
                    {
                        //StartLicensePlateMonitor(strapper.Container);
                        WireupNavigation(strapper.Container);

                        //RegisterLicensePlateRepository(strapper);
                    }
                    catch (Exception e)
                    {
                        HandleException(e);
                    }

                    Application.Run(mainForm);
                }
                catch (Exception e)
                {
                    HandleException(e);
                }
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
        }
示例#13
0
 IDataStore IXafApplicationDataStore.GetDataStore(IDataStore dataStore) {
     if ((ConfigurationManager.AppSettings["DataCache"] + "").Contains("Client")) {
         var cacheNode = HttpContext.Current.Application["DataStore"] as DataCacheNode;
         if (cacheNode == null) {
             var _cacheRoot = new DataCacheRoot(dataStore);
             cacheNode = new DataCacheNode(_cacheRoot);
         }
         return cacheNode;
     }
     return null;
 }