예제 #1
0
        /// <summary>
        /// 添加证券成份
        /// </summary>
        public void AddSecurities()
        {
            List <GridRow> selectedCategoryRows = m_gridCategory.SelectedRows;
            int            rowsSize             = selectedCategoryRows.Count;

            if (rowsSize > 0)
            {
                UserSecurityCategory category = new UserSecurityCategory();
                m_userSecurityService.GetCategory(selectedCategoryRows[0].GetCell(0).GetString(), ref category);
                SecurityList securityList = new SecurityList(m_native);
                securityList.Show();
                WindowEx window = securityList.Window;
                window.IsChildWindow = true;
                window.Tag           = securityList;
                if (category.m_codes != null && category.m_codes.Length > 0)
                {
                    List <Security> securities = new List <Security>();
                    m_securityService.GetSecuritiesByCodes(category.m_codes, securities);
                    securityList.AddSecuritiesToSecuritiesGrid(securities);
                }
                WindowClosingEvent windowClosingEvent = new WindowClosingEvent(SecurityListWindowClosed);
                window.RegisterEvent(windowClosingEvent, EVENTID.WINDOWCLOSING);
                m_native.Invalidate();
            }
        }
예제 #2
0
        /// <summary>
        /// 删除证券成份
        /// </summary>
        public void DeleteSecurities()
        {
            List <GridRow> selectedCategoryRows = m_gridCategory.SelectedRows;
            int            rowsSize             = selectedCategoryRows.Count;

            if (rowsSize > 0)
            {
                UserSecurityCategory category = new UserSecurityCategory();
                m_userSecurityService.GetCategory(selectedCategoryRows[0].GetCell(0).GetString(), ref category);
                List <GridRow>  selectedRows     = m_gridSecurities.SelectedRows;
                int             selectedRowsSize = selectedRows.Count;
                List <Security> securities       = new List <Security>();
                if (selectedRowsSize > 0)
                {
                    String codes = "";
                    for (int i = 0; i < selectedRowsSize; i++)
                    {
                        GridRow row = selectedRows[i];
                        codes += row.GetCell(0).GetString();
                        if (i != selectedRowsSize - 1)
                        {
                            codes += ",";
                        }
                    }
                    UserSecurityCategory updateCategory = new UserSecurityCategory();
                    updateCategory.m_categoryID = category.m_categoryID;
                    updateCategory.m_codes      = codes;
                    updateCategory.m_userID     = DataCenter.UserID;
                    m_userSecurityService.DeleteSecurities(m_userSecurityService.OperatorRequestID, updateCategory);
                }
            }
        }
예제 #3
0
        /// <summary>
        /// 从表格中移除类别
        /// </summary>
        /// <param name="categories">类别</param>
        public void RemoveCategoriesFromCategoryGrid(List <UserSecurityCategory> categories)
        {
            if (m_gridCategory.EditTextBox != null)
            {
                m_gridCategory.OnCellEditEnd(null);
            }
            m_gridCategory.BeginUpdate();
            Dictionary <String, String> removeKeys = new Dictionary <String, String>();
            int categoriesSize = categories.Count;

            for (int i = 0; i < categoriesSize; i++)
            {
                UserSecurityCategory category = categories[i];
                removeKeys[category.m_categoryID] = "";
            }
            int rowSize = m_gridCategory.GetRows().Count;

            for (int i = 0; i < rowSize; i++)
            {
                GridRow row        = m_gridCategory.GetRow(i);
                String  categoryID = row.GetCell(0).GetString();
                if (removeKeys.ContainsKey(categoryID))
                {
                    m_gridCategory.RemoveRow(row);
                    row.ClearCells();
                    row.Dispose();
                    rowSize--;
                    i--;
                }
            }
            removeKeys.Clear();
            m_gridCategory.EndUpdate();
            m_gridCategory.Invalidate();
        }
예제 #4
0
        /// <summary>
        /// 更新表格中的类别
        /// </summary>
        /// <param name="categories">类别</param>
        public void UpdateCategoriesToCategoryGrid(List <UserSecurityCategory> categories)
        {
            Dictionary <String, UserSecurityCategory> updateKeys = new Dictionary <String, UserSecurityCategory>();
            int categoriesSize = categories.Count;

            for (int i = 0; i < categoriesSize; i++)
            {
                UserSecurityCategory category = categories[i];
                updateKeys[category.m_categoryID] = category;
            }
            List <GridRow> rows    = m_gridCategory.GetRows();
            int            rowSize = rows.Count;

            for (int i = 0; i < rowSize; i++)
            {
                GridRow row = rows[i] as GridRow;
                UserSecurityCategory category = new UserSecurityCategory();
                m_userSecurityService.GetCategory(row.GetCell(0).GetString(), ref category);
                if (updateKeys.ContainsKey(category.m_categoryID))
                {
                    UserSecurityCategory updateCategory = updateKeys[category.m_categoryID];
                    m_userSecurityService.GetCategory(updateCategory.m_categoryID, ref updateCategory);
                    row.GetCell(1).SetString(updateCategory.m_name);
                    BindSecuritiesToSecuritiesGrid(category);
                }
            }
            updateKeys.Clear();
        }
예제 #5
0
        /// <summary>
        /// 表格选中行改变方法
        /// </summary>
        public void OnGridSelectedRowsChanged()
        {
            List <GridRow> selectedRows     = m_tvBlock.SelectedRows;
            int            selectedRowsSize = selectedRows.Count;

            if (selectedRowsSize > 0)
            {
                TreeNodeA node       = selectedRows[0].GetCell(0) as TreeNodeA;
                TreeNodeA parentNode = node.Parent;
                if (parentNode != null && parentNode.Text == "自选股")
                {
                    String categoryID             = node.Value;
                    UserSecurityCategory category = new UserSecurityCategory();
                    m_userSecurityService.GetCategory(categoryID, ref category);
                    List <Security> securities = new List <Security>();
                    m_securityService.GetSecuritiesByCodes(category.m_codes, securities);
                    BindSecuritiesToSelectSecuritiesGrid(securities);
                }
                else
                {
                    if (node.GetChildNodes().Count == 0)
                    {
                        String blockID = node.Value;
                        m_securityService.GetSecuritiesByBlockID(m_securitiesRequestID, blockID);
                    }
                }
            }
        }
예제 #6
0
        /// <summary>
        /// 添加类别到表格中
        /// </summary>
        /// <param name="categories">类别</param>
        public void LoadCategoriesToCategoryGrid(List <UserSecurityCategory> categories)
        {
            m_gridCategory.BeginUpdate();
            int categoriesSize = categories.Count;

            for (int i = 0; i < categoriesSize; i++)
            {
                UserSecurityCategory category = categories[i];
                GridRow row = new GridRow();
                row.Grid = m_gridCategory;
                GridStringCell idCell = new GridStringCell();
                idCell.Grid   = m_gridCategory;
                idCell.Column = m_gridCategory.GetColumn(0);
                idCell.Text   = category.m_categoryID;
                row.AddCell(0, idCell);
                GridStringCell textCell = new GridStringCell();
                textCell.Grid      = m_gridCategory;
                textCell.Column    = m_gridCategory.GetColumn(0);
                textCell.AllowEdit = true;
                textCell.Text      = category.m_name;
                row.AddCell(1, textCell);
                m_gridCategory.AddRow(row);
            }
            m_gridCategory.EndUpdate();
            m_gridCategory.Invalidate();
        }
예제 #7
0
        /// <summary>
        /// 证券列表窗体关闭方法
        /// </summary>
        /// <param name="securityList">是否取消</param>
        /// <param name="cancel">是否取消</param>
        private void OnSecurityListWindowClosed(SecurityList securityList, ref bool cancel)
        {
            List <GridRow> selectedCategoryRows = m_gridCategory.SelectedRows;
            int            rowsSize             = selectedCategoryRows.Count;

            if (rowsSize > 0)
            {
                UserSecurityCategory category = new UserSecurityCategory();
                m_userSecurityService.GetCategory(selectedCategoryRows[0].GetCell(0).GetString(), ref category);
                if (securityList.IsSubmit)
                {
                    List <Security> selectedSecurities = new List <Security>();
                    securityList.GetSelectedSecurities(selectedSecurities);
                    int    selectedSecuritiesSize = selectedSecurities.Count;
                    String codes = "";
                    for (int i = 0; i < selectedSecuritiesSize; i++)
                    {
                        codes += selectedSecurities[i].m_code;
                        if (i != selectedSecuritiesSize - 1)
                        {
                            codes += ",";
                        }
                    }
                    category.m_codes = codes;
                    m_userSecurityService.UpdateCategory(m_userSecurityService.OperatorRequestID, category);
                }
            }
            m_window.Invalidate();
        }
예제 #8
0
 /// <summary>
 /// 点击单元格
 /// </summary>
 /// <param name="cell">单元格</param>
 /// <param name="mp">坐标</param>
 /// <param name="button">按钮</param>
 /// <param name="clicks">点击次数</param>
 /// <param name="delta">鼠标滚轮值</param>
 public void OnClickCell(UserSecurityCellT2 cell, POINT mp, MouseButtonsA button, int clicks, int delta)
 {
     if (m_cellState > 0)
     {
         if (m_isEditing)
         {
             if (mp.x <= 30 && mp.y <= 30)
             {
                 UserSecurityCategory category = new UserSecurityCategory();
                 category.m_categoryID = "primary";
                 category.m_userID     = DataCenter.UserID;
                 category.m_codes      = cell.SecurityCode;
                 m_userSecurityService.DeleteSecurities(m_userSecurityService.OperatorRequestID, category);
             }
             Invalidate();
         }
         else
         {
             Security security = new Security();
             m_securityService.GetSecurityByCode(cell.SecurityCode, ref security);
             m_userSecurityService.AddVisitsCount(security.m_code);
             m_chart.SearchSecurity(security);
             cell.Clicks++;
             m_cells.Sort(new UserSecurityCellT2Compare());
             Update();
         }
     }
     m_cellState = 0;
 }
예제 #9
0
        /// <summary>
        /// 添加类别到表格中
        /// </summary>
        /// <param name="categories">类别</param>
        public void AddCategoriesToCategoryGrid(List <UserSecurityCategory> categories)
        {
            if (m_gridCategory.EditTextBox != null)
            {
                m_gridCategory.OnCellEditEnd(null);
            }
            m_gridCategory.BeginUpdate();
            int categoriesSize = categories.Count;

            for (int i = 0; i < categoriesSize; i++)
            {
                UserSecurityCategory category = categories[i];
                GridRow row = new GridRow();
                row.Grid = m_gridCategory;
                GridStringCell idCell = new GridStringCell();
                idCell.Text = category.m_categoryID;
                row.AddCell(0, idCell);
                GridStringCell textCell = new GridStringCell();
                textCell.AllowEdit = true;
                textCell.Text      = category.m_name;
                row.AddCell(1, textCell);
                m_gridCategory.AddRow(row);
                if (i == 0)
                {
                    m_gridCategory.OnCellEditBegin(textCell);
                }
            }
            m_gridCategory.EndUpdate();
            m_gridCategory.Invalidate();
        }
예제 #10
0
        /// <summary>
        /// 添加类别
        /// </summary>
        public void AddCategory()
        {
            UserSecurityCategory category = new UserSecurityCategory();

            category.m_name   = "未命名的自选股";
            category.m_userID = DataCenter.UserID;
            m_userSecurityService.AddCategory(m_userSecurityService.OperatorRequestID, category);
        }
예제 #11
0
        /// <summary>
        /// 加载单元格
        /// </summary>
        private void LoadCells()
        {
            int cellsSize = m_cells.Count;
            Dictionary <String, UserSecurityCellT2> removeCells = new Dictionary <String, UserSecurityCellT2>();

            for (int i = 0; i < cellsSize; i++)
            {
                UserSecurityCellT2 cell = m_cells[i];
                removeCells[cell.SecurityCode] = cell;
            }
            m_cells.Clear();
            List <UserSecurityCategory> categories = new List <UserSecurityCategory>();

            m_userSecurityService.GetCategories(categories);
            UserSecurityCategory category = categories[0];

            String[] strs     = category.m_codes.Split(new String[] { "," }, StringSplitOptions.RemoveEmptyEntries);
            int      strsSize = strs.Length;

            for (int i = 0; i < strsSize; i++)
            {
                String securityCode = strs[i];
                if (removeCells.ContainsKey(securityCode))
                {
                    m_cells.Add(removeCells[securityCode]);
                    removeCells.Remove(securityCode);
                }
                else
                {
                    UserSecurityCellT2 cell = new UserSecurityCellT2();
                    cell.SecurityCode = securityCode;
                    cell.BackColor    = COLOR.ARGB(200, 0, 0, 0);
                    cell.PaintRect    = cell.Bounds;
                    cell.List         = this;
                    if (m_userSecurityService.VisitsCount.ContainsKey(securityCode))
                    {
                        cell.Clicks = m_userSecurityService.VisitsCount[securityCode];
                    }
                    m_cells.Add(cell);
                    AddControl(cell);
                }
            }
            foreach (UserSecurityCellT2 cell in removeCells.Values)
            {
                if (cell == m_selectedCell)
                {
                    m_selectedCell = null;
                }
                RemoveControl(cell);
                cell.Dispose();
            }
            removeCells.Clear();
            m_cells.Sort(new UserSecurityCellT2Compare());
            Update();
        }
예제 #12
0
        /// <summary>
        /// 获取类别信息
        /// </summary>
        /// <param name="categoryID">类别ID</param>
        /// <param name="category">返回类别</param>
        /// <returns>状态</returns>
        public bool GetCategory(String categoryID, ref UserSecurityCategory category)
        {
            int categoriesSize = m_categories.Count;

            for (int i = 0; i < categoriesSize; i++)
            {
                if (m_categories[i].m_categoryID == categoryID)
                {
                    category = m_categories[i];
                    return(true);
                }
            }
            return(false);
        }
예제 #13
0
        /// <summary>
        /// 删除类别
        /// </summary>
        public void DeleteCategory()
        {
            List <GridRow> selectedRows = m_gridCategory.SelectedRows;
            int            rowsSize     = selectedRows.Count;

            if (rowsSize > 0)
            {
                UserSecurityCategory category = new UserSecurityCategory();
                m_userSecurityService.GetCategory(selectedRows[0].GetCell(0).GetString(), ref category);
                if (category != null)
                {
                    m_userSecurityService.DeleteCategory(m_userSecurityService.OperatorRequestID, category);
                }
            }
        }
예제 #14
0
        /// <summary>
        /// 表格选中行改变方法
        /// </summary>
        public void OnGridSelectedRowsChanged()
        {
            String         categoryID       = "";
            List <GridRow> selectedRows     = m_gridCategory.SelectedRows;
            int            selectedRowsSize = selectedRows.Count;

            if (selectedRowsSize > 0)
            {
                categoryID = selectedRows[0].GetCell(0).Text;
            }
            UserSecurityCategory category = new UserSecurityCategory();

            m_userSecurityService.GetCategory(categoryID, ref category);
            BindSecuritiesToSecuritiesGrid(category);
        }
예제 #15
0
        /// <summary>
        /// 加载数据
        /// </summary>
        /// <param name="state">状态</param>
        /// <returns>加载状态</returns>
        public static int LoadData(int state)
        {
            ChatData chatData = new ChatData();

            m_chatService.Enter(m_chatService.RequestID, chatData);
            Indicator indicator = new Indicator();

            indicator.m_userID = m_userID;
            m_indicatorService.GetIndicators(m_indicatorService.GetListRequestID, indicator);
            SecurityFilterTemplate template = new SecurityFilterTemplate();

            template.m_userID = m_userID;
            m_securityFilterService.GetTemplates(m_securityFilterService.GetListRequestID, template);
            UserSecurityVisitsCount visitsCount = new UserSecurityVisitsCount();

            visitsCount.m_userID = DataCenter.UserID;
            m_userSecurityService.GetVisitsCount(m_userSecurityService.GetListRequestID, visitsCount);
            UserSecurityCategory category = new UserSecurityCategory();

            category.m_userID = m_userID;
            m_userSecurityService.GetCategories(m_userSecurityService.GetListRequestID, category);
            IndicatorLayout indicatorLayout = new IndicatorLayout();

            indicatorLayout.m_userID = m_userID;
            m_indicatorLayoutService.GetLayouts(m_indicatorLayoutService.GetListRequestID, indicatorLayout);
            Macro macro = new Macro();

            macro.m_userID = m_userID;
            m_macroService.GetMacros(m_macroService.GetListRequestID, macro);
            UserSession userSession = new UserSession();

            userSession.m_userID = m_userID;
            m_userSessionService.GetSessions(m_userSessionService.GetListRequestID, userSession);
            if (state == 1)
            {
                m_securityService.LoadSecurities();
            }
            if (m_mainUI != null)
            {
                m_mainUI.LoadData();
            }
            return(0);
        }
예제 #16
0
 /// <summary>
 /// 类别表格单元格编辑完成方法
 /// </summary>
 /// <param name="cell">单元格</param>
 public void OnCategoryGridCellEditEnd(GridCell cell)
 {
     if (cell != null)
     {
         UserSecurityCategory category = new UserSecurityCategory();
         m_userSecurityService.GetCategory(cell.Row.GetCell(0).GetString(), ref category);
         if (category != null)
         {
             UserSecurityCategory updateCategory = new UserSecurityCategory();
             updateCategory.m_categoryID = category.m_categoryID;
             updateCategory.m_codes      = category.m_codes;
             updateCategory.m_name       = m_gridCategory.EditTextBox.Text;
             updateCategory.m_orderNum   = category.m_orderNum;
             updateCategory.m_type       = category.m_type;
             updateCategory.m_userID     = category.m_userID;
             m_userSecurityService.UpdateCategory(m_userSecurityService.OperatorRequestID, updateCategory);
         }
     }
 }
예제 #17
0
        /// <summary>
        /// 绑定自选股类别中的证券到表格
        /// </summary>
        /// <param name="category">类别</param>
        public void BindSecuritiesToSecuritiesGrid(UserSecurityCategory category)
        {
            m_gridSecurities.ClearRows();
            List <Security> securities = new List <Security>();

            if (category.m_codes != null && category.m_codes.Length > 0)
            {
                String[] codes     = category.m_codes.Split(new String[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                int      codesSize = codes.Length;
                for (int i = 0; i < codesSize; i++)
                {
                    Security security = new Security();
                    bool     state    = m_securityService.GetSecurityByCode(codes[i], ref security);
                    if (state)
                    {
                        securities.Add(security);
                    }
                }
            }
            AddSecuritiesToSecuritiesGrid(securities);
        }
예제 #18
0
        /// <summary>
        /// 加载自选股类别
        /// </summary>
        /// <param name="categories">自选股列表</param>
        public void LoadUserSecurityCategories(List <UserSecurityCategory> categories)
        {
            int categoriesSize = categories.Count;

            m_tvBlock.BeginUpdate();
            List <TreeNodeA> childNodes = m_tvBlock.GetChildNodes();
            int childNodesSize          = childNodes.Count;

            if (childNodesSize > 0)
            {
                TreeNodeA userSecurityNode = childNodes[childNodesSize - 1];
                for (int i = 0; i < categories.Count; i++)
                {
                    UserSecurityCategory category     = categories[i];
                    TreeNodeA            categoryNode = new TreeNodeA();
                    userSecurityNode.AppendNode(categoryNode);
                    categoryNode.Text  = category.m_name;
                    categoryNode.Value = category.m_categoryID;
                }
            }
            m_tvBlock.EndUpdate();
        }
예제 #19
0
        /// <summary>
        /// 调用控件线程方法
        /// </summary>
        /// <param name="args">参数</param>
        public void OnInvoke(object args)
        {
            CMessage message = (CMessage)args;

            if (message.m_serviceID == m_quoteService.ServiceID)
            {
                LatestDataInfo            dataInfo = new LatestDataInfo();
                List <SecurityLatestData> datas    = new List <SecurityLatestData>();
                QuoteService.GetLatestDatas(ref dataInfo, datas, message.m_body, message.m_bodyLength);
                int datasSize = datas.Count;
                for (int i = 0; i < datasSize; i++)
                {
                    m_latestDatas[datas[i].m_securityCode] = datas[i];
                }
                datas.Clear();
            }
            else
            {
                List <UserSecurityCategory> categories = new List <UserSecurityCategory>();
                UserSecurityService.GetCategories(categories, message.m_body, message.m_bodyLength);
                UserSecurityCategory category = categories[0];
                switch (message.m_functionID)
                {
                case UserSecurityService.FUNCTIONID_USERSECURITY_ADDCATEGORIES:
                    AddCategoriesToCategoryGrid(categories);
                    break;

                case UserSecurityService.FUNCTIONID_USERSECURITY_DELETECATEGORIES:
                    RemoveCategoriesFromCategoryGrid(categories);
                    break;

                case UserSecurityService.FUNCTIONID_USERSECURITY_UPDATECATEGORIES:
                    UpdateCategoriesToCategoryGrid(categories);
                    break;

                case UserSecurityService.FUNCTIONID_USERSECURITY_ADDSECURITIES:
                case UserSecurityService.FUNCTIONID_USERSECURITY_DELETESECURITIES:
                {
                    String         categoryID       = "";
                    List <GridRow> selectedRows     = m_gridCategory.SelectedRows;
                    int            selectedRowsSize = selectedRows.Count;
                    if (selectedRowsSize > 0)
                    {
                        categoryID = selectedRows[0].GetCell(0).Text;
                    }
                    if (categoryID != null && categoryID == category.m_categoryID)
                    {
                        List <Security> securities = new List <Security>();
                        m_securityService.GetSecuritiesByCodes(category.m_codes, securities);
                        if (message.m_functionID == UserSecurityService.FUNCTIONID_USERSECURITY_ADDSECURITIES)
                        {
                            AddSecuritiesToSecuritiesGrid(securities);
                        }
                        else if (message.m_functionID == UserSecurityService.FUNCTIONID_USERSECURITY_DELETESECURITIES)
                        {
                            RemoveSecuritiesFromSecuritiesGrid(securities);
                        }
                    }
                    break;
                }
                }
            }
            m_window.Invalidate();
        }
예제 #20
0
        /// <summary>
        /// 接收消息方法
        /// </summary>
        /// <param name="message">消息</param>
        public override void OnReceive(CMessage message)
        {
            if (message.m_functionID == FUNCTIONID_USERSECURITY_GETVISITSCOUNT)
            {
                UserSecurityVisitsCount visitsCount = new UserSecurityVisitsCount();
                Binary br = new Binary();
                br.Write(message.m_body, message.m_bodyLength);
                visitsCount.m_userID = br.ReadInt();
                visitsCount.CodesFromString(br.ReadString());
                m_visitsCount = visitsCount.m_codes;
                br.Close();
            }
            else
            {
                List <UserSecurityCategory> categories = new List <UserSecurityCategory>();
                UserSecurityService.GetCategories(categories, message.m_body, message.m_bodyLength);
                int categoriesSize = categories.Count;
                if (message.m_functionID != FUNCTIONID_USERSECURITY_GETCATEGORIES)
                {
                    message.m_requestID = m_operatorRequestID;
                }
                switch (message.m_functionID)
                {
                case FUNCTIONID_USERSECURITY_GETCATEGORIES:
                {
                    m_categories = categories;
                    m_loaded     = true;
                    break;
                }

                case FUNCTIONID_USERSECURITY_ADDCATEGORIES:
                {
                    bool add = false;
                    for (int i = 0; i < categoriesSize; i++)
                    {
                        UserSecurityCategory category = null;
                        if (!GetCategory(categories[i].m_categoryID, ref category))
                        {
                            m_categories.Add(categories[i]);
                            add = true;
                        }
                    }
                    if (!add)
                    {
                        return;
                    }
                    break;
                }

                case FUNCTIONID_USERSECURITY_DELETECATEGORIES:
                {
                    for (int i = 0; i < categoriesSize; i++)
                    {
                        UserSecurityCategory category = null;
                        if (GetCategory(categories[i].m_categoryID, ref category))
                        {
                            m_categories.Remove(category);
                        }
                    }
                    break;
                }

                case FUNCTIONID_USERSECURITY_UPDATECATEGORIES:
                {
                    for (int i = 0; i < categoriesSize; i++)
                    {
                        UserSecurityCategory updateCategory = categories[i];
                        int curCategoriesSize = m_categories.Count;
                        for (int j = 0; j < curCategoriesSize; j++)
                        {
                            UserSecurityCategory category = m_categories[j];
                            if (category.m_categoryID == updateCategory.m_categoryID)
                            {
                                m_categories[j] = updateCategory;
                                break;
                            }
                        }
                    }
                    break;
                }

                case FUNCTIONID_USERSECURITY_ADDSECURITIES:
                {
                    for (int i = 0; i < categoriesSize; i++)
                    {
                        UserSecurityCategory updateCategory = categories[i];
                        int curCategoriesSize = m_categories.Count;
                        for (int j = 0; j < curCategoriesSize; j++)
                        {
                            UserSecurityCategory category = m_categories[j];
                            if (category.m_categoryID == updateCategory.m_categoryID)
                            {
                                if (category.m_codes != null && category.m_codes.Length > 0)
                                {
                                    updateCategory.m_codes = m_categories[j].m_codes + "," + updateCategory.m_codes;
                                }
                                m_categories[j] = updateCategory;
                                break;
                            }
                        }
                    }
                    break;
                }

                case FUNCTIONID_USERSECURITY_DELETESECURITIES:
                {
                    for (int i = 0; i < categoriesSize; i++)
                    {
                        UserSecurityCategory updateCategory = categories[i];
                        int curCategoriesSize = m_categories.Count;
                        for (int j = 0; j < curCategoriesSize; j++)
                        {
                            UserSecurityCategory category = m_categories[j];
                            if (category.m_categoryID == updateCategory.m_categoryID)
                            {
                                if (updateCategory.m_codes != null && updateCategory.m_codes.Length > 0 && category.m_codes != null && category.m_codes.Length > 0)
                                {
                                    String[] deleteCodes     = updateCategory.m_codes.Split(',');
                                    int      deleteCodesSize = deleteCodes.Length;
                                    Dictionary <String, String> deleteCodesMap = new Dictionary <String, String>();
                                    for (int m = 0; m < deleteCodesSize; m++)
                                    {
                                        deleteCodesMap[deleteCodes[m]] = "";
                                    }
                                    String[] codes     = category.m_codes.Split(',');
                                    int      codesSize = codes.Length;
                                    String   newCodes  = "";
                                    for (int m = 0; m < codesSize; m++)
                                    {
                                        if (!deleteCodesMap.ContainsKey(codes[m]))
                                        {
                                            newCodes += codes[m] + ",";
                                        }
                                    }
                                    if (newCodes != null && newCodes.Length > 0)
                                    {
                                        if (newCodes.Substring(newCodes.Length - 1) == ",")
                                        {
                                            newCodes = newCodes.Substring(0, newCodes.Length - 1);
                                        }
                                    }
                                    updateCategory.m_codes = newCodes;
                                }
                                m_categories[j] = updateCategory;
                                break;
                            }
                        }
                    }
                    break;
                }
                }
            }
            base.OnReceive(message);
        }