public void SpreadFilter() { EnumFilterType fromType = enumFilterType; for (int i = 0; i < filterModelCollections.Count; i++) { var key = filterModelCollections.ElementAt(i).Key; if (key == fromType) { continue; } var filterCollection = filterModelCollections[key]; var fromCollection = filterModelCollections[fromType]; for (int j = 0; j < filterCollection.Count; j++) { var currentFilter = filterCollection[j]; var fromFilter = fromCollection.FirstOrDefault(x => x.Type == currentFilter.Type); if (fromFilter != null) { currentFilter.LoadFilter(fromFilter); } } } }
public UiFilterType(EnumFilterType filterType) { Type = filterType; var fieldInfo = Type.GetType().GetField(Type.ToString()); var descriptionAttributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false); Name = descriptionAttributes.Length > 0 ? descriptionAttributes[0].Description : Type.ToString(); }
/// <summary> /// 设置过滤类型 /// </summary> public void SetFilterType(EnumFilterType type) { if (Pub._configModel.AutoFilterMember==true ) { foreach (NormalGroupModel item in _lstGroup) { if (item.PageControl != null) { item.PageControl.FilterType = type; } } this.Sort(); } }
/// <summary> /// 将所有用户设置可见 /// </summary> public void ShowAllMember() { this.FilterType = EnumFilterType.None; foreach (SingleUserControl item in _lstBtn) { item.Visible = true; } _currentPageIndex = 0; _maxCount = _lstBtn.Count; LoadData(); }
/// <summary>过滤用户,给会议邀请人用</summary> /// <param name="fType"></param> public void FilterMemberForMeeting(EnumFilterType fType) { // this.Visible = false; //过滤前先排序 if (Pub._configModel.SortByID) _lstBtn = _lstBtn.OrderBy(p => p.ID).ToList(); if (Pub._configModel.SortByNumber) _lstBtn = _lstBtn.OrderBy(p => p.Number).ToList(); if (Pub._configModel.SortByName) _lstBtn = _lstBtn.OrderBy(p => p.MemberName).ToList(); if (Pub._configModel.SortByOnline) _lstBtn = _lstBtn.OrderBy(p => -p.IsOnline).ToList(); if (Pub._configModel.SortByDepartment) _lstBtn = _lstBtn.OrderBy(p => -p.DepartmentID).ToList(); ///过滤空闲的 foreach (SingleUserControl item in _lstBtn) { item.Visible = item.GetCanDoByFilterType(fType); } // Pub._currentSelectMeetingMemberCount = this._lstBtn.Count; //过滤已选的人员 foreach (DB_Talk.Model.m_Member item in Pub._talkControl.NumberList) { SingleUserControl sc = Pub._pageControl._lstBtn.Find(p => p.Number == item.i_Number.Value); if (sc != null) { sc.Visible = false; } } Pub._talkControl.NumberList.Clear(); _lstBtn = _lstBtn.OrderBy(p => p.Visible == false).ToList(); _maxCount = GetVisibleTrueCount(); _currentPageIndex = 0; LoadData(); // this.Visible = true; }
/// <summary>根据过滤类型得到是否可以执行相应的操作</summary> /// <param name="type"></param> /// <returns></returns> /// public bool GetCanDoByFilterType(EnumFilterType type) { switch (type) { case EnumFilterType.None: return true; break; case EnumFilterType.CanMakeCall: if (this._userLineStatus == TalkControl.EnumUserLineStatus.Idle) return true; break; case EnumFilterType.CanHandup: if (this.UserLineStatus == TalkControl.EnumUserLineStatus.Busy || this.UserLineStatus == TalkControl.EnumUserLineStatus.Holding || this.UserLineStatus == TalkControl.EnumUserLineStatus.Listen || this.UserLineStatus == TalkControl.EnumUserLineStatus.Record || this.UserLineStatus == TalkControl.EnumUserLineStatus.Insert || this.UserLineStatus == TalkControl.EnumUserLineStatus.Ring || this.UserLineStatus == TalkControl.EnumUserLineStatus.Outcalling ) return true; break; case EnumFilterType.CanHolding: if (this.UserLineStatus == TalkControl.EnumUserLineStatus.Busy || this.UserLineStatus == TalkControl.EnumUserLineStatus.Holding ) return true; break; case EnumFilterType.CanTranfer: if (this.UserLineStatus == TalkControl.EnumUserLineStatus.Idle) return true; break; case EnumFilterType.CanInsteadAnswer: if (this.UserLineStatus == TalkControl.EnumUserLineStatus.Ring) return true; break; case EnumFilterType.CanInsert: if (this.UserLineStatus == TalkControl.EnumUserLineStatus.Busy) return true; break; case EnumFilterType.CanSnatch: if (this.UserLineStatus == TalkControl.EnumUserLineStatus.Busy) return true; break; case EnumFilterType.CanListen: if (this.UserLineStatus == TalkControl.EnumUserLineStatus.Busy || this.UserLineStatus == TalkControl.EnumUserLineStatus.Listen ) return true; break; case EnumFilterType.CanRecord: if (this.UserLineStatus == TalkControl.EnumUserLineStatus.Busy ||this.UserLineStatus == TalkControl.EnumUserLineStatus.Record || this.UserLineStatus == TalkControl.EnumUserLineStatus.Listen ) return true; break; case EnumFilterType.CanAddMeetingMember: if (this.UserLineStatus == TalkControl.EnumUserLineStatus.Idle) return true; break; default: break; } return false; }
/// <summary> /// 从DataGridView中获取页面需要的控件参数 /// </summary> /// <param name="gridViewMain">DataGirdView</param> /// <param name="filter">过滤类型,编辑页面控件、查询条件、列表控件</param> /// <returns></returns> private static List<PageControl> getPageControlList(DataGridView gridViewMain, EnumFilterType filter) { List<PageControl> pageControlList = new List<PageControl>(); foreach (DataGridViewRow row in gridViewMain.Rows) { #region 编辑页面 if (filter == EnumFilterType.编辑页面) { bool isShowEdit = Convert.ToBoolean(row.Cells["ColumnIsEditControl"].Value); if (isShowEdit) { PageControl pageControl = new PageControl(); pageControl.ControlName = row.Cells["ColumnName"].Value.ToString(); pageControl.ControlDesc = row.Cells["ColumnDesc"].Value.ToString(); pageControl.ColumnType = FormHelper.GetCSharpTypeByDBType(FormHelper.ConvertStrToCMD2DBType(row.Cells["ColumnType"].Value.ToString())); pageControl.ControlType = row.Cells["ColumnControlType"].Value == null ? EnumControlType.FITextBox : (EnumControlType)Enum.Parse(typeof(EnumControlType), row.Cells["ColumnControlType"].Value.ToString()); if (row.Cells["ColumnIsValidate"].Value == null) { if (string.IsNullOrWhiteSpace(row.Cells["ColumnIsNullable"].Value.ToString())) { pageControl.ControlValidate = EnumValidateType.必填; } else { pageControl.ControlValidate = EnumValidateType.无; } } else { pageControl.ControlValidate = (EnumValidateType)Enum.Parse(typeof(EnumValidateType), row.Cells["ColumnIsValidate"].Value.ToString()); } pageControlList.Add(pageControl); } } #endregion #region 列表页面 if (filter == EnumFilterType.列表页面) { bool isQueryFilter = Convert.ToBoolean(row.Cells["ColumnIsQueryFilter"].Value); if (isQueryFilter) { PageControl pageControl = new PageControl(); pageControl.ControlName = row.Cells["ColumnName"].Value.ToString(); pageControl.ControlDesc = row.Cells["ColumnDesc"].Value.ToString(); pageControl.ColumnType = FormHelper.GetCSharpTypeByDBType(FormHelper.ConvertStrToCMD2DBType(row.Cells["ColumnType"].Value.ToString())); pageControl.ControlType = row.Cells["ColumnControlType"].Value == null ? EnumControlType.FITextBox : (EnumControlType)Enum.Parse(typeof(EnumControlType), row.Cells["ColumnControlType"].Value.ToString()); if (row.Cells["ColumnIsValidate"].Value == null) { if (string.IsNullOrWhiteSpace(row.Cells["ColumnIsNullable"].Value.ToString())) { pageControl.ControlValidate = EnumValidateType.必填; } else { pageControl.ControlValidate = EnumValidateType.无; } } else { pageControl.ControlValidate = (EnumValidateType)Enum.Parse(typeof(EnumValidateType), row.Cells["ColumnIsValidate"].Value.ToString()); } pageControlList.Add(pageControl); } } #endregion } return pageControlList; }
private string GetFilterFileName(EnumFilterType filterType) { return(String.Format("{0}_{1}", filterType, _defaultFilterFileName)); }
/// <summary> /// 设置过滤类型 /// </summary> public void SetFilterType(EnumFilterType type) { _lstGroup[0].pageControl.FilterType = type; this.Sort(); }