Exemplo n.º 1
0
 /// <summary>
 /// конструктор основної форми
 /// ініціалізовує стандартні елементи і делегати та зчитує налаштування параметрів чи створює новий файл з параметрами по замовчуванню(для першого запуску)
 /// </summary>
 public Form1()
 {
     InitializeComponent();
     //додаємо делегат на зміну стану сесії для відслідковування стану обліковго запису - заблоковано/активно
     SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SystemEvents_SessionSwitch);
     Radius = 10;
     Lock   = false;
     //перевіряємо чи існує файл з налашуваннями
     if (File.Exists("Settings"))
     {
         using (StreamReader stream = new StreamReader("Settings"))
         {
             //для існуючого файлу читаємо параметри
             SleepTime = Convert.ToInt32(stream.ReadLine());
             CheckTime = Convert.ToInt32(stream.ReadLine());
             Radius    = Convert.ToInt32(stream.ReadLine());
         }
     }
     else
     {
         //якщо файлу нема створюємо новий і вносимо значення по замовчуванню
         FileStream f = File.Open("Settings", FileMode.Create);
         f.Close();
         using (StreamWriter stream = new StreamWriter("Settings"))
         {
             stream.WriteLine(SleepTime.ToString());
             stream.WriteLine(CheckTime.ToString());
             stream.WriteLine(Radius.ToString());
         }
     }
 }
Exemplo n.º 2
0
        private void Start()
        {
            uint      startTime = DataModel.Common.ConvertLinuxTime(dateTimeStart.Value);
            uint      endTime   = DataModel.Common.ConvertLinuxTime(dateTimeEnd.Value);
            CheckTime ret       = DataModel.Common.CheckDataTime(dateTimeStart.Value, dateTimeEnd.Value);

            if (ret == CheckTime.START_INVALID)
            {
                MessageBox.Show("开始时间不正常!");
                return;
            }
            else if (ret == CheckTime.END_INVALID)
            {
                MessageBox.Show("结束时间不正常!");
                return;
            }
            try
            {
                m_crowdVM.Start(startTime, endTime, cameraItem);
            }
            catch (SDKCallException ex)
            {
                //请求出错 终止线程
                m_crowdVM.Stop();
                MessageBoxEx.Show("大客流历史-查询错误[" + ex.ErrorCode + "]:" + ex.Message, Framework.Environment.PROGRAM_NAME, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                MyLog4Net.Container.Instance.Log.Debug("ucCrowdHistory searchBtn_Click" + ex.ToString());
            }
        }
Exemplo n.º 3
0
        private void searchBtn_Click(object sender, EventArgs e)
        {
            if (!ucTrafficCameraTree1.IsHasChecked)
            {
                MessageBox.Show("请选择一个监测点");
                return;
            }
            //设置时间
            uint      startTime = DataModel.Common.ConvertLinuxTime(dateTimeStart.Value);
            uint      endTime   = DataModel.Common.ConvertLinuxTime(dateTimeEnd.Value);
            CheckTime ret       = DataModel.Common.CheckDataTime(dateTimeStart.Value, dateTimeEnd.Value);

            if (ret == CheckTime.START_INVALID)
            {
                MessageBox.Show("开始时间不正常!");
                return;
            }
            else if (ret == CheckTime.END_INVALID)
            {
                MessageBox.Show("结束时间不正常!");
                return;
            }
            if (endTime - startTime > 24 * 60 * 60)
            {
                MessageBox.Show("时间跨度不能大于一天!");
                return;
            }
            noDataLabel.Visible = false;
            //设置ID
            m_cameraIDList = ucTrafficCameraTree1.GetCheckTCameraIDList();
            //开始查询
            m_vm.Search(m_cameraIDList, startTime, endTime);
            this.searchBtn.Enabled = false;
        }
        public void RegisterUserFailed()
        {
            // Arrange
            IRepositoryUser  fakeRepositoryUser = new FakeUserRepository();
            IEmailManger     fakeEmailManger    = new FakeEMailManger();
            IReadFromBrowser fakeReadCookie     = new FakeReadCookie();
            IWriteToBrowser  fakeWriteCookie    = new FakeWriteCookie();
            ICheckTime       checkTime          = new CheckTime();
            ILogger          fakeLogger         = new FakeLogger();

            Register register1 = new Register()
            {
                UserName  = "******",
                Email     = "*****@*****.**",
                Password  = "******",
                FirstName = "Retif",
                LastName  = "Teruy"
            };

            RegisterController loginController = new RegisterController
                                                     (fakeRepositoryUser, checkTime,
                                                     fakeReadCookie, fakeWriteCookie, fakeEmailManger, fakeLogger);

            // Act

            ViewResult viewResult = loginController.Register(register1) as ViewResult;
            var        rez        = viewResult.Model;

            rez.Equals(new Register());
        }
Exemplo n.º 5
0
        private static void RefreshByType(eDataSyncCacheType type)
        {
            using (DataTable dt = DataCopy.GetDataTable(ConnectionManager.GetConnection(), null, "SELECT * FROM UpdateFileEntry WHERE DataSyncCacheType = '{0}' ORDER BY DataSyncCacheID DESC", type))
            {
                CheckTime ct = new CheckTime();
                ct.AddEvent("UpdateFileEntry SQL Done (Count = {0})", dt.Rows.Count);

                if (dt.Rows.Count > 0)
                {
                    SetLastUpdate(UpdateFileEntrySr.CreateFromDataRow(dt.Rows[0]));
                }

                foreach (DataRow dr in dt.Rows)
                {
                    try
                    {
                        UpdateFileEntrySr ufe = UpdateFileEntrySr.CreateFromDataRow(dr);

                        if (m_diUpdates.ContainsKey(ufe.DataSyncCacheID))
                        {
                            m_diUpdates.Add(ufe.DataSyncCacheID, ufe);
                        }
                    }
                    catch (Exception excp)
                    {
                        m_logger.ErrorFormat("RefreshByType Row Exception:{0}\r\n{1}", excp, excp.Message, excp.StackTrace);
                    }
                }

                ct.AddEvent("RefreshByType({0}) filled up (Count = {1})", type, m_diUpdates.Count);
                ct.Info(m_logger);
            }
        }
Exemplo n.º 6
0
        private void searchBtn_Click(object sender, EventArgs e)
        {
            noDataLabel.Visible = false;
            searchBtn.Enabled   = false;
            // 清除上次查询的数据
            logDataList.Rows.Clear();
            m_parm           = new LogSearchParam();
            m_parm.BeginTime = dateTimeStart.Value;
            m_parm.EndTime   = dateTimeEnd.Value;
            CheckTime ret = DataModel.Common.CheckDataTime(dateTimeStart.Value, dateTimeEnd.Value);

            if (ret == CheckTime.START_INVALID)
            {
                MessageBox.Show("开始时间不正常!");
                return;
            }
            else if (ret == CheckTime.END_INVALID)
            {
                MessageBox.Show("结束时间不正常!");
                return;
            }
            m_parm.LogLevel = GetLogLevel();
            m_parm.LogType  = GetLogType();
            // 默认使用降序
            m_parm.SortKind = E_VDA_LOG_SORT_TYPE.E_LOG_SORT_TYPE_TIME_DESC;
            m_parm.OptName  = this.opeName.Text;
            m_parm.StartMum = 0;
            m_parm.LogCount = 100;
            m_Vm.GetLogInfoList(m_parm);
            SearchStart = true;
        }
 public void Set(CheckTime check)
 {
     if (check == null)
     {
         uiOnce.IsChecked = false;
         uiTime.Value     = DateTime.Today;
         uiDay1.IsChecked = false;
         uiDay2.IsChecked = false;
         uiDay3.IsChecked = false;
         uiDay4.IsChecked = false;
         uiDay5.IsChecked = false;
         uiDay6.IsChecked = false;
         uiDay7.IsChecked = false;
     }
     else
     {
         uiOnce.IsChecked = check.Once;
         uiTime.Value     = DateTime.Today.Add(check.Time);
         uiDay1.IsChecked = check.Day.HasFlag(WeekDay.Sunday);
         uiDay2.IsChecked = check.Day.HasFlag(WeekDay.Monday);
         uiDay3.IsChecked = check.Day.HasFlag(WeekDay.Tuesday);
         uiDay4.IsChecked = check.Day.HasFlag(WeekDay.Wednesday);
         uiDay5.IsChecked = check.Day.HasFlag(WeekDay.Thursday);
         uiDay6.IsChecked = check.Day.HasFlag(WeekDay.Friday);
         uiDay7.IsChecked = check.Day.HasFlag(WeekDay.Saturday);
     }
 }
Exemplo n.º 8
0
        private void SplitCollection()
        {
            CheckTime ct = new CheckTime("SplitCollection() entered.");

            pages.Clear();

            ct.AddEvent("Cleared");

            SyncList <IMatchVw> lMatches = Matches.ToSyncList();

            foreach (var match in lMatches)
            {
                if (!pages.ContainsKey(match.StartDate))
                {
                    pages.Add(match.StartDate, new SortableObservableCollection <IMatchVw>());
                    match.IsHeaderForPreMatch = true;
                    pages[match.StartDate].Add(match);
                }
                else
                {
                    match.IsHeaderForPreMatch = false;
                    pages[match.StartDate].Add(match);
                }
            }

            lMatches.Clear();

            ct.AddEvent("Cycle completed");

            totalPages = pages.Count;
            if (pages.Count == 0)
            {
                SampleMatches.Clear();
                return;
            }

            if (currentPage > pages.Count - 1)
            {
                currentPage = pages.Count - 1;
            }

            if (currentPage == 0)
            {
                currentPage = GetSavedPage();
            }

            if (pages.ElementAt(currentPage).Value.ElementAt(0) != null)
            {
                CurrentSeason     = pages.ElementAt(currentPage).Value.ElementAt(0).VirtualSeason.ToString();
                CurrentPageToShow = pages.ElementAt(currentPage).Value.ElementAt(0).VirtualDay.ToString();
            }

            SampleMatches.ApplyChanges(pages.ElementAt(currentPage).Value);


            ct.AddEvent("ApplyChanges completed");
            ct.Info(_logger);
        }
Exemplo n.º 9
0
        private void button1_Click(object sender, EventArgs e)
        {
            FileStream f = File.Open("Settings", FileMode.OpenOrCreate);

            f.Close();
            using (StreamWriter stream = new StreamWriter("Settings", false))
            {
                stream.WriteLine(SleepTime.ToString());
                stream.WriteLine(CheckTime.ToString());
                stream.WriteLine(Radius.ToString());
            }
        }
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="getContract">Der Kontrakt der beim Lesezugriff geprüft wird.</param>
 /// <param name="setContract">Der Kontrakt der beim Schreibzugriff geprüft wird.</param>
 /// <param name="member">Das Element an dem der DbcAspect definiert wurde</param>
 /// <param name="accessType">Gibt an, bei welchem Zugriff der Kontrakt angewendet werden soll.</param>
 /// <param name="checkTime">Gibt an, zu welchem Zeitpunkt der Kontrakt angewendet werden soll.</param>
 /// <param name="contractClassName">Gibt den Namen der Kontraktklasse an.</param>
 /// <param name="exceptionType">Gibt den Typ der Exception an, die für den Nichterfüllungsfall geworfen werden soll.</param>
 /// <param name="exceptionString">Gibt den Exceptiontext an, der bei Nichterfüllung geworfen werden soll.</param>
 internal FieldModel(string getContract, string setContract, MemberInfo member, AccessType accessType, CheckTime checkTime, string contractClassName, Type exceptionType, string exceptionString)
     : base(member, accessType, checkTime, contractClassName, exceptionType, exceptionString)
 {
     // Erzeugen und zuweisen der ContractModels.
     if (getContract == setContract)
     {
         GetContract = new ContractModel(getContract);
         SetContract = GetContract;
         ContractsAreEqual = true;
         return;
     }
     if (!string.IsNullOrEmpty(getContract))
         GetContract = new ContractModel(getContract);
     if (!string.IsNullOrEmpty(setContract))
         SetContract = new ContractModel(setContract);
 }
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="requireContract">Der Kontrakt zur Eintrittsprüfung.</param>
 /// <param name="ensureContract">Der Kontrakt zur Austrittsprufung.</param>
 /// <param name="member">Das Element an dem der DbcAspect definiert wurde</param>
 /// <param name="accessType">Gibt an, bei welchem Zugriff der Kontrakt angewendet werden soll.</param>
 /// <param name="checkTime">Gibt an, zu welchem Zeitpunkt der Kontrakt angewendet werden soll.</param>
 /// <param name="contractClassName">Gibt den Namen der Kontraktklasse an.</param>
 /// <param name="exceptionType">Gibt den Typ der Exception an, die für den Nichterfüllungsfall geworfen werden soll.</param>
 /// <param name="exceptionString">Gibt den Exceptiontext an, der bei Nichterfüllung geworfen werden soll.</param>
 internal MethodModel(string requireContract, string ensureContract, MemberInfo member, AccessType accessType, CheckTime checkTime, string contractClassName, Type exceptionType, string exceptionString)
     : base(member, accessType, checkTime, contractClassName, exceptionType, exceptionString)
 {
     // Erzeugen und zuweisen der ContractModels.
     if (requireContract == ensureContract)
     {
         RequireContract = new ContractModel(requireContract);
         EnsureContract = RequireContract;
         ContractsAreEqual = true;
         return;
     }
     if (!string.IsNullOrEmpty(requireContract))
         RequireContract = new ContractModel(requireContract);
     if (!string.IsNullOrEmpty(ensureContract))
         EnsureContract = new ContractModel(ensureContract);
 }
        private void searchBtn_Click(object sender, EventArgs e)
        {
            if (!m_CameraTree.IsHasChecked)
            {
                MessageBox.Show("请选择一个监测点");
                return;
            }

            //设置类型
            SetSearchType();
            if (m_serType.Length < 1)
            {
                MessageBox.Show("请选择一个事件类型");
                return;
            }

            //设置时间
            uint      startTime = DataModel.Common.ConvertLinuxTime(dateTimeStart.Value);
            uint      endTime   = DataModel.Common.ConvertLinuxTime(dateTimeEnd.Value);
            CheckTime ret       = DataModel.Common.CheckDataTime(dateTimeStart.Value, dateTimeEnd.Value);

            if (ret == CheckTime.START_INVALID)
            {
                MessageBox.Show("开始时间不正常!");
                return;
            }
            else if (ret == CheckTime.END_INVALID)
            {
                MessageBox.Show("结束时间不正常!");
                return;
            }

            if (endTime - startTime > 7 * 24 * 60 * 60)
            {
                MessageBox.Show("时间跨度不能大于七天!");
                return;
            }

            dataGridViewX1.Rows.Clear();
            m_EventList.Clear();
            //设置ID
            m_cameraIDList = m_CameraTree.GetCheckTCameraIDList();
            //开始查询
            m_vm.Search(m_cameraIDList, startTime, endTime, m_serType);
            this.searchBtn.Enabled = false;
            noDataLabel.Visible    = false;
        }
Exemplo n.º 13
0
        public void SearchResults(SyncList <MatchResultVw> lResultsToSync, DelegateFilterResults dfr)
        {
            CheckTime ct = new CheckTime("SearchResults() entered");

            lock (m_oReadLocker)
            {
                ct.AddEvent("Inside of lock");

                if (lResultsToSync != null)
                {
                    HashSet <MatchResultVw> hsMatches = new HashSet <MatchResultVw>();

                    SyncList <MatchResultLn> lAllResults = m_diAll.MatchResults.ToSyncList();

                    foreach (MatchResultLn result in lAllResults)
                    {
                        if (dfr == null || dfr(result))
                        {
                            hsMatches.Add(result.MatchResultView);

                            if (!lResultsToSync.Contains(result.MatchResultView))
                            {
                                lResultsToSync.Add(result.MatchResultView);
                            }
                        }
                    }

                    for (int i = 0; i < lResultsToSync.Count;)
                    {
                        MatchResultVw matchResultView = lResultsToSync[i];

                        if (!hsMatches.Contains(matchResultView))
                        {
                            lResultsToSync.RemoveAt(i);
                        }
                        else
                        {
                            i++;
                        }
                    }
                }
            }

            ct.AddEvent("Completed");
            ct.Info(m_logger);
        }
        private void searchBtn_Click(object sender, EventArgs e)
        {
            if (!ucTrafficCameraTree1.IsHasChecked)
            {
                MessageBox.Show("请选择一个监测点");
                return;
            }
            if (comboBoxEx1.Text == "月")
            {
                timeType = TrafficTimeType.MONTH;
            }
            else if (comboBoxEx1.Text == "天")
            {
                timeType = TrafficTimeType.DAY;
            }
            else if (comboBoxEx1.Text == "小时")
            {
                timeType = TrafficTimeType.HOUR;
            }
            uint      startTime = DataModel.Common.ConvertLinuxTime(dateTimeStart.Value);
            uint      endTime   = DataModel.Common.ConvertLinuxTime(dateTimeEnd.Value);
            CheckTime ret       = DataModel.Common.CheckDataTime(dateTimeStart.Value, dateTimeEnd.Value);

            if (ret == CheckTime.START_INVALID)
            {
                MessageBox.Show("开始时间不正常!");
                return;
            }
            else if (ret == CheckTime.END_INVALID)
            {
                MessageBox.Show("结束时间不正常!");
                return;
            }
            if (m_vm.TimeIsLong(startTime, endTime, timeType))
            {
                MessageBoxEx.Show("时间跨度太大");
                return;
            }
            //开始查询
            m_cameraIDList = ucTrafficCameraTree1.GetCheckTCameraIDList();
            m_vm.Search(m_cameraIDList, startTime, endTime, (uint)timeType);
            this.searchBtn.Enabled = false;
        }
Exemplo n.º 15
0
        private void searchBtn_Click(object sender, EventArgs e)
        {
            if (!ucTaskTreeBase1.IsHasChecked)
            {
                MessageBox.Show("请选择一个监测点");
                return;
            }
            //设置时间
            uint      startTime = DataModel.Common.ConvertLinuxTime(dateTimeStart.Value);
            uint      endTime   = DataModel.Common.ConvertLinuxTime(dateTimeEnd.Value);
            CheckTime ret       = DataModel.Common.CheckDataTime(dateTimeStart.Value, dateTimeEnd.Value);

            if (ret == CheckTime.START_INVALID)
            {
                MessageBox.Show("开始时间不正常!");
                return;
            }
            else if (ret == CheckTime.END_INVALID)
            {
                MessageBox.Show("结束时间不正常!");
                return;
            }
            if (endTime - startTime > 7 * 24 * 60 * 60)
            {
                MessageBox.Show("时间跨度不能大于七天!");
                return;
            }
            // 清除 上次 查询结果
            // m_faceResultPanel.Clear();
            // 相机列表
            List <string> creamIdList = ucTaskTreeBase1.GetCheckTCameraIDList();

            if (creamIdList == null)
            {
                creamIdList = ucTaskTreeBase1.GetAllCameraIDList();
            }
            // 黑名单列表
            string blackListStr = GetBlackListStr();

            m_vm.StartFaceAlarmSearch(creamIdList, blackListStr, startTime, endTime);
            m_faceResultPanel.StartWait();
        }
Exemplo n.º 16
0
        public static bool MergeFromLineContainer(LineContainer lc)
        {
            CheckTime ct = new CheckTime(false, "MergeFromLineContainer() entered");

            long lOperationMask = 0L;

            eServerSourceType esst = eServerSourceType.BtrPre;

            if (lc.Attributes.ContainsKey("line"))
            {
                string sLine = lc.Attributes["line"];
                ExcpHelper.ThrowIf(!Enum.TryParse(sLine, true, out esst), "Cannot parse LineType from '{0}'", sLine);
            }

            string sType      = lc.Attributes["type"];
            string sMessageId = lc.Attributes["messageid"];

            try
            {
                /*
                 * sTrace += string.Format("{0} docid={1}\r\n", sTrace, sMessageId);
                 *
                 * if (bExtendTrace)
                 * {
                 *  sTrace += lc.BuildTraceString();
                 * }
                 */

                // TimeTypeLn
                {
                    TimeTypeDictionary ttd = LineSr.Instance.AllObjects.GetLineObjectCollection <TimeTypeLn>() as TimeTypeDictionary;

                    int iCount = LineSr.MergeLineObjects <TimeTypeLn>(lc, ttd, new LineSr.MergeLineObjectsCallBack <TimeTypeLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <string> spTag = so.GetSerializableProperty("Tag") as SerializableProperty <string>;

                            return(ttd.GetObject(spTag.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new TimeTypeLn());
                        }
                    });

                    ct.AddEvent("TimeType(s) Succeeded ({0})", iCount);
                }

                // ScoreTypeLn
                {
                    ScoreTypeDictionary std = LineSr.Instance.AllObjects.GetLineObjectCollection <ScoreTypeLn>() as ScoreTypeDictionary;

                    int iCount = LineSr.MergeLineObjects <ScoreTypeLn>(lc, std, new LineSr.MergeLineObjectsCallBack <ScoreTypeLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <string> spTag = so.GetSerializableProperty("Tag") as SerializableProperty <string>;

                            return(std.GetObject(spTag.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new ScoreTypeLn());
                        }
                    });

                    ct.AddEvent("ScoreType(s) Succeeded ({0})", iCount);
                }

                // BetTypeLn
                {
                    BetTypeDictionary btd = LineSr.Instance.AllObjects.GetLineObjectCollection <BetTypeLn>() as BetTypeDictionary;

                    int iCount = LineSr.MergeLineObjects <BetTypeLn>(lc, btd, new LineSr.MergeLineObjectsCallBack <BetTypeLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <string> spTag = so.GetSerializableProperty("Tag") as SerializableProperty <string>;

                            return(btd.GetObject(spTag.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new BetTypeLn());
                        }
                    });

                    ct.AddEvent("BetType(s) Succeeded ({0})", iCount);
                }

                // BetDomainTypeLn
                {
                    BetDomainTypeDictionary bdtd = LineSr.Instance.AllObjects.GetLineObjectCollection <BetDomainTypeLn>() as BetDomainTypeDictionary;

                    int iCount = LineSr.MergeLineObjects <BetDomainTypeLn>(lc, bdtd, new LineSr.MergeLineObjectsCallBack <BetDomainTypeLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <string> spTag = so.GetSerializableProperty("Tag") as SerializableProperty <string>;

                            return(bdtd.GetObject(spTag.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new BetDomainTypeLn());
                        }
                    });

                    ct.AddEvent("BetDomainType(s) Succeeded ({0})", iCount);
                }

                // Groups
                {
                    GroupDictionary gd = LineSr.Instance.AllObjects.GetLineObjectCollection <GroupLn>() as GroupDictionary;

                    int iCount = LineSr.MergeLineObjects <GroupLn>(lc, gd, new LineSr.MergeLineObjectsCallBack <GroupLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            // 143881406612

                            SerializableProperty <string> spType = so.GetSerializableProperty("Type") as SerializableProperty <string>;
                            SerializableProperty <long> spSvrId  = so.GetSerializableProperty("SvrGroupId") as SerializableProperty <long>;

                            Debug.Assert(spType != null);
                            Debug.Assert(spSvrId != null);

                            return(gd.SafelyGetGroupByKeyName(spType.Value, spSvrId.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new GroupLn());
                        }
                    });

                    ct.AddEvent("Group(s) Succeeded ({0})", iCount);
                }

                // Competitors
                {
                    CompetitorDictionary cd = LineSr.Instance.AllObjects.GetLineObjectCollection <CompetitorLn>() as CompetitorDictionary;

                    int iCount = LineSr.MergeLineObjects <CompetitorLn>(lc, cd, new LineSr.MergeLineObjectsCallBack <CompetitorLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <long> spCompetitor = so.GetSerializableProperty("CompetitorId") as SerializableProperty <long>;

                            Debug.Assert(spCompetitor != null);

                            return(cd.GetObject(spCompetitor.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new CompetitorLn());
                        }
                    });

                    ct.AddEvent("Competitor(s) Succeeded ({0})", iCount);
                }
                // CompetitorToOutrightLn
                {
                    var cd = LineSr.Instance.AllObjects.GetLineObjectCollection <CompetitorToOutrightLn>() as CompetitorToOutrightDictionary;

                    int iCount = LineSr.MergeLineObjects <CompetitorToOutrightLn>(lc, cd, new LineSr.MergeLineObjectsCallBack <CompetitorToOutrightLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <long> spCompetitor = so.GetSerializableProperty("match2competitorid") as SerializableProperty <long>;

                            Debug.Assert(spCompetitor != null);

                            return(cd.GetObject(spCompetitor.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new CompetitorToOutrightLn());
                        }
                    });

                    ct.AddEvent("Competitor(s) Succeeded ({0})", iCount);
                }

                // Strings
                {
                    TaggedStringDictionary tsd = LineSr.Instance.AllObjects.GetLineObjectCollection <TaggedStringLn>() as TaggedStringDictionary;
                    int iCount = LineSr.MergeLineObjects <TaggedStringLn>(lc, tsd, new LineSr.MergeLineObjectsCallBack <TaggedStringLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <long> spStringId = so.GetSerializableProperty("StringId") as SerializableProperty <long>;

                            return(tsd.GetObject(spStringId.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new TaggedStringLn());
                        }
                    });

                    ct.AddEvent("String(s) Succeeded ({0})", iCount);
                }

                SyncList <MatchLn> lMatchesToRemove = new SyncList <MatchLn>();

                // Matches
                {
                    SyncHashSet <long> lMatchIds = new SyncHashSet <long>();

                    MatchDictionary md     = LineSr.Instance.AllObjects.GetLineObjectCollection <MatchLn>() as MatchDictionary;
                    int             iCount = LineSr.MergeLineObjects <MatchLn>(lc, md, new LineSr.MergeLineObjectsCallBack <MatchLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <long> spMatchId = so.GetSerializableProperty("MatchId") as SerializableProperty <long>;

                            lMatchIds.Add(spMatchId.Value);

                            return(md.GetObject(spMatchId.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new MatchLn());
                        },
                        OnLineObjectMerged = delegate(MatchLn match)
                        {
                            if (match != null)
                            {
                                if (match.Code.Value == 0)
                                {
                                    match.Code.Value = Math.Abs((int)(match.MatchId % 100000));
                                }

                                if (match.EndDate.Value == null)
                                {
                                    match.EndDate.Value = new DateTimeSr(DateTime.MaxValue);
                                }
                            }
                        },
                        RemoveLineObject = delegate(MatchLn match)
                        {
                            lMatchesToRemove.Add(match);
                        }
                    }, ref lOperationMask);

                    if (sType.ToLowerInvariant() == "initial")
                    {
                        SyncList <MatchLn> lAllLiveMatches = LineSr.Instance.QuickSearchMatches(delegate(MatchLn match)
                        {
                            return(match.IsLiveBet.Value && match.SourceType == esst);
                        });

                        foreach (var match in lAllLiveMatches)
                        {
                            if (!lMatchIds.Contains(match.MatchId))
                            {
                                lMatchesToRemove.Add(match);
                            }
                        }
                    }

                    ct.AddEvent("Match(es) Succeeded ({0})", iCount);
                }

                // MatchToGroup items
                {
                    MatchToGroupDictionary mtogd = LineSr.Instance.AllObjects.GetLineObjectCollection <MatchToGroupLn>() as MatchToGroupDictionary;
                    int iCount = LineSr.MergeLineObjects <MatchToGroupLn>(lc, mtogd, new LineSr.MergeLineObjectsCallBack <MatchToGroupLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <long> spMatchId = so.GetSerializableProperty("MatchId") as SerializableProperty <long>;
                            SerializableProperty <long> spGroupId = so.GetSerializableProperty("GroupId") as SerializableProperty <long>;

                            return(mtogd.GetObject(MatchToGroupLn.GetKeyName(spMatchId.Value, spGroupId.Value)));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new MatchToGroupLn());
                        }
                    });

                    ct.AddEvent("MatchToGroup(s) Succeeded ({0})", iCount);
                }

                // LiveMatchInfo
                {
                    LiveMatchInfoDictionary lmid = LineSr.Instance.AllObjects.GetLineObjectCollection <LiveMatchInfoLn>() as LiveMatchInfoDictionary;
                    int iCount = LineSr.MergeLineObjects <LiveMatchInfoLn>(lc, lmid, new LineSr.MergeLineObjectsCallBack <LiveMatchInfoLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <long> spMatchId = so.GetSerializableProperty("MatchId") as SerializableProperty <long>;

                            return(lmid.GetObject(spMatchId.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new LiveMatchInfoLn());
                        },
                        OnLineObjectMerged = delegate(LiveMatchInfoLn matchInfo)
                        {
                            if (matchInfo != null)
                            {
                                if (matchInfo.ExpiryDate.Value == null)
                                {
                                    matchInfo.ExpiryDate.Value = new DateTimeSr(DateTime.Now.AddMinutes(30)); // Half an hour
                                }

                                if (matchInfo.ChangedProps.Contains(matchInfo.PeriodInfo))
                                {
                                    lOperationMask |= (long)eOperationMask.MatchPeriodInfoChanged;
                                }
                            }
                        },
                        RemoveLineObject = delegate(LiveMatchInfoLn lmi)
                        {
                        }
                    });

                    ct.AddEvent("LiveMatchInfo(s) Succeeded ({0})", iCount);
                }

                // BetDomainLn
                {
                    BetDomainDictionary bdmd = LineSr.Instance.AllObjects.GetLineObjectCollection <BetDomainLn>() as BetDomainDictionary;
                    int iCount = LineSr.MergeLineObjects <BetDomainLn>(lc, bdmd, new LineSr.MergeLineObjectsCallBack <BetDomainLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <long> spBetDomainId = so.GetSerializableProperty("BetDomainId") as SerializableProperty <long>;

                            return(bdmd.GetObject(spBetDomainId.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new BetDomainLn());
                        },
                        RemoveLineObject = delegate(BetDomainLn bdmn)
                        {
                            LineSr.Instance.RemoveBetDomain(bdmn);
                        }
                    }, ref lOperationMask);

                    ct.AddEvent("BetDomain(s) Succeeded ({0})", iCount);
                }

                // OddLn
                {
                    OddDictionary oddd   = LineSr.Instance.AllObjects.GetLineObjectCollection <OddLn>() as OddDictionary;
                    int           iCount = LineSr.MergeLineObjects <OddLn>(lc, oddd, new LineSr.MergeLineObjectsCallBack <OddLn>()
                    {
                        GetLineObject = delegate(ISerializableObject so)
                        {
                            SerializableProperty <long> spOutcomeId = so.GetSerializableProperty("OutcomeId") as SerializableProperty <long>;

                            return(oddd.GetObject(spOutcomeId.Value));
                        },
                        CreateLineObject = delegate()
                        {
                            return(new OddLn());
                        },
                        RemoveLineObject = delegate(OddLn odd)
                        {
                            odd.Active.Value = false;
                            //LineSr.Instance.RemoveOdd(odd);
                        }
                    });

                    ct.AddEvent("Odd(s) Succeeded ({0})", iCount);
                }

                // Process Removed matches
                foreach (var match in lMatchesToRemove)
                {
                    LiveMatchInfoLn lmi = match.LiveMatchInfo;

                    if (lmi.Status.Value == eMatchStatus.Ended && match.SourceType == eServerSourceType.BtrLive)
                    {
                        MergeMatchResult(match);
                    }

                    LineSr.Instance.RemoveMatch(match);
                }
            }
            catch (Exception excp)
            {
                ct.AddEvent("ERROR");
                m_logger.Error(excp.Message, excp);
                m_logger.Excp(excp, "MergeFromLigaStavok() ERROR");
                throw;
            }
            finally
            {
                //m_logger.Info(sTrace);
                //m_logger.DebugFormat("LineContainer Trace Length = {0}", sTrace.Length);
                ct.AddEvent("MergeFromLigaStavok(Type={0}, MessageId={1}) completed", sType, sMessageId);
                ct.Info(m_logger);
            }

#if DEBUG
            if ((lOperationMask & EVENT_REASON_MASK) > 0)
            {
                m_logger.InfoFormat("MergeFromLineContainer() result {0}", lOperationMask);
            }
#endif

            return(true);
        }
Exemplo n.º 17
0
        public void FromXml(XmlTextReader tr)
        {
            CheckTime ct = new CheckTime(false, "LineContainer.FromXml() entered.");

            try
            {
                while (tr.Read())
                {
                    string sCurrentTagName = tr.Name;

                    switch (tr.NodeType)
                    {
                    case XmlNodeType.Attribute:

                        break;

                    case XmlNodeType.Element:

                        while (tr.MoveToNextAttribute())
                        {
                            this.Attributes[tr.Name] = tr.Value;
                        }

                        if (sCurrentTagName == this.XmlTagName)
                        {
                            break;
                        }

                        if (!tr.IsEmptyElement)
                        {
                            try
                            {
                                Type contentType = ObjectListNameToContentType(sCurrentTagName);
                                SerializableObjectList lObjects = m_di.EnsureSerializableObjectList(contentType, sCurrentTagName);
                                lObjects.FromXml(tr);
                                ct.AddEvent("{0} completed", sCurrentTagName);
                            }
                            catch (Exception excp)
                            {
                                throw;
                            }
                        }

                        break;

                    case XmlNodeType.EndElement:

                        if (tr.Name == this.XmlTagName)
                        {
                            return;
                        }

                        break;
                    }
                }
            }
            finally
            {
                ct.AddEvent("LineContainer.FromXml() completed.");
                ct.Info(m_logger);
            }
        }
Exemplo n.º 18
0
    // Use this for initialization
    void Start()
    {
        curr = System.DateTime.Now;

        long temp = Convert.ToInt64 (PlayerPrefs.GetString ("LastTime"));

        Instance = this;

        DateTime old = DateTime.FromBinary (temp);
        print("oldDate: " + old);

        TimeSpan timediff = curr.Subtract (old);
        PlayerPrefs.SetString ("TimeDiffDays", timediff.Days.ToString());
        PlayerPrefs.SetString ("TimeDiffHours", timediff.Hours.ToString());
        PlayerPrefs.SetString ("TimeDiffMinutes", timediff.Minutes.ToString());
        PlayerPrefs.SetString ("TimeDiffSeconds", timediff.Seconds.ToString());
        totalDays = PlayerPrefs.GetInt ("TotalDays") + timediff.Days;
        totalHours = PlayerPrefs.GetInt ("TotalHours") + timediff.Hours;
        totalMinutes = PlayerPrefs.GetInt ("TotalMinutes") + timediff.Minutes;
        totalSeconds = PlayerPrefs.GetInt ("TotalSeconds") + timediff.Seconds;
        //Converts 60+ seconds into minutes
        if (totalSeconds >= 60) {
            totalMinutes += 1;
            totalSeconds -= 60;
        }
        //Converts 60+ minutes into hours
        if (totalMinutes >= 60) {
            totalHours += 1;
            totalMinutes -= 60;
        }
        //Converts 24+ hours into days
        if (totalHours >= 24) {
            totalDays += 1;
            totalHours -= 24;
        }
        days = PlayerPrefs.GetString ("TimeDiffDays");
        hours = PlayerPrefs.GetString ("TimeDiffHours");
        minutes = PlayerPrefs.GetString ("TimeDiffMinutes");
        seconds = PlayerPrefs.GetString ("TimeDiffSeconds");
        print("Difference: " + timediff);

        CallChangeDay ();
    }
Exemplo n.º 19
0
        public void SearchMatches(SyncList <IMatchVw> lMatchesToSync, string sSearch, string sLanguage, DelegateFilterMatches dfm)
        {
            CheckTime ct = new CheckTime(false, "SearchMatches('{0}', '{1}') entered", sSearch, sLanguage);

            lock (m_oReadLocker)
            {
                if (lMatchesToSync != null)
                {
                    HashSet <IMatchVw> hsMatches   = new HashSet <IMatchVw>();
                    SyncList <MatchLn> lAllMatches = m_diAll.Matches.ToSyncList();

                    if (!string.IsNullOrEmpty(sSearch))
                    {
                        ct.AddEvent("Search by string in {0} matches", lAllMatches.Count);

                        IdentityList ilGroups      = new IdentityList();
                        IdentityList ilCompetitors = new IdentityList();

                        m_diAll.TaggedStrings.SearchRelatedStrings(sSearch, sLanguage, ilGroups, ilCompetitors);

                        int  iCode     = 0;
                        bool bIsNumber = int.TryParse(sSearch, out iCode) && 0 < iCode && iCode < MAX_MATCH_CODE;

                        if (ilCompetitors.Count > 0 || bIsNumber)
                        {
                            foreach (var mtch in lAllMatches)
                            {
#if DEBUG || TRACE_ID_FROM_FILE
                                if (TraceHelper.TraceFromFileLongValues("MatchIds.txt", (long)mtch.MatchId, new TraceHelper.DelegateLongFromRegistryFound(MatchIdFromFileFound), mtch))
                                {
                                    // Put breakpoint here to catch certain match by mtch.MatchId
                                }
#endif
                                string sCode = mtch.Code.Value.ToString("G");

                                if (sCode.IndexOf(sSearch, StringComparison.OrdinalIgnoreCase) >= 0 || ilCompetitors.Contains(mtch.HomeCompetitorId.Value) || ilCompetitors.Contains(mtch.AwayCompetitorId.Value))
                                {
                                    SearchMatchImp(hsMatches, lMatchesToSync, mtch, dfm);
                                }
                                //else
                                //{
                                //    SyncList<GroupLn> lGroups = LineSr.Instance.AllObjects.MatchesToGroups.GetMatchGroups(mtch.MatchId);

                                //    foreach (GroupLn group in lGroups)
                                //    {
                                //        if (ilGroups.Contains(group.GroupId))
                                //        {
                                //            SearchMatchImp(hsMatches, lMatchesToSync, mtch, dfm);
                                //        }
                                //    }
                                //}
                            }
                        }
                    }
                    else
                    {
                        ct.AddEvent("Search directly in {0} matches", lAllMatches.Count);

                        foreach (var mtch in lAllMatches)
                        {
#if DEBUG || TRACE_ID_FROM_FILE
                            if (TraceHelper.TraceFromFileLongValues("MatchIds.txt", (long)mtch.MatchId, new TraceHelper.DelegateLongFromRegistryFound(MatchIdFromFileFound), mtch))
                            {
                                // Put breakpoint here to catch certain match by mtch.MatchId
                            }
#endif
                            SearchMatchImp(hsMatches, lMatchesToSync, mtch, dfm);
                        }
                    }

                    ct.AddEvent("Search Completed");

                    for (int i = 0; i < lMatchesToSync.Count;)
                    {
                        IMatchVw matchView = lMatchesToSync[i];

                        if (!hsMatches.Contains(matchView))
                        {
                            lMatchesToSync.RemoveAt(i);
                        }
                        else
                        {
                            i++;
                        }
                    }

                    ct.AddEvent("Remove Completed");
                }
            }

            ct.AddEvent("Completed (Found {0} match(es))", lMatchesToSync.Count);
            ct.Info(m_logger);
        }
Exemplo n.º 20
0
        private void searchBtn_Click(object sender, EventArgs e)
        {
            if (comboBoxEx1.Text == "月")
            {
                timeType = CrowdTimeType.MONTH;
            }
            else if (comboBoxEx1.Text == "天")
            {
                timeType = CrowdTimeType.DAY;
            }
            else if (comboBoxEx1.Text == "小时")
            {
                timeType = CrowdTimeType.HOUR;
            }
            uint      startTime = DataModel.Common.ConvertLinuxTime(dateTimeStart.Value);
            uint      endTime   = DataModel.Common.ConvertLinuxTime(dateTimeEnd.Value);
            CheckTime ret       = DataModel.Common.CheckDataTime(dateTimeStart.Value, dateTimeEnd.Value);

            if (ret == CheckTime.START_INVALID)
            {
                MessageBox.Show("开始时间不正常!");
                return;
            }
            else if (ret == CheckTime.END_INVALID)
            {
                MessageBox.Show("结束时间不正常!");
                return;
            }
            if (m_crowdVM.TimeIsLong(startTime, endTime, timeType))
            {
                MessageBoxEx.Show("时间跨度太大");
                return;
            }

            if (!m_crowdCameraTree.IsHasChecked)
            {
                MessageBoxEx.Show("请选择一个查询目标");
                return;
            }
            // 根据选中的个数 添加 tableItem
            var            serList    = m_crowdCameraTree.GetCheckTSearchList();
            SearchItemV3_1 cameraItem = null;

            if (serList.Count > 0)
            {
                cameraItem = serList[0];
            }
            if (cameraItem == null)
            {
                MessageBoxEx.Show("请重新选择一个目标");
                return;
            }
            try {
                m_crowdVM.Start(startTime, endTime, cameraItem, (uint)timeType);
            }
            catch (SDKCallException ex) {
                MessageBoxEx.Show("大客流统计-查询错误[" + ex.ErrorCode + "]:" + ex.Message, Framework.Environment.PROGRAM_NAME, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                //请求出错 终止线程
                m_crowdVM.Stop();
                MyLog4Net.Container.Instance.Log.Debug("ucCrowdReport searchBtn_Click" + ex.ToString());
            }
        }
Exemplo n.º 21
0
        /*
         * private static bool DeleteMatches(IDbConnection conn, IDbTransaction transaction)
         * {
         *  LineObjectCollection<MatchLn> locMatches = LineSr.Instance.ObjectsToRemove.GetLineObjectCollection<MatchLn>();
         *
         *  if (locMatches != null && locMatches.Count > 0)
         *  {
         *      IdentityList il = new IdentityList();
         *
         *      foreach (MatchLn mtch in locMatches.Values)
         *      {
         *          il.AddUnique(mtch.MatchId);
         *      }
         *
         *      string sMatchIds = il.FormatIds();
         *
         *      DataCopy.ExecuteScalar(conn, transaction, DELETE_MATCH_ODDS_QUERY, sMatchIds);
         *      DataCopy.ExecuteScalar(conn, transaction, DELETE_MATCH_BETDOMAIN_QUERY, sMatchIds);
         *      DataCopy.ExecuteScalar(conn, transaction, DELETE_MATCH_TO_GROUP_QUERY, sMatchIds);
         *      DataCopy.ExecuteScalar(conn, transaction, DELETE_LIVE_MATCH_INFO_QUERY, sMatchIds);
         *      DataCopy.ExecuteScalar(conn, transaction, DELETE_MATCHES_QUERY, sMatchIds);
         *
         *      return true;
         *  }
         *
         *  return false;
         * }
         */

        public static eFileSyncResult UpdateDatabase(IDbConnection conn, eUpdateType eut, string sProviderDescription, UpdateStatistics us)
        {
            eFileSyncResult fsr = eFileSyncResult.Failed;

            DateTime dtStart      = DateTime.Now;
            string   sErrorString = string.Empty;

            DataCopy dc = null;

            string sUpdateDescription = eut.ToString();

            CheckTime ct = new CheckTime("UpdateAll({0}) Entered", sUpdateDescription);

            DictionaryOfLineObjectCollectionLight dlocToModify = LineSr.Instance.NewOrChangedObjects;
            DictionaryOfLineObjectCollectionLight dlocToDelete = LineSr.Instance.ObjectsToRemove;

            try
            {
                using (IDbTransaction transaction = conn.BeginTransaction())
                {
                    dc = new DataCopy(conn, transaction, sUpdateDescription);

                    try
                    {
                        UpdatesLn updatesLn = new UpdatesLn(eut, string.Format("Saving {0} and Deleting {1} line tables", dlocToModify.Count, dlocToDelete.Count), sProviderDescription);

                        updatesLn.Save(conn, transaction);
                        Debug.Assert(updatesLn.UpdateId > 0);

                        // Insert or Update objects
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <TaggedStringLn>(), TaggedStringLn.TableSpec, updatesLn);

                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <TimeTypeLn>(), TimeTypeLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <ScoreTypeLn>(), ScoreTypeLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <BetTypeLn>(), BetTypeLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <BetDomainTypeLn>(), BetDomainTypeLn.TableSpec, updatesLn);

                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <GroupLn>(), GroupLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <CompetitorLn>(), CompetitorLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <MatchLn>(), MatchLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <CompetitorToOutrightLn>(), CompetitorToOutrightLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <LiveMatchInfoLn>(), LiveMatchInfoLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <MatchResultLn>(), MatchResultLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <MatchToGroupLn>(), MatchToGroupLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <BetDomainLn>(), BetDomainLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <ResourceRepositoryLn>(), ResourceRepositoryLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <ResourceAssignmentLn>(), ResourceAssignmentLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <CompetitorInfosLn>(), CompetitorInfosLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <MatchInfosLn>(), MatchInfosLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <TournamentInfosLn>(), TournamentInfosLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <OddLn>(), OddLn.TableSpec, updatesLn);
                        //dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection<LiabilityLn>(), LiabilityLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <LanguageLn>(), LanguageLn.TableSpec, updatesLn);
                        dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection <MultistringGroupLn>(), MultistringGroupLn.TableSpec, updatesLn);
                        //dc.InsertOrUpdate(dlocToModify.GetLineObjectCollection<TournamentMatchLocksLn>(), TournamentMatchLocksLn.TableSpec, updatesLn);

                        // Delete Objects
                        dc.DeleteObjects(dlocToDelete.GetLineObjectCollection <OddLn>(), OddLn.TableSpec);
                        dc.DeleteObjects(dlocToDelete.GetLineObjectCollection <BetDomainLn>(), BetDomainLn.TableSpec);
                        dc.DeleteObjects(dlocToDelete.GetLineObjectCollection <MatchToGroupLn>(), MatchToGroupLn.TableSpec);
                        dc.DeleteObjects(dlocToDelete.GetLineObjectCollection <LiveMatchInfoLn>(), LiveMatchInfoLn.TableSpec);
                        dc.DeleteObjects(dlocToDelete.GetLineObjectCollection <CompetitorToOutrightLn>(), CompetitorToOutrightLn.TableSpec);
                        dc.DeleteObjects(dlocToDelete.GetLineObjectCollection <MatchLn>(), MatchLn.TableSpec);

                        if (dc.Statistics.IsInsrtedOrUpdatedOrDeleted)
                        {
                            // DK: If You like to test data import then uncomment line bellow:
                            // throw new SystemException("Developer Exception: Always rollback transaction for test purposes");

                            transaction.Commit();
                            fsr = eFileSyncResult.Succeeded;
                            ct.AddEvent("Commited");
                        }
                        else
                        {
                            transaction.Rollback();
                            fsr = eFileSyncResult.Skipped;
                            ct.AddEvent("Rolled Back");
                        }

                        if (us != null)
                        {
                            us.Append(dc.Statistics);
                        }
                    }
                    catch (Exception excp)
                    {
                        transaction.Rollback();
                        m_logger.Excp(excp, "UpdateAllWithSqlBulkCopy General Transaction Exception");
                    }
                    finally
                    {
                        DateTime dtEnd = DateTime.Now;

                        if (fsr != eFileSyncResult.Skipped)
                        {
                            // DK: Let's write to log ONLY Succeeded or Failed file syncrhonization info.

                            string sInfo = @"
{7} UpdateAllWithSqlBulkCopy({0}) {1}

{2}


{3}

Start: {4};  
  End: {5};  
 Time: {6};
";

                            m_logger.InfoFormat(
                                sInfo,                // Format
                                sProviderDescription, // Provider Description
                                fsr,                  // Result
                                sErrorString,         // Errors if any
                                dc.Statistics,        // Statistic
                                dtStart,
                                dtEnd,
                                dtEnd - dtStart,     // Time
                                sUpdateDescription); // LiveBet or PreMatch
                        }
                        else
                        {
                            m_logger.InfoFormat("{0} UpdateAllWithSqlBulkCopy Skipped. Time: {1}", sUpdateDescription, dtEnd - dtStart);
                        }

                        if (fsr == eFileSyncResult.Succeeded)
                        {
                        }

                        ct.AddEvent("UpdateAll({0}) completed", sUpdateDescription);
                        ct.Info(m_logger);
                    }
                }
                //                }
            }
            catch (Exception excp)
            {
                sErrorString += ExcpHelper.FormatException(excp, "UpdateAllWithSqlBulkCopy General Exception");
                m_logger.Error(sErrorString, excp);
            }

            return(fsr);
        }
Exemplo n.º 22
0
        public static eFileSyncResult SyncRoutines(eUpdateType eut, string sProviderDescription, bool bUseDatabase, UpdateStatistics us, DelegateMerge dm)
        {
            Debug.Assert(dm != null);

            CheckTime ct = new CheckTime(true, "SyncRoutines(UseDatabase={0}) entered", bUseDatabase);

            /*
             * if (DalStationSettings.Instance.EnableRunProcessControl)
             * {
             *  string sInfo = SystemControl.GetSystemInfo() + "\r\n" + ProcessControl.Current.ToDetailedString();
             *  m_logger.Info(sInfo);
             *
             #if DEBUG
             *  m_logger.Info(ProcessControl.Current.GetThreadSummary());
             #endif
             *
             *  ct.AddEvent("Control completed");
             * }
             */

            try
            {
                eFileSyncResult fsr = eFileSyncResult.Failed;

                lock (m_oUpdateLocker)
                {
                    ct.AddEvent("Inside of lock");

                    LineSr.Instance.NewOrChangedObjects.UnsetPropertiesChanged();
                    LineSr.Instance.NewOrChangedObjects.Clear();

                    bool bProcessUpdateSucceeded = false;

                    lock (m_oReadLocker)
                    {
                        ct.AddEvent("Cache Update Started");
                        bProcessUpdateSucceeded = dm(null);
                        ct.AddEvent("Cache Update Completed ({0}, {1})", LineSr.Instance.NewOrChangedObjects.Count, LineSr.Instance.ObjectsToRemove.Count);
                    }

                    if (bUseDatabase)
                    {
                        // We use database to store Live Data
                        fsr = DataCopy.UpdateDatabase(ConnectionManager.GetConnection(), eut, sProviderDescription, us);
                        ct.AddEvent("Database Update Completed");

                        if (fsr == eFileSyncResult.Succeeded)
                        {
                            LineSr.Instance.NewOrChangedObjects.NotifyPropertiesChanged();
                            DatabaseCache.Instance.AddNewObjectsAfterCommit();
                            DatabaseCache.Instance.RemoveObjectsAfterCommit();
                            LineSr.Instance.ObjectsToRemove.Clear();

                            ct.AddEvent("Routines Completed (fsr=Succeeded)");
                        }
                        else
                        {
                            ct.AddEvent("Routines Completed (fsr=Skipped or Failed)");
                        }
                    }
                    else
                    {
                        // We DON'T use database to store Live Data
                        fsr = eFileSyncResult.Succeeded;
                        LineSr.Instance.NewOrChangedObjects.NotifyPropertiesChanged();
                        ct.AddEvent("Routines Completed");
                    }

                    if (fsr == eFileSyncResult.Succeeded && bProcessUpdateSucceeded)
                    {
                        ct.AddEvent("ProcessDataSqlUpdateSucceeded() Completed");
                    }
                }

                return(fsr);
            }
            catch (Exception excp)
            {
                LineSr.Instance.ObjectsToRemove.Clear();
                m_logger.Excp(excp, "SyncRoutines(eUpdateType={0}, sProviderDescription='{1}') ERROR", eut, sProviderDescription);

                ct.AddEvent("Exception Completed");
                ct.Error(m_logger);
            }
            finally
            {
                ct.AddEvent("Completed");
                ct.Info(m_logger);
            }

            return(eFileSyncResult.Failed);
        }
        private void buttonOk_Click(object sender, EventArgs e)
        {
            CheckTime ret = DataModel.Common.CheckDataTime(checkBoxST.Checked ? dateTimeStart.Value : new DateTime(2050), checkBoxET.Checked ? dateTimeEnd.Value : new DateTime(2050));

            if ((ret == CheckTime.START_INVALID) && checkBoxST.Checked)
            {
                MessageBox.Show("开始时间不正常!");
                return;
            }
            else if ((ret == CheckTime.END_INVALID) && checkBoxET.Checked)
            {
                MessageBox.Show("结束时间不正常!");
                return;
            }

            //添加资源树
            List <DataModel.SearchItemV3_1> list = null;           //带选择的资源树列表 //= buttonSelectSearchItem.Tag as List<DataModel.SearchItemV3_1>;

            if (m_treeList.IsHasChecked)
            {
                list = m_treeList.GetCheckTSearchList();
            }
            m_viewModel.SearchItems = new DataModel.SearchItemGroup()
            {
                SearchItems = new List <DataModel.SearchItemV3_1>(),
                SearchType  = this.SearchType,
            };
            if (list != null && list.Count > 0)
            {
                m_viewModel.SearchItems.SearchItems.AddRange(list);
            }
            if (pictureBox1.Tag != null && pictureBox1.Tag is SelectedPictureParam)
            {
                SelectedPictureParam param = pictureBox1.Tag as SelectedPictureParam;
                if (param.GlobalRegion.Count >= 4)
                {
                    int x    = Math.Min(Math.Min(param.GlobalRegion[0].X, param.GlobalRegion[1].X), Math.Min(param.GlobalRegion[2].X, param.GlobalRegion[3].X));
                    int y    = Math.Min(Math.Min(param.GlobalRegion[0].Y, param.GlobalRegion[1].Y), Math.Min(param.GlobalRegion[2].Y, param.GlobalRegion[3].Y));
                    int maxx = Math.Max(Math.Max(param.GlobalRegion[0].X, param.GlobalRegion[1].X), Math.Max(param.GlobalRegion[2].X, param.GlobalRegion[3].X));
                    int maxy = Math.Max(Math.Max(param.GlobalRegion[0].Y, param.GlobalRegion[1].Y), Math.Max(param.GlobalRegion[2].Y, param.GlobalRegion[3].Y));
                    int w    = maxx - x;
                    int h    = maxy - y;
                    m_viewModel.ObjRect = new Rectangle(x, y, w, h);
                }
                else
                {
                    m_viewModel.ObjRect = new Rectangle();
                }

                if (param.ParticalRegion.Count >= 4)
                {
                    int x    = Math.Min(Math.Min(param.ParticalRegion[0].X, param.ParticalRegion[1].X), Math.Min(param.ParticalRegion[2].X, param.ParticalRegion[3].X));
                    int y    = Math.Min(Math.Min(param.ParticalRegion[0].Y, param.ParticalRegion[1].Y), Math.Min(param.ParticalRegion[2].Y, param.ParticalRegion[3].Y));
                    int maxx = Math.Max(Math.Max(param.ParticalRegion[0].X, param.ParticalRegion[1].X), Math.Max(param.ParticalRegion[2].X, param.ParticalRegion[3].X));
                    int maxy = Math.Max(Math.Max(param.ParticalRegion[0].Y, param.ParticalRegion[1].Y), Math.Max(param.ParticalRegion[2].Y, param.ParticalRegion[3].Y));
                    int w    = maxx - x;
                    int h    = maxy - y;
                    m_viewModel.ObjDetailRect = new Rectangle(x, y, w, h);
                }
                else
                {
                    m_viewModel.ObjDetailRect = new Rectangle();
                }


                m_viewModel.PassLineSet = param.PassLineList;
                m_viewModel.RegionSet   = param.BreakRegionList;
                m_viewModel.PictureData = param.BasePicture;
            }
            else
            {
                m_viewModel.PassLineSet = new List <PassLine>();
                m_viewModel.RegionSet   = new List <BreakRegion>();
                m_viewModel.PictureData = new System.Drawing.Bitmap(1, 1);
            }
            //m_viewModel.SearchItems.SearchItems.Add(new DataModel.SearchItemV3_1() { CameraID = "1", TaskId = 1, TaskName = "task1", CameraName = "cam1", SearchHandle = 0 });
            //m_viewModel.SearchItems.SearchItems.Add(new DataModel.SearchItemV3_1() { CameraID = "2", TaskId = 1, TaskName = "task2", CameraName = "cam2", SearchHandle = 0 });
            //m_viewModel.SearchItems.SearchItems.Add(new DataModel.SearchItemV3_1() { CameraID = IVX.DataModel.Common.VIRTUAL_CAMERA_ID+"2",TaskId = 1, TaskName = "task3", CameraName = "cam3", SearchHandle = 0 });
            m_viewModel.StartTime = dateTimeStart.Value;
            m_viewModel.StopTime  = dateTimeEnd.Value;
            buttonOk.Enabled      = false;
            string msg = "";

            if (m_viewModel.Commit(out msg))
            {
                if (OnOk != null)
                {
                    OnOk(this, e);
                }
            }
            else
            {
                buttonOk.Enabled = true;
                DevComponents.DotNetBar.MessageBoxEx.Show(msg, Framework.Environment.PROGRAM_NAME, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
        }
Exemplo n.º 24
0
        public static void Main()
        {
            int id = 1;

            State s1 = new State(id++, "睡觉中");
            State s2 = new State(id++, "吃饭中");
            State s3 = new State(id++, "上课中");
            State s4 = new State(id++, "看时间中");
            State s5 = new State(id++, "打游戏中");

            Transition t1 = new Transition(id++, s1, s2);
            Transition t2 = new Transition(id++, s2, s3);
            Transition t3 = new Transition(id++, s3, s2);
            Transition t4 = new Transition(id++, s2, s4);
            Transition t5 = new Transition(id++, s4, s5);
            Transition t6 = new Transition(id++, s4, s1);
            Transition t7 = new Transition(id++, s5, s1);

            AlarmClock       clock            = new AlarmClock(id++, "闹钟响", 7, 6);
            Eaten            eaten1           = new Eaten(id++, "吃完饭");
            Eaten            eaten2           = new Eaten(id++, "吃完饭");
            ClassNotFinished classNotFinished = new ClassNotFinished(id++, "还有课要上");
            ClassBell        bell             = new ClassBell(id++, "下课铃响");
            StillEarly       early            = new StillEarly(id++, "时间还早");
            TooLate          late             = new TooLate(id++, "时间不早了");
            GameFinished     gameFinished     = new GameFinished(id++, "打完游戏");

            t1.AddEvent(clock);
            t2.AddEvent(eaten1);
            t2.AddEvent(classNotFinished);
            t3.AddEvent(bell);
            t4.AddEvent(eaten2);
            t5.AddEvent(early);
            t6.AddEvent(late);
            t7.AddEvent(gameFinished);

            Sleep     sleep     = new Sleep(id++, "睡觉", clock);
            Eat       eat       = new Eat(id++, "吃饭", eaten1, eaten2);
            TakeClass takeClass = new TakeClass(id++, "上课", bell, classNotFinished);
            CheckTime checkTime = new CheckTime(id++, "看时间", early, late);
            PlayGame  playGame  = new PlayGame(id++, "打游戏", gameFinished);

            s1.AddTransition(t1);
            s2.AddTransition(t2);
            s2.AddTransition(t4);
            s3.AddTransition(t3);
            s4.AddTransition(t5);
            s4.AddTransition(t6);
            s5.AddTransition(t7);

            s1.AddAction(sleep);
            s2.AddAction(eat);
            s3.AddAction(takeClass);
            s4.AddAction(checkTime);
            s5.AddAction(playGame);

            FSM.FSM fsm = new FSM.FSM();
            fsm.AddState(s1);
            fsm.AddState(s2);
            fsm.AddState(s3);
            fsm.AddState(s4);
            fsm.AddState(s5);
            fsm.SetStartState(s1);
            fsm.SetCurrentState(s1);

            ConsoleKeyInfo cki;

            Console.WriteLine("生活行为状态机, 按 N 键进行下一步,按 E 键退出程序。");
            while (true)
            {
                Console.WriteLine("请输入:");

                cki = Console.ReadKey();

                Console.WriteLine();

                if (cki.Key == ConsoleKey.N)
                {
                    Console.WriteLine("当前状态:" + fsm.GetCurrentState().GetName());

                    fsm.CheckAndChangeState();
                }
                else if (cki.Key == ConsoleKey.E)
                {
                    break;
                }
                else
                {
                    Console.WriteLine("输入无效,请重新输入:");
                }
            }
        }
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="member">Das Element an dem der DbcAspect definiert wurde.</param>
 /// <param name="accessType">Gibt an, bei welchem Zugriff der Kontrakt angewendet werden soll.</param>
 /// <param name="checkTime">Gibt an, zu welchem Zeitpunkt der Kontrakt angewendet werden soll.</param>
 /// <param name="contractClassName">Gibt den Namen der Kontraktklasse an.</param>
 /// <param name="exceptionType">Gibt den Typ der Exception an, die bei Nichterfüllung des Kontrakts geworfen werden soll.</param>
 /// <param name="exceptionString">Gibt den Exceptiontext an, der bei Nichterfüllung des Kontrakts geworfen werden soll.</param>
 internal MemberBaseModel(MemberInfo member, AccessType accessType, CheckTime checkTime, string contractClassName, Type exceptionType, string exceptionString)
 {
     DbcAccessType = accessType;
     DbcCheckTime = checkTime;
     Member = member;
     ContractClassName = contractClassName;
     ExceptionType = exceptionType;
     ExceptionString = exceptionString;
 }
Exemplo n.º 26
0
        public void InsertOrUpdate <T>(LineObjectCollection <T> locLineObjects, TableSpecification ts, UpdatesLn updatesLn) where T : ILineObject <T>
        {
            CheckTime ct = new CheckTime(false, "InsertOrUpdate for '{0}' entered", ts.TableName);

            List <object> lInserted = new List <object>();
            List <object> lUpdated  = new List <object>();

            m_diInserted.Add(ts.TableName, lInserted);
            m_diUpdated.Add(ts.TableName, lUpdated);

            if (locLineObjects == null)
            {
                return;
            }

            UpdateStatistic us = m_uss.EnsureStatistic(ts.TableName);

            string sInfo = string.Format("{0} table [{1}] {2};  ", m_sLiveBet, ts.TableName, locLineObjects);

#if DEBUG
            int iInsertCount = 0;
            int iUpdateCount = 0;
#endif

            try
            {
                ct.AddEvent("Empty DataTables created.");

                foreach (string sKey in locLineObjects.Keys)
                {
                    using (DataCopyTables dct = DataCopyTables.GetDataCopyTables(m_conn, m_transaction, ts.TableName))
                    {
                        T obj = locLineObjects[sKey];

                        obj.UpdateId = updatesLn.UpdateId;

                        if (obj.IsNew)
                        {
                            DataRow drNew = obj.CreateDataRow(dct.InsertDataTable);
                            dct.InsertDataTable.Rows.Add(drNew);
                            lInserted.Add(obj);
                        }
                        else
                        {
                            DataRow drNew = obj.CreateDataRow(dct.UpdateDataTable);
                            dct.UpdateDataTable.Rows.Add(drNew);
                            lUpdated.Add(obj);
                        }

#if DEBUG
                        iInsertCount = dct.InsertDataTable.Rows.Count;
                        iUpdateCount = dct.UpdateDataTable.Rows.Count;
#endif


                        if (dct.InsertDataTable.Rows.Count > 0)
                        {
                            using (IDbCommand cmdInsert = GenerateInsertCommand(m_conn, m_transaction, dct.InsertDataTable, ts))
                            {
                                using (IDisposable dsp = SqlObjectFactory.CreateDbAdapter(null) as IDisposable)
                                {
                                    IDbDataAdapter daInsert = dsp as IDbDataAdapter;
                                    Debug.Assert(daInsert != null);

                                    daInsert.InsertCommand = cmdInsert;

                                    dct.InsertDataTable.AcceptChanges();

                                    foreach (DataRow dr in dct.InsertDataTable.Rows)
                                    {
                                        dr.SetAdded();
                                    }

                                    using (DataSet ds = new DataSet())
                                    {
                                        ds.Tables.Add(dct.InsertDataTable);
                                        daInsert.Update(ds);
                                    }
                                }
                            }

                            us.InsertCount = dct.InsertDataTable.Rows.Count;
                            ct.AddEvent("Insert completed ({0})", dct.InsertDataTable.Rows.Count);
                        }

                        if (dct.UpdateDataTable.Rows.Count > 0)
                        {
                            using (IDbCommand cmdUpdate = GenerateUpdateCommand(m_conn, m_transaction, dct.UpdateDataTable, ts))
                            {
                                using (IDisposable dsp = SqlObjectFactory.CreateDbAdapter(null) as IDisposable)
                                {
                                    IDbDataAdapter daUpdate = dsp as IDbDataAdapter;
                                    Debug.Assert(daUpdate != null);

                                    daUpdate.UpdateCommand = cmdUpdate;

                                    dct.UpdateDataTable.AcceptChanges();

                                    foreach (DataRow dr in dct.UpdateDataTable.Rows)
                                    {
                                        dr.SetModified();
                                    }

                                    using (DataSet ds = new DataSet())
                                    {
                                        ds.Tables.Add(dct.UpdateDataTable);
                                        daUpdate.Update(ds);
                                    }
                                }
                            }

                            us.UpdateCount = dct.UpdateDataTable.Rows.Count;
                            ct.AddEvent("Update completed ({0})", dct.UpdateDataTable.Rows.Count);
                        }
                        ct.AddEvent("Insert/Update filled up (I.Cnt={0}; U.Cnt={1})", dct.InsertDataTable.Rows.Count, dct.UpdateDataTable.Rows.Count);
                    }
                }



                //Debug.Assert(us.Count == arrObjects.Length);

                //m_elInfo.AddFormat("{0} Result: Succeeded;  Inserted: {1};  Updated: {2};  Skipped; {3}", sInfo, us.InsertCount, us.UpdateCount, us.SkipCount);
            }
            catch (Exception excp)
            {
                m_elInfo.AddFormat("{0} Result: FAILED; Inserted: {1};  Updated: {2};", sInfo, us.InsertCount, us.UpdateCount);

#if DEBUG
                if (typeof(T) == typeof(TaggedStringLn))
                {
                    FindDuplucates(locLineObjects);
                }

                int    iCount      = 0;
                string sObjectList = string.Format("ERROR objects (Count={0})\r\n", locLineObjects.Count);

                foreach (T obj in locLineObjects.Values)
                {
                    sObjectList += obj.ToString() + "\r\n";

                    if (++iCount > MAX_ERROR_LIST_COUNT)
                    {
                        sObjectList += string.Format("And More {0} objects not listed", locLineObjects.Count - iCount);
                        break;
                    }
                }


                m_logger.Error(sObjectList, excp);
#endif
                ExcpHelper.ThrowUp(excp, "ERROR InsertOrUpdate() for {0}", locLineObjects);
            }
            finally
            {
                ct.AddEvent("InsertOrUpdate for '{0}' completed", ts.TableName);
                ct.Info(m_logger);
            }
        }
Exemplo n.º 27
0
 public void Handle(CheckTime message)
 {
     _timeServer.Tell("gettime", Self);
 }
Exemplo n.º 28
0
 private void Form2_Load(object sender, EventArgs e)
 {
     numericUpDown1.Text = SleepTime.ToString();
     numericUpDown2.Text = CheckTime.ToString();
     numericUpDown3.Text = Radius.ToString();
 }
Exemplo n.º 29
0
        public void VerifySelectedOdds(SortableObservableCollection <ITipItemVw> socSelectedOdds, SyncHashSet <ITipItemVw> hsOddsToRemove = null)
        {
            CheckTime ct = new CheckTime(true, "VerifySelectedOdds(TipCount={0})", socSelectedOdds.Count);

            ExcpHelper.ThrowIf <ArgumentNullException>(socSelectedOdds == null, "VerifySelectedOdds(NULL) ERROR");

            lock (_verifyLocker)
            {
                ct.AddEvent("Lock Entered");

                if (hsOddsToRemove != null)
                {
                    hsOddsToRemove.Clear();
                }
                else
                {
                    hsOddsToRemove = new SyncHashSet <ITipItemVw>();
                }

                SyncList <ITipItemVw> lTipItems = socSelectedOdds.ToSyncList();

                foreach (TipItemVw tiv in lTipItems)
                {
                    // Check if selected odd is not expired
                    if (!CheckOdd(tiv.Odd))
                    {
                        hsOddsToRemove.Add(tiv);
                    }
                    // Check if selected odd is not yet in current collection (m_lSelectedOdds)
                    else if (!m_lSelectedOdds.Contains(tiv.Odd))
                    {
                        m_lSelectedOdds.Add(tiv.Odd);
                        tiv.Odd.BetDomain.Match.SetSelected(tiv.Odd, true);
                    }
                }

                ct.AddEvent("Check Completed");

                // Remove from socSelectedOdds and m_lSelectedOdds
                for (int i = 0; i < lTipItems.Count;)
                {
                    var tiv = lTipItems[i];

                    if (hsOddsToRemove.Contains(tiv))
                    {
                        // This Odd is expired
                        lTipItems.Remove(tiv);
                        socSelectedOdds.Remove(tiv);
                        m_lSelectedOdds.Remove(tiv.Odd);
                        tiv.Odd.BetDomain.Match.SetSelected(tiv.Odd, false);
                    }
                    else
                    {
                        i++;
                    }
                }

                ct.AddEvent("Remove from List Completed");

                // Remove from m_lSelectedOdd those items were not removed in previous cycle
                for (int i = 0; i < m_lSelectedOdds.Count;)
                {
                    IOddLn odd = m_lSelectedOdds[i];

                    TipItemVw tiv = new TipItemVw(odd);

                    if (!lTipItems.Contains(tiv))
                    {
                        m_lSelectedOdds.Remove(odd);
                        tiv.Odd.BetDomain.Match.SetSelected(tiv.Odd, false);
                    }
                    else
                    {
                        i++;
                    }
                }

                ct.AddEvent("Remove from List2 Completed");
            }

            ct.Info(m_logger);
        }