示例#1
0
        private void CreateRegionStateItems(ChildRegionItem regionItem)
        {
            try
            {
                regionItem.ListRegionStateItems.Clear();
                if (ListAllStateInfos == null)
                {
                    return;
                }
                for (int i = 0; i < ListAllStateInfos.Count; i++)
                {
                    var stateInfo = ListAllStateInfos[i];

                    RegionStateItem item = new RegionStateItem();
                    item.StateInfo   = stateInfo;
                    item.StateID     = stateInfo.ObjID;
                    item.StateNumber = stateInfo.Number;
                    item.StateName   = stateInfo.Name;
                    item.SeatNum     = 0;
                    item.Color       = new SolidColorBrush(GetColorFromString(stateInfo.Color));
                    regionItem.ListRegionStateItems.Add(item);
                    mListAllRegionStateItems.Add(item);
                }
            }
            catch (Exception ex)
            {
                ShowException(ex.Message);
            }
        }
示例#2
0
        private void CaculateSeatNum(ChildRegionItem childRegionItem, RegionStateItem regionStateItem)
        {
            try
            {
                var stateInfo = regionStateItem.StateInfo;
                if (stateInfo == null)
                {
                    return;
                }
                int stateType  = stateInfo.Type;
                int stateValue = stateInfo.Value;
                int num        = 0;
                for (int i = 0; i < childRegionItem.ListRegionExtItems.Count; i++)
                {
                    var extItem = childRegionItem.ListRegionExtItems[i];

                    var extInfo = extItem.ExtInfo;
                    if (extInfo == null)
                    {
                        continue;
                    }
                    ExtStateInfo extState = extInfo.ListStateInfos.FirstOrDefault(s => s.StateType == stateType);
                    if (extState == null)
                    {
                        continue;
                    }
                    if (stateType == S4410Consts.STATE_TYPE_LOGIN ||
                        stateType == S4410Consts.STATE_TYPE_RECORD)
                    {
                        if ((extState.State & stateValue) > 0)
                        {
                            num++;
                        }
                    }
                    else
                    {
                        if (extState.State == stateValue)
                        {
                            num++;
                        }
                    }
                }
                //regionStateItem.SeatNum = num;
                Dispatcher.Invoke(new Action(() =>
                {
                    regionStateItem.SeatNum = num;
                    var viewer = childRegionItem.Viewer;
                    if (viewer != null)
                    {
                        viewer.Refresh();
                    }
                }));
            }
            catch (Exception ex)
            {
                CurrentApp.WriteLog("CaculateSeatNum", string.Format("Fail.\t{0}", ex.Message));
            }
        }