Exemple #1
0
        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);
                    }
                }
            }
        }
Exemple #2
0
        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;
        }
Exemple #8
0
 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();
 }