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(); }
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; }
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()); }
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>); }
/// <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); }
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); } }
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); }
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()); }
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; }
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); } } }
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); }
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); }
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" }); }
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"); }
public override string[] Visualize(string outputFilePath, DataWarehouse WH, DataRecord Record = null) { distanceName = "Euclidian"; return(OutputImage(outputFilePath, WH, Record, 2)); }
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 }
public static void AddToWarehouse(this IDataProxy target) { DataWarehouse datas = Framework.Instance.GetUnit <DataWarehouse>(Framework.UNIT_DATA); datas.AddData(target); }
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)); }
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); }
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); }
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]); }