Exemple #1
0
        private HotFixClient()
        {
            "log".Log("Application will run almost in hot fix client..");
            mCommonUpdaters = new CommonUpdaters();

            mStateMapper = new KeyValueList <IState, IUpdate>();
            mFSMMapper   = new KeyValueList <IStateMachine, IUpdate>();

            Modulars = new DecorativeModulars();
            Configs  = new ConfigHelper();
            Datas    = new DataWarehouse();
            FSMs     = new StateMachines
            {
                FSMFrameUpdater   = OnFSMFrameUpdater,
                StateFrameUpdater = OnStateFrameUpdater,
            };

            Sounds = new SoundEffects();
            Sounds.Init();

            #region 对主工程框架中热更端需要覆盖的各功能单元做重填充,以使得相同功能的代码定义转移到热更端
            Framework framework = Framework.Instance;
            framework.ReloadUnit(new IFrameworkUnit[] {
                framework.CreateUnitByBridge(Framework.UNIT_MODULARS, Modulars),
                framework.CreateUnitByBridge(Framework.UNIT_CONFIG, Configs),
                framework.CreateUnitByBridge(Framework.UNIT_DATA, Datas),
                framework.CreateUnitByBridge(Framework.UNIT_FSM, FSMs),
                framework.CreateUnitByBridge(Framework.UNIT_SOUND, Sounds),
            });
            #endregion
        }
        public GloveModel()
        {
            gc = GloveController.GetSingleton(ModelType.HandOnly);
            //            var mLogger = Logger.GetInstance(mw.txt_log);
            //            gc.RegisterLogger(mLogger);

            //if (!gc.IsConnected((int)handType)) //接入手套
            //{
            //    gc.Connect(chuankou, 0);       //连接手套和串口
            //}
            rhb             = Rehabilitation.GetSingleton();
            dh              = DataWarehouse.GetSingleton();
            sc              = SkeletonCalculator.GetSingleton("");
            handinformation = HandInf.GetSingleton();

            OptimizedData = HandInf.GetSingleton();

            fram       = new SkeletonJson();
            Mychuankou = "COM3";


            //pullDataTimer = new Timer(500);
            //pullDataTimer.Elapsed += pullDataTimer_Tick;
            //pullDataTimer.Start();
        }
Exemple #3
0
        public void Start(int ticks)
        {
            Tester.Instance.Log(TesterBaseApp.LOG, IsStarted, "warning: ShipDockApplication has started");

            if (IsStarted)
            {
                return;
            }

            Notificater   = new Notifications <int>();
            ABs           = new AssetBundles();
            Servers       = new Servers(OnServersInit);
            Datas         = new DataWarehouse();
            AssetsPooling = new AssetsPooling();
            StateMachines = new StateMachines
            {
                FSMFrameUpdater   = OnFSMFrameUpdater,
                StateFrameUpdater = OnStateFrameUpdater
            };
            mFSMUpdaters   = new KeyValueList <IStateMachine, IUpdate>();
            mStateUpdaters = new KeyValueList <IState, IUpdate>();

            if (ticks > 0)
            {
                TicksUpdater = new TicksUpdater(ticks);
            }

            ShipDockConsts.NOTICE_APPLICATION_STARTUP.Broadcast();

            IsStarted = true;
            mAppStarted?.Invoke();
            mAppStarted = null;
        }
Exemple #4
0
        public ActionControllers(DataWarehouse <InformationCard> buff, ILoggerManager logger)
        {
            _logger = logger;

            using (StreamReader r = new StreamReader(path))
            {
                string json = r.ReadToEnd();
                if (data.books == null)
                {
                    data.books = JsonConvert.DeserializeObject <List <InformationCard> >(json);
                    for (int i = 0; i < data.books.Count; i++)
                    {
                        //data.books[i].SetImarray();
                        deep_copy.Add(data.books[i]);
                    }
                    foreach (var variable in data.books)
                    {
                        variable.SetImarray();
                    }
                }

                if (deep_copy.Count == 0)
                {
                    deep_copy = data.books;
                }
            }
        }
        private static Dictionary <string, DataRecord> GetAverageClassValues(DataWarehouse WH)
        {
            DataRecord[] records         = WH.GetRecords();
            string[]     classifications = records.Select(r => r.GetAttributeValue(WH.ClassificationAttribute)).Distinct().ToArray();

            ConcurrentDictionary <string, DataRecord> averageDataRecords = new ConcurrentDictionary <string, DataRecord>();

            Parallel.ForEach(classifications, (classification) =>
            {
                DataRecord averageRecord = new DataRecord();

                IEnumerable <DataRecord> targetRecords = records.Where(r => r.GetAttributeValue(WH.ClassificationAttribute) == classification);

                foreach (string attribute in WH.Attributes)
                {
                    if (attribute != WH.ClassificationAttribute && attribute != WH.IDAttribute)
                    {
                        decimal total = 0;
                        foreach (DataRecord r in targetRecords)
                        {
                            total += decimal.Parse(r.GetAttributeValue(attribute));
                        }
                        averageRecord.AddOrUpdateValue(attribute, (total / targetRecords.Count()).ToString());
                    }
                }
                averageDataRecords.TryAdd(classification, averageRecord);
            });
            return(new Dictionary <string, DataRecord>(averageDataRecords));
        }
 public GloveConfigView()
 {
     InitializeComponent();
     sc  = SensorCalibrator.GetSingleton();
     rhb = Rehabilitation.GetSingleton();
     skc = SkeletonCalculator.GetSingleton("");
     dh  = DataWarehouse.GetSingleton();
 }
        protected virtual string[] OutputImage(string outputFilePath, DataWarehouse WH, DataRecord Record, double power = 2)
        {
            Dictionary <string, DataRecord[]> recordsSplitByClassification   = SplitDataByClassification(WH);
            Dictionary <string, double[]>     distancesSplitByClassification = new Dictionary <string, double[]>();
            double min = double.MaxValue;
            double max = double.MinValue;

            foreach (KeyValuePair <string, DataRecord[]> kv in recordsSplitByClassification)
            {
                distancesSplitByClassification[kv.Key] = GetDistanceFromRecord(kv.Value, Record, WH.IDAttribute, WH.ClassificationAttribute);
                Array.Sort(distancesSplitByClassification[kv.Key]);
                if (distancesSplitByClassification[kv.Key].Max() > max)
                {
                    max = distancesSplitByClassification[kv.Key].Max();
                }
                if (distancesSplitByClassification[kv.Key].Min() < min)
                {
                    min = distancesSplitByClassification[kv.Key].Min();
                }
            }
            const int divisorCount = 10;
            double    divisor      = (max - min) / divisorCount;

            double[] ranges = new double[divisorCount + 1];
            for (int i = 0; i < divisorCount + 1; ++i)
            {
                ranges[i] = min + i * divisor;
            }
            Dictionary <string, int[]> frequenciesByClassification = GetFrequenciesInRangesByClassifiers(distancesSplitByClassification, divisor, min, max);
            List <string> outputPaths = new List <string>();

            foreach (KeyValuePair <string, int[]> kv in frequenciesByClassification)
            {
                //value is y values, ranges is x values
                Chart chart = new Chart();
                chart.Titles.Add("Frequency of " + distanceName + " distances from " + kv.Key + " classified entities");
                Series serie = new Series
                {
                    Name = "serie"
                };
                serie.ChartType       = SeriesChartType.Column;
                serie.BorderWidth     = 1;
                serie.BorderDashStyle = ChartDashStyle.Solid;
                chart.Series.Add(serie);
                chart.Series["serie"].Points.DataBindXY(ranges, kv.Value);
                ChartArea chartArea = new ChartArea();
                chartArea.AxisY.Title    = "Frequency";
                chartArea.AxisX.Title    = "Distance range where x <= distance < next x";
                chartArea.AxisX.Minimum  = min;
                chartArea.AxisX.Maximum  = max;
                chartArea.AxisX.Interval = divisor;
                chart.ChartAreas.Add(chartArea);
                chart.SaveImage(outputFilePath + "_" + kv.Key + ".png", ChartImageFormat.Png);
                outputPaths.Add(outputFilePath + "_" + kv.Key + ".png");
            }
            return(outputPaths.ToArray());
        }
Exemple #8
0
        static void PropogateDataAndModels()
        {
            SetUp start = new SetUp();

            start.RunSetup(out List <string> modelPaths, out Dictionary <string, bool> visualizationStatuses);

            GetClassifiersFromPaths(modelPaths,
                                    out List <AbstractClassifier> models);

            GetVisualizers(visualizationStatuses, out Visualizers);

            string      configPath = null;
            XmlDocument config;
            bool        outputStandardModels;

            if (start.FindConfigPath(ref configPath))
            {
                config = new XmlDocument();
                config.Load(configPath);
                outputStandardModels = Convert.ToBoolean(config.DocumentElement.SelectSingleNode("settings").SelectSingleNode("outputStandardisedModels").FirstChild.Value);
            }
            else
            {
                throw new Exception("Config path not found.");
            }

            if (outputStandardModels)
            {
                OutputStandardisedModels(config, models);
            }

            if (start.GetDataPath(config, out string dataPath) == true)
            {
                warehouse = new DataWarehouse(dataPath);
            }
            else
            {
                throw new Exception("No data found.");
            }

            if (start.GetTranslatorPath(config, out string translatorPath) == true)
            {
                Console.ForegroundColor = ConsoleColor.Black;
                Console.BackgroundColor = ConsoleColor.Green;
                Console.WriteLine("Translator file found: " + translatorPath);
                Console.ResetColor();
                translator = DataTranslator.LoadTranslatorFromFile(translatorPath);
            }
            else
            {
                translator = new DataTranslator();
            }

            start.GetVisualizationDirectory(config, out VisualizerOutputDir);

            cm = new ClassifierManager(models.ToArray());
        }
        /// <summary>
        /// get data warehouse by entity type
        /// </summary>
        /// <returns></returns>
        public DataWarehouse <ET> GetWarehouse <ET>() where ET : BaseEntity <ET>
        {
            var entityTypeId = typeof(ET).GUID;

            if (!repositoryWarehouses.TryGetValue(entityTypeId, out var warehouse))
            {
                warehouse = new DataWarehouse <ET>();
                repositoryWarehouses.Add(entityTypeId, warehouse);
            }
            return(warehouse as DataWarehouse <ET>);
        }
Exemple #10
0
        /// <summary>
        /// Get data warehouse by entity type
        /// </summary>
        /// <returns>Return entity data warehouse</returns>
        public DataWarehouse <TEntity> GetWarehouse <TEntity>() where TEntity : BaseEntity <TEntity>, new()
        {
            var entityTypeId = typeof(TEntity).GUID;

            if (!repositoryWarehouses.TryGetValue(entityTypeId, out var warehouse))
            {
                warehouse = new DataWarehouse <TEntity>();
                repositoryWarehouses.Add(entityTypeId, warehouse);
            }
            return(warehouse as DataWarehouse <TEntity>);
        }
        private static Dictionary <string, DataRecord[]> SplitDataByClassification(DataWarehouse WH)
        {
            Dictionary <string, DataRecord[]> d = new Dictionary <string, DataRecord[]>();

            string[] classifications = WH.GetRecords().Select(r => r.GetAttributeValue(WH.ClassificationAttribute)).Distinct().ToArray();
            foreach (string classification in classifications)
            {
                d.Add(classification, WH.GetRecords().Where(r => r.GetAttributeValue(WH.ClassificationAttribute) == classification).ToArray());
            }
            return(d);
        }
Exemple #12
0
    public static void DataProxyDelink(this IDataExtracter target, params int[] dataNames)
    {
        IDataProxy    proxy;
        DataWarehouse datas = Framework.Instance.GetUnit <DataWarehouse>(Framework.UNIT_DATA);
        int           max   = dataNames == default ? 0 : dataNames.Length;

        for (int i = 0; i < max; i++)
        {
            proxy = datas.GetData <IDataProxy>(dataNames[i]);
            proxy.Unregister(target);
        }
    }
Exemple #13
0
        public void TestAddInvalidModel(object model)
        {
            // Arrange
            DefaultArrange();
            var service = new DataWarehouse(logger.Object);

            // Act
            var addResult = service.TryAdd(model as IModel);

            // Assert
            Assert.False(addResult);
        }
Exemple #14
0
        public Classification[] ThreadedClassify(DataWarehouse Warehouse)
        {
            ConcurrentQueue <Classification> classifications = new ConcurrentQueue <Classification>();

            Parallel.ForEach(Warehouse.GetRecords(), (r) =>
            {
                foreach (Classification c in Classify(r))
                {
                    classifications.Enqueue(c);
                }
            });

            return(classifications.ToArray());
        }
Exemple #15
0
 public Model
 (
     string formatVersion, DataWarehouse dataWarehouse, Layers.SourceSystem[] sourceSystems, Layers.Tenant[] tenants,
     Connection[] connections, Layers.Hub[] hubs, Layers.Link[] links, DataSource[] dataSources
 )
 {
     FormatVersion = formatVersion;
     DataWarehouse = dataWarehouse;
     SourceSystems = sourceSystems;
     Tenants       = tenants;
     Connections   = connections;
     Hubs          = hubs;
     Links         = links;
     DataSources   = dataSources;
 }
Exemple #16
0
        public void CommitRelate()
        {
            int name;
            int max = (ComponentNames != default) ? ComponentNames.Length : 0;

            if (max > 0)
            {
                if (mCompCached == default)
                {
                    mCompCached = new KeyValueList <int, IShipDockComponent>();
                }
                var components = ShipDockECS.Instance.Context;
                for (int i = 0; i < max; i++)
                {
                    name = ComponentNames[i];
                    mCompCached[name] = components.RefComponentByName(name);
                }
            }
            max = (DataNames != default) ? DataNames.Length : 0;
            if (max > 0)
            {
                if (mDataCached == default)
                {
                    mDataCached = new KeyValueList <int, IDataProxy>();
                }
                DataWarehouse datas = Framework.Instance.GetUnit <DataWarehouse>(Framework.UNIT_DATA);
                for (int i = 0; i < max; i++)
                {
                    name = DataNames[i];
                    mDataCached[name] = datas.GetData <IDataProxy>(name);
                }
            }
            max = (ServerNames != default) ? ServerNames.Length : 0;
            if (max > 0)
            {
                if (mServerCached == default)
                {
                    mServerCached = new KeyValueList <string, IServer>();
                }
                string  serverName;
                Servers servers = Framework.Instance.GetUnit <Servers>(Framework.UNIT_IOC);
                for (int i = 0; i < max; i++)
                {
                    serverName = ServerNames[i];
                    mServerCached[serverName] = servers.GetServer <IServer>(serverName);
                }
            }
        }
Exemple #17
0
    public static KeyValueList <int, IDataProxy> DataProxyLink(this IDataExtracter target, params int[] dataNames)
    {
        IDataProxy    proxy;
        int           name;
        int           max   = dataNames != default ? dataNames.Length : 0;
        DataWarehouse datas = Framework.Instance.GetUnit <DataWarehouse>(Framework.UNIT_DATA);
        KeyValueList <int, IDataProxy> result = new KeyValueList <int, IDataProxy>();

        for (int i = 0; i < max; i++)
        {
            name  = dataNames[i];
            proxy = datas.GetData <IDataProxy>(name);
            proxy.Register(target);
            result[name] = proxy;
        }
        return(result);
    }
Exemple #18
0
        public void TestParallelGetReportValid(int clientCount, int salesmanCount, int mostExpensiveSaleId, string worstSalesman,
                                               IEnumerable <object> models)
        {
            // Arrange
            DefaultArrange();
            var service = new DataWarehouse(logger.Object);

            // Act
            Parallel.ForEach(models, (model) => { service.TryAdd(model as IModel); });

            var report = service.GetReport();

            // Assert
            Assert.Equal(clientCount, report.ClientCount);
            Assert.Equal(salesmanCount, report.SalesmanCount);
            Assert.Equal(mostExpensiveSaleId, report.MostExpensiveSaleId);
            Assert.Equal(worstSalesman, report.WorstSalesman);
        }
Exemple #19
0
        private GloveModule(MainWindow mw)
        {
            this.mw = mw;
            gc      = GloveController.GetSingleton(ModelType.HandOnly);
            var mLogger = Logger.GetInstance(mw.txt_log);

            gc.RegisterLogger(mLogger);
            rhb = Rehabilitation.GetSingleton();
            dh  = DataWarehouse.GetSingleton();
            string[] ports = gc.GetPorts();
            if (ports.Length > 0)
            {
                ports.ToList().ForEach(n => mw.cbb_port.Items.Add(n));
                mw.cbb_port.SelectedItem = mw.cbb_port.Items[mw.cbb_port.Items.Count - 1];
            }
            // socket module
            sm = SocketManager.GetInstance();
            sm.Start(10200);
            sc                     = SkeletonCalculator.GetSingleton("");
            pullDataTimer          = new Timer(10);
            pullDataTimer.Elapsed += pullDataTimer_Tick;
            pullDataTimer.Start();
        }
        protected virtual string[] OutputImage(string outputFilePath, DataWarehouse WH, DataRecord Record = null, double power = 2)
        {
            DataRecord[] records = WH.GetRecords();
            Dictionary <string, DataRecord> averageClassValues = GetAverageClassValues(WH);

            string[] targetAttributeValues       = averageClassValues.Keys.ToArray();
            double[] distancesFromAverageClasses = new double[targetAttributeValues.Length];
            int      count = 0;

            foreach (KeyValuePair <string, DataRecord> kv in averageClassValues)
            {
                distancesFromAverageClasses[count++] = GetDistanceBetweenRecords(Record, kv.Value, WH.IDAttribute, WH.ClassificationAttribute, power);
            }
            Chart chart = new Chart();

            chart.Titles.Add(distanceName + " distance from an average entity of each classification");
            Series serie = new Series
            {
                Name = "serie"
            };

            chart.Series.Add(serie);
            chart.Series["serie"].Points.DataBindXY(targetAttributeValues, distancesFromAverageClasses);
            chart.Series["serie"].ChartType              = SeriesChartType.Radar;
            chart.Series["serie"]["RadarDrawingStyle"]   = "Area";
            chart.Series["serie"]["AreaDrawingStyle"]    = "Polygon";
            chart.Series["serie"]["CircularLabelsStyle"] = "Horizontal";
            ChartArea area = new ChartArea
            {
                Name = "area"
            };

            chart.ChartAreas.Add(area);
            chart.SaveImage(outputFilePath + ".png", ChartImageFormat.Png);
            return(new string[] { outputFilePath + ".png" });
        }
Exemple #21
0
        static void UserInteraction()
        {
            bool validIDSupplied = false;
            int  targetID        = -1;

            do
            {
                Console.ForegroundColor = ConsoleColor.Black;
                Console.BackgroundColor = ConsoleColor.Yellow;
                Console.WriteLine("Please enter an ID, or press return to classify latest entry.");
                Console.ResetColor();

                string input = Console.ReadLine();
                if (input == "")
                {
                    break;
                }
                else
                {
                    if (int.TryParse(input, out targetID))
                    {
                        validIDSupplied = targetID < warehouse.GetRecords().Count() && targetID >= 0;
                    }
                    if (!validIDSupplied)
                    {
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.BackgroundColor = ConsoleColor.Red;
                        Console.WriteLine("Invalid ID supplied.");
                        Console.ResetColor();
                    }
                }
            }while (!validIDSupplied);

            Console.Clear();

            DataWarehouse translatedWarehouse = translator.TranslateWarehouse(warehouse);

            translator.SaveTranslatorToFile();

            DataRecord targetRecord = null;

            if (targetID > -1)
            {
                targetRecord = warehouse.GetRecord(targetID);
            }
            else
            {
                targetRecord = warehouse.GetLatestRecord();
            }

            List <string> classificationStrings = new List <string>();

            foreach (Classification c in cm.ThreadedClassify(targetRecord))
            {
                string s = c.ToString();
                classificationStrings.Add(s);
                Console.WriteLine(s);
                Console.WriteLine();
            }

            DataRecord             targetRecordTranslated = translator.TranslateRecord(targetRecord);
            ConcurrentBag <string> visualizationBag       = new ConcurrentBag <string>();

            if (Visualizers.Count > 0)
            {
                if (!Directory.Exists(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID))
                {
                    Directory.CreateDirectory(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID);
                }
                Parallel.ForEach(Visualizers, (v) =>
                {
                    string[] paths = v.Visualize(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID + "\\" + v.GetType().Name.ToString(),
                                                 translatedWarehouse,
                                                 targetRecordTranslated);

                    foreach (string path in paths)
                    {
                        visualizationBag.Add(path);
                    }
                });
            }

            ReportGenerator.GenerateReport(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID + "\\Report.html",
                                           targetRecord.ID,
                                           classificationStrings.ToArray(),
                                           visualizationBag.ToArray());

            Process.Start(VisualizerOutputDir + "\\" + translatedWarehouse.FileName + "\\" + targetRecord.ID + "\\Report.html");
        }
Exemple #22
0
 public override string[] Visualize(string outputFilePath, DataWarehouse WH, DataRecord Record = null)
 {
     distanceName = "Euclidian";
     return(OutputImage(outputFilePath, WH, Record, 2));
 }
Exemple #23
0
        static void Main(string[] args)
        {
            Derived d = new Derived();

            Console.Read();

            for (int i = 0; i < 100000; i++)
            {
                T2 t2 = new T2 {
                    ID = i, T2Name = "fasdfasd" + i
                };
                t2.Insert();
                LocalDBTest lt = new LocalDBTest {
                    Age = 10, ID = 1, Name = "zhoulin" + i, T2S = new List <T2> {
                        t2
                    }
                };
                lt.Insert();
                Thread.Sleep(100);
            }


            //List<LocalDBTest> lts = LocalDB.Select<LocalDBTest>();
            //if (lts == null || !lts.Any())
            //{
            //    T2 t2 = new T2 { ID = 23, T2Name = "fasdfasd" };
            //    t2.Insert();
            //    LocalDBTest lt = new LocalDBTest { Age = 10, ID = 1, Name = "zhoulin", T2S = new List<T2> { t2 } };
            //    lt.Insert();
            //}
            //else
            //{
            //    LocalDBTest lt = lts.First();
            //    if (lt.remark == null)
            //    {
            //        lt.remark = new List<string>();
            //    }
            //    if (lt.T2S == null)
            //    {
            //        lt.T2S = new List<T2> { new T2 { ID = 23, T2Name = "fasdfasd" } };
            //    }
            //    lt.remark.Add(new Random().Next().ToString());
            //    lt.Update();

            //    lt = new LocalDBTest { Age = 10, ID = 1, Name = "zhoulin_" + new Random().Next() };
            //    lt.Insert();
            //}

            Person pson = new Person {
                id = "1", Name = "zl"
            };

            Thread.Sleep(10000 * 323);
            string rrr = SerializerHelper.JsonSerializer(pson);

            pson = SerializerHelper.JsonDeserialize <Person>("{\"id\":\"1\",\"Int_id\":3,\"Name\":\"zl\"}");

            DataBufferPool <int> dp = new DataBufferPool <int>(tls =>
            {
                Console.WriteLine(tls.Count + "|" + string.Join(",", tls));
            }, 2000);

            Random r = new Random();

            for (int i = 0; i < 10000000; i++)
            {
                dp.AddItem(i % 10);
                Thread.Sleep(r.Next(10, 300));
            }

            Console.ReadLine();
            Parallel.Invoke(
                () => ExecCrawler(30, 16),
                () => ExecCrawler(31, 16),
                () => ExecCrawler(32, 16),
                () => ExecCrawler(33, 16),
                () => ExecCrawler(30, 4),
                () => ExecCrawler(31, 4),

                () => ExecCrawler(32, 4),
                () => ExecCrawler(33, 4)
                );
            Console.WriteLine("done");
            //DataBufferPool<int> dp = new DataBufferPool<int>(Console.WriteLine);
            //int iu = 0;
            //while (iu < 20)
            //{
            //    iu++;
            //    dp.AddItem(iu);
            //}
            //Console.ReadLine();

            #region 引用类型测试

            RTest  rt = new RTest();
            InnerC ic = new InnerC();
            ic.T(rt);
            Console.WriteLine(rt.i);

            ic.T(ref rt);
            Console.WriteLine(rt.i);
            Console.ReadLine();
            #endregion

            #region 动态类型测试

            dynamic dynamicobj = new LocalCacheContainer();
            dynamicobj.Name = "Learning Hard";
            dynamicobj.Age  = "24";
            var res = dynamicobj.Age;
            Console.WriteLine("fsadf");

            DynamicObjectTest dot = new DynamicObjectTest();

            dot.LocalCache.Person = new Person
            {
                id   = "1",
                Name = "zl"
            };

            dot.LocalCache.OtherInfo = "234";

            Person p1 = dot.LocalCache.Person1 as Person;

            Console.WriteLine(dot.LocalCache.Person.Name);
            Console.WriteLine(dot.LocalCache.OtherInfo);


            Console.ReadLine();
            #endregion

            #region 反射输出对象属性测试
            Group gp = new Group
            {
                GroupID   = 1,
                GroupName = "TestGroupName",
                PS        = new List <Person>
                {
                    new Person {
                        id = "1", Name = "n1"
                    },
                    new Person {
                        id = "2", Name = "n2"
                    },
                    new Person {
                        id = "3", Name = "n3"
                    }
                },
                Mark = "这是一个测试组"
            };

            foreach (string str in gp.GetReflectPropsValue().Split('|'))
            {
                Console.WriteLine(str);
            }
            Console.ReadLine();
            #endregion

            #region 随机数测试

            TestRandomNum();

            #endregion

            #region 反射对象属性测试
            Person p = new Person();
            TestReflectProps(p);
            Console.ReadLine();
            #endregion

            #region 数据缓存仓库测试

            //key
            const string key    = "GetCurrDateKey";
            const string key_Dt = "GetDatatableKey";

            //初始化仓库
            DataWarehouse <string> .InitDataItem(key, GetCurrDate, 1);

            DataWarehouse <DataTable> .InitDataItem(key_Dt, GetDataTable, 1);

            //根据key获取值
            Console.WriteLine(DataWarehouse <string> .GetData(key));
            //Console.WriteLine(DataWarehouse<string>.GetData(key));
            ////休眠 等待过期
            //Thread.Sleep(1000 * 61);
            ////再次根据key获取值
            //Console.WriteLine(DataWarehouse<string>.GetData(key));

            //Console.ReadLine();

            #endregion

            #region DataTable测试

            DataTable dt = DataWarehouse <DataTable> .GetData(key_Dt);

            List <Person> ps = dt.GetEntityListByTable <Person>();
            Stopwatch     s  = new Stopwatch();
            s.Start();
            foreach (DataRow dr in dt.Rows)
            {
            }
            s.Stop();
            Console.WriteLine(s.ElapsedMilliseconds);
            Console.ReadLine();

            #endregion
        }
Exemple #24
0
    public static void AddToWarehouse(this IDataProxy target)
    {
        DataWarehouse datas = Framework.Instance.GetUnit <DataWarehouse>(Framework.UNIT_DATA);

        datas.AddData(target);
    }
Exemple #25
0
    public static T GetData <T>(this int target) where T : IDataProxy
    {
        DataWarehouse datas = Framework.Instance.GetUnit <DataWarehouse>(Framework.UNIT_DATA);

        return(datas.GetData <T>(target));
    }
Exemple #26
0
        public void Start(int ticks)
        {
            Application.targetFrameRate = ticks <= 0 ? 10 : ticks;
            if (IsStarted)
            {
                LogStartedError();
                return;
            }
            else
            {
            }

            Tester = Tester.Instance;
            Tester.Init(new TesterBaseApp());

            AssertFrameworkInit(int.MaxValue);
            AssertFrameworkInit(0);

            Notificater = NotificatonsInt.Instance.Notificater; //new Notifications<int>();//新建消息中心
            ABs         = new AssetBundles();                   //新建资源包管理器
            Servers     = new Servers();                        //新建服务容器管理器
            DataWarehouse datas = new DataWarehouse();          //新建数据管理器

            AssetsPooling = new AssetsPooling();                //新建场景资源对象池
            ECSContext    = new ShipDockComponentContext        //新建 ECS 组件上下文
            {
                FrameTimeInScene = (int)(Time.deltaTime * UpdatesCacher.UPDATE_CACHER_TIME_SCALE)
            };
            StateMachines = new StateMachines//新建有限状态机管理器
            {
                FSMFrameUpdater   = OnFSMFrameUpdater,
                StateFrameUpdater = OnStateFrameUpdater
            };
            Effects             = new Effects();            //新建特效管理器
            Locals              = new Locals();             //新建本地化管理器
            PerspectivesInputer = new PerspectiveInputer(); //新建透视物体交互器
            AppModulars         = new DecorativeModulars(); //新建装饰模块管理器
            Configs             = new ConfigHelper();       //新建配置管理器

            #region 向定制框架中填充框架功能单元
            Framework framework = Framework.Instance;
            FrameworkUnits = new IFrameworkUnit[]
            {
                framework.CreateUnitByBridge(Framework.UNIT_DATA, datas),
                framework.CreateUnitByBridge(Framework.UNIT_AB, ABs),
                framework.CreateUnitByBridge(Framework.UNIT_MODULARS, AppModulars),
                framework.CreateUnitByBridge(Framework.UNIT_ECS, ECSContext),
                framework.CreateUnitByBridge(Framework.UNIT_IOC, Servers),
                framework.CreateUnitByBridge(Framework.UNIT_CONFIG, Configs),
                framework.CreateUnitByBridge(Framework.UNIT_UI, UIs),
                framework.CreateUnitByBridge(Framework.UNIT_FSM, StateMachines),
            };
            framework.LoadUnit(FrameworkUnits);
            #endregion

            mFSMUpdaters   = new KeyValueList <IStateMachine, IUpdate>();
            mStateUpdaters = new KeyValueList <IState, IUpdate>();
            TicksUpdater   = new TicksUpdater(Application.targetFrameRate);//新建客户端心跳帧更新器

            AssertFrameworkInit(1);
            AssertFrameworkInit(2);

            IsStarted = true;
            mAppStarted?.Invoke();
            mAppStarted = default;

            ShipDockConsts.NOTICE_SCENE_UPDATE_READY.Add(OnSceneUpdateReady);
            UpdatesComponent?.Init();

            ShipDockConsts.NOTICE_APPLICATION_STARTUP.Broadcast();//框架启动完成
            AssertFrameworkInit(3);
        }
Exemple #27
0
        public bool GetLiftopiaMTCFile(DateTime?StartDate = null, DateTime?EndDate = null)
        {
            CurrentFunction            = "GetLiftopiaMTCFile";
            statusStrip1.Items[0].Text = "Preparing Liftopia MTC Import...";
            SetTaskStatus();
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
            if (StartDate != null)
            {
                MTCURL += @"&orderDateGreaterThan=" + StartDate.Value.AddDays(-1).ToString(Mirror.AxessDateFormat);
            }
            if (EndDate != null)
            {
                if (EndDate >= StartDate)
                {
                    MTCURL += @"&orderDateLessThan=" + EndDate.Value.AddDays(1).ToString(Mirror.AxessDateFormat);
                }
            }
            WebRequest request = WebRequest.Create(MTCURL);

            request.Method      = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            WebResponse  response = request.GetResponse();
            StreamReader reader   = new StreamReader(response.GetResponseStream());

            File.WriteAllText(MTCDataPath, reader.ReadToEnd().Replace("\0", string.Empty));
            response.Close();
            response.Dispose();
            reader.Close();
            reader.Dispose();
            statusStrip1.Items[0].Text = "Updating MTC_Sales...";
            SetTaskStatus();
            CommonFunctions cf        = new CommonFunctions();
            DataWarehouse   dw        = new DataWarehouse();
            DataSet         myDS      = cf.CSV2DS(MTCDataPath, MTCDataFile, new DataSet());
            int             tRowCount = myDS.Tables[MTCDataFile].Rows.Count;

            pbMTC.Maximum = tRowCount;
            foreach (DataRow myRow in myDS.Tables[MTCDataFile].Rows)
            {
                pbMTC.Value = myDS.Tables[MTCDataFile].Rows.IndexOf(myRow) + 1;
                System.Diagnostics.Debug.Print(pbMTC.Value.ToString() + " of " + myDS.Tables[MTCDataFile].Rows.Count.ToString());
                //if (myRow["Order Id"].ToString() == "11490976")
                //if (pbMTC.Value > 59999  || myRow.Field<string>("pre arrival approved").ToUpper() == "YES" || myRow.Field<string>("order status").ToUpper() == "CANCELLED") // || myRow["estimated arrival date"].ToString() != string.Empty)
                {
                    //SetTaskStatus("", "", pbMTC);
                    string GFN       = myRow["guest first name"].ToString().Replace("’", "'").Replace("é", "e").Replace("ä", "a").Replace("/", "").Replace(@"&", "").Trim();
                    string GLN       = myRow["guest last name"].ToString().Replace("’", "'").Replace("é", "e").Replace("ä", "a").Replace("/", "").Trim();
                    string GEM       = myRow["guest email"].ToString();
                    string GN        = GFN + " " + GLN;
                    string dob       = myRow["guest birth date"].ToString();
                    bool   legalName = (myRow["guest last name"].ToString().ToUpper().Trim() != "INVALID");
                    foreach (char a in GN)
                    {
                        legalName |= ((int)a <= 127);
                    }
                    if (myRow["product name"].ToString().Contains(cf.Season.Replace("-", "/")) && legalName)
                    {
                        //if (myRow.Field<int>("recid") > 572739)
                        {
                            if (Buy.SalesFromMTC(myRow))    //test for row existing and either update or insert
                            {
                                DataSet tDS = CF.LoadDataSet(AM.MirrorConn, $"SELECT * FROM axess_cwc.tabpersonen WHERE SZNAME = '{CF.EscapeChar(GLN)}' AND dtgeburt = '{dob}' AND nperskassanr <= 40", new DataSet(), "tabPersonen");
                                if (tDS.Tables.Contains("tabPersonen"))
                                {
                                    if (tDS.Tables["tabPersonen"].Rows.Count != 0)
                                    {
                                        int  FoundRow = 0;
                                        bool IsFound  = (tDS.Tables["tabPersonen"].Rows.Count == 1);
                                        if (!IsFound)
                                        {
                                            foreach (DataRow Personen in tDS.Tables["tabPersonen"].Rows)
                                            {
                                                if (Personen["szvorname"].ToString().ToUpper() == GFN.ToUpper())
                                                {
                                                    FoundRow = tDS.Tables["tabPersonen"].Rows.IndexOf(Personen);
                                                    IsFound  = true;
                                                    break;
                                                }
                                            }
                                        }

                                        if (IsFound)
                                        {
                                            int nPersNr  = tDS.Tables["tabPersonen"].Rows[FoundRow].Field <int>("nPersNr");
                                            int nKassaNr = tDS.Tables["tabPersonen"].Rows[FoundRow].Field <Int16>("nPersKassaNr");
                                            if (nKassaNr <= 40 || (nKassaNr >= 117 && nKassaNr <= 120))
                                            {
                                                cf.ExecuteSQL(Buy.Buy_Alta_ComConn, $"UPDATE asbshared.mtncol_sales SET axess_perskassa={nKassaNr.ToString()}, axess_persnr={nPersNr.ToString()} WHERE mcpnbr = '{myRow.Field<string>("Barcode")}'");
                                            }
                                        }
                                    }
                                }
                                //dw.WillcallFromMTC(myRow);
                            }
                        }
                    }
                }
            }
            return(true);
        }
Exemple #28
0
 protected override void OnOpen()
 {
     dh              = DataWarehouse.GetSingleton();
     _timer.Elapsed += new System.Timers.ElapsedEventHandler(SendMsg);
     base.OnOpen();
 }
 public DataWarehouseViewModel(DataWarehouse dataWarehouse)
 {
     DataWarehouse = dataWarehouse;
 }
 public override string[] Visualize(string outputFilePath, DataWarehouse WH, DataRecord Record = null)
 {
     return(new string[0]);
 }