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); } }
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)); } }