Example #1
0
            private static void CreateActivity(object source, ActivityType type, string path1, string path2)
            {
                try
                {
                    // find relevant folder
                    FoldersRow folder = Context.Model.FindFolder(source as FileSystemWatcher);
                    if (folder == null)
                    {
                        throw new Exception("Expected folder not found for activity: " + path1);
                    }

                    // test folder ignore filter
                    MatchReason reason = new MatchReason();
                    bool        passed = folder.PassesFilters(path1, reason);
                    if (type == Model.ActivityType.Renamed)
                    {
                        // when renaming be more tolerant and see also final names
                        passed = passed || folder.PassesFilters(path2, reason);
                    }

                    // create and register activity
                    Activity activity = new Activity(type, DateTime.Now, path1, path2, passed, reason.text);
                    folder.AddActivity(activity);

                    // signal worker to process new activity
                    Worker.Current.Signal();
                }
                catch (Exception e)
                {
                    // add error into log
                    ActivityLog.Current.AddEventLog(Properties.Resources.Error, e.Message);
                }
            }
Example #2
0
        private static FoldersRow CreateFolder(TDSettings.ConnectionRow connectionRow, string forlderName, int levelId, int parentId)
        {
            FoldersRow newFolder = _instance.Folders.NewFoldersRow();

            newFolder.Name     = forlderName;
            newFolder.UserID   = connectionRow.ConnectionId;
            newFolder.LevelID  = levelId;
            newFolder.ParentID = parentId;
            newFolder.ReadOnly = true;
            newFolder.Expanded = false;
            newFolder.Deleted  = false;

            _instance.Folders.AddFoldersRow(newFolder);

            _instance.AcceptChanges();

            return(newFolder);
        }
Example #3
0
        public FoldersRow AddFolder(string name, string path, string type)
        {
            FoldersRow folder = Folders.NewFoldersRow();

            folder.Name = name;
            folder.Path = path;
            folder.Type = type;
            lock (this)
            {
                Folders.AddFoldersRow(folder);
                Scanner scanner = Detector.Current.GetScanner(type);
                if (scanner != null)
                {
                    scanner.SetFolder(folder);
                    scanner.SetupFilters();
                }
            }
            return(folder);
        }
Example #4
0
 public IncludeFiltersRow AddIncludeFiltersRow(string Mask, string Info, FoldersRow parentFoldersRowByFK_Folders_IncludeFilters) {
     IncludeFiltersRow rowIncludeFiltersRow = ((IncludeFiltersRow)(this.NewRow()));
     object[] columnValuesArray = new object[] {
             Mask,
             Info,
             null};
     if ((parentFoldersRowByFK_Folders_IncludeFilters != null)) {
         columnValuesArray[2] = parentFoldersRowByFK_Folders_IncludeFilters[0];
     }
     rowIncludeFiltersRow.ItemArray = columnValuesArray;
     this.Rows.Add(rowIncludeFiltersRow);
     return rowIncludeFiltersRow;
 }
Example #5
0
 public void RemoveFoldersRow(FoldersRow row) {
     this.Rows.Remove(row);
 }
Example #6
0
 public void AddFoldersRow(FoldersRow row) {
     this.Rows.Add(row);
 }
Example #7
0
 public FoldersRowChangeEvent(FoldersRow row, global::System.Data.DataRowAction action) {
     this.eventRow = row;
     this.eventAction = action;
 }
Example #8
0
        public void AddUserSubtree(TreeView treeView, TDSettings.ConnectionRow connectionRow)
        {
            DataRow[] rows;
            TreeNode  nodeUser;

            //find the node in the tree corresponding to the user-connection
            TreeNode[] nodesUser = treeView.Nodes.Find("User " + connectionRow.ConnectionId.ToString(), true);

            if (nodesUser.GetLength(0) == 1)
            {
                nodeUser = nodesUser[0];

                //find all folders of the user and sort them on LevelID
                rows = _instance.Folders.Select("UserID = " + Int16.Parse(nodeUser.Name.Replace("User", String.Empty)).ToString(), "LevelID, Name, ID, ParentID");
                TreeNode node = new TreeNode();

                if (rows.GetLength(0) == 0)
                {
                    nodeUser.ForeColor = System.Drawing.Color.Gray;
                }

                //check if product list changed on the server
                CatalogueManager    catalogues = CatalogueManager.Instance();
                NameValueCollection products   = catalogues.GetCataloguesForConnection(connectionRow.ConnectionId).catalogueProduct;



                string     productName        = String.Empty;
                FoldersRow productsRootFolder = GetFolderByName(connectionRow, "Product Queries");

                if (productsRootFolder == null)
                {
                    productsRootFolder = CreateFolder(connectionRow, "Product Queries", 0, -1);
                }

                //check if local user xml still contains deleted products
                // if contains one, delete it
                for (int i = rows.GetLength(0) - 1; i >= 0; i--)
                {
                    FoldersRow folder = (FoldersRow)rows[i];
                    if ((folder.ParentID == productsRootFolder.ID) && (products[folder.Name + "," + folder.Name] == null))
                    {
                        folder.Delete();
                    }
                }

                //check if new product is missing from the local user structure
                for (int i = 0; i < products.Count; i++)
                {
                    productName = products.GetKey(i).Split(',')[1];
                    FoldersRow productFolder = GetFolderByName(connectionRow, productName);

                    if (productFolder == null)
                    {
                        CreateProductFolderDefaultQueries(connectionRow, productsRootFolder.ID, productName);
                    }
                }

                rows = _instance.Folders.Select("UserID = " + Int16.Parse(nodeUser.Name.Replace("User", String.Empty)).ToString(), "LevelID, Name, ID, ParentID");

                //add each folder(except deleted ones) as a TreeNode in the TreeView
                foreach (DataRow dr in rows)
                {
                    FoldersRow folder = (FoldersRow)dr;

                    //protect agains folders that do not have the Deleted tag (protect agains null value)
                    try
                    {
                        folder.Deleted = folder.Deleted;
                    }
                    catch {
                        folder.Deleted = false;
                    }


                    if (!folder.Deleted)
                    {
                        if (folder.ParentID == -1)
                        {
                            node = nodeUser.Nodes.Add("folder " + folder.ID.ToString(), folder.Name, "Folder");
                        }
                        else
                        {
                            FoldersRow parentFolder = _instance.Folders.FindByID(folder.ParentID);

                            if (parentFolder.Deleted)
                            {
                                folder.Deleted = true;
                            }

                            TreeNode[] nodes = nodeUser.Nodes.Find("folder " + folder.ParentID.ToString(), true);

                            if (nodes.GetLength(0) == 1)
                            {
                                node = nodes[0].Nodes.Add("folder " + folder.ID.ToString(), folder.Name, "Folder");
                            }
                        }

                        if (!folder.Deleted)
                        {
                            node.SelectedImageKey = "Folder";
                            node.Tag = new NodeDescription(NodeType.Folder, folder);

                            //add queries associated with the folder as tree nodes
                            DataRow[] queries = _instance.Queries.Select("FolderId = " + folder.ID);
                            foreach (DataRow query in queries)
                            {
                                QueriesRow queryRow = (QueriesRow)query;

                                AddQueryToTreeNode(node, queryRow);
                            }
                        }
                    }
                }
            }
        }
Example #9
0
 public void MarkFolderAsDeleted(FoldersRow folderRow)
 {
     folderRow.Deleted = true;
     _instance.Folders.AcceptChanges();
 }
Example #10
0
        private static string CreateProductFolderDefaultQueries(TDSettings.ConnectionRow connectionRow, int parentId, string productName)
        {
            FoldersRow productFolder = GetFolderByName(connectionRow, productName);

            QueriesRow query;

            if (productFolder == null)
            {
                productFolder = CreateFolder(connectionRow, productName, 1, parentId);
            }

            if (productFolder != null)
            {
                //*********************************************************************
                query             = _instance.Queries.NewQueriesRow();
                query.Name        = "Opened bugs";
                query.Description = "Opened bugs for the product [" + productName + "]";
                query.FolderID    = productFolder.ID;
                query.TypeID      = Convert.ToByte(_queryTypes.Predefined);
                _instance.Queries.AddQueriesRow(query);
                _instance.AddParameterValuesForQuery(query, GetParamsForOpenedBugsQuery(productName, false, String.Empty));

                //*********************************************************************
                query             = _instance.Queries.NewQueriesRow();
                query.Name        = "Closed bugs";
                query.Description = "Closed bugs for the product [" + productName + "]";
                query.FolderID    = productFolder.ID;
                query.TypeID      = Convert.ToByte(_queryTypes.Predefined);
                _instance.Queries.AddQueriesRow(query);
                _instance.AddParameterValuesForQuery(query, GetParamsForClosedBugsQuery(productName, false, String.Empty));

                //*********************************************************************
                query             = _instance.Queries.NewQueriesRow();
                query.Name        = "Fixed bugs";
                query.Description = "Fixed bugs for the product [" + productName + "]";
                query.FolderID    = productFolder.ID;
                query.TypeID      = Convert.ToByte(_queryTypes.Predefined);
                _instance.Queries.AddQueriesRow(query);
                _instance.AddParameterValuesForQuery(query, GetParamsForFixedBugsQuery(productName, false, String.Empty));

                //*********************************************************************
                query             = _instance.Queries.NewQueriesRow();
                query.Name        = "All bugs";
                query.Description = "All bugs for the product [" + productName + "]";
                query.FolderID    = productFolder.ID;
                query.TypeID      = Convert.ToByte(_queryTypes.Predefined);
                _instance.Queries.AddQueriesRow(query);
                _instance.AddParameterValuesForQuery(query, GetParamsForAllBugsQuery(productName, true, String.Empty));


                //*********************************************************************
                query             = _instance.Queries.NewQueriesRow();
                query.Name        = "My bugs";
                query.Description = "All my bugs for the product [" + productName + "]";
                query.FolderID    = productFolder.ID;
                query.TypeID      = Convert.ToByte(_queryTypes.Predefined);
                _instance.Queries.AddQueriesRow(query);
                _instance.AddParameterValuesForQuery(query, GetParamsForAllBugsQuery(productName, true, connectionRow.UserName));
            }
            return(productName);
        }
Example #11
0
 public void MarkFolderAsDeleted(FoldersRow folderRow)
 {
     folderRow.Deleted = true;
     _instance.Folders.AcceptChanges();
 }
 public FoldersRow AddFoldersRow(string Name, FoldersRow parentFoldersRowByFolders_Folders, int LevelID, int UserID, bool Expanded, bool ReadOnly, bool Deleted) {
     FoldersRow rowFoldersRow = ((FoldersRow)(this.NewRow()));
     object[] columnValuesArray = new object[] {
             null,
             Name,
             null,
             LevelID,
             UserID,
             Expanded,
             ReadOnly,
             Deleted};
     if ((parentFoldersRowByFolders_Folders != null)) {
         columnValuesArray[2] = parentFoldersRowByFolders_Folders[0];
     }
     rowFoldersRow.ItemArray = columnValuesArray;
     this.Rows.Add(rowFoldersRow);
     return rowFoldersRow;
 }