コード例 #1
0
        private void CreateItems()
        {
            var item = TreeView.SelectedItem as ItemTreeViewItem;

            if (item == null)
            {
                return;
            }

            var databaseName = item.Item.ItemUri.DatabaseName;

            var logWindow = new ProjectLogWindow
            {
                Maximum = createItems.Count
            };

            logWindow.AutoStart = delegate
            {
                var iterator = new ElementIterator <CreateItem>(createItems);

                iterator.Process = delegate(CreateItem element)
                {
                    if (!element.IsChecked)
                    {
                        logWindow.Increment();
                        iterator.Next();
                        return;
                    }

                    if (element.ProjectItem == null)
                    {
                        element.ProjectItem = Add(element);
                    }

                    var projectItem = element.ProjectItem;

                    ProcessedEventHandler callback = delegate(object sender, ProcessedEventArgs args)
                    {
                        WriteResult(logWindow, projectItem, args);
                        logWindow.Increment();
                        iterator.Next();
                    };

                    element.Handler.Handle(databaseName, projectItem, element.ItemPath, callback);
                };

                iterator.Finish = delegate
                {
                    logWindow.Write(Rocks.Resources.Finished, string.Empty, string.Empty);
                    logWindow.Finish();
                };

                iterator.Start();
            };

            AppHost.Shell.ShowDialog(logWindow);

            SaveProjects();
        }
コード例 #2
0
        public Result Execute(
            ExternalCommandData commandData,
            ref string message,
            ElementSet elements)
        {
            UIApplication app = commandData.Application;
            Document      doc = app.ActiveUIDocument.Document;

#if _2010
            List <Element> set = new List <Element>();

            ParameterFilter f
                = app.Create.Filter.NewParameterFilter(
                      _bipCode,
                      CriteriaFilterType.NotEqual,
                      string.Empty);

            ElementIterator it = doc.get_Elements(f);
#endif

            using (StreamWriter sw
                       = File.CreateText("C:/omni.txt"))
            {
                FilteredElementCollector collector = new FilteredElementCollector(doc);
                collector.WhereElementIsNotElementType();

                // in 2011, we should probably add some more quick filters here ...
                // and make use of something like:

                //ParameterValueProvider provider = new ParameterValueProvider( new ElementId( Bip.SystemType ) );
                //FilterStringRuleEvaluator evaluator = new FilterStringEquals();
                //string ruleString = ParameterValue.SupplyAir;
                //FilterRule rule = new FilterStringRule( provider, evaluator, ruleString, false );
                //ElementParameterFilter filter = new ElementParameterFilter( rule );
                //collector.WherePasses( filter );

                foreach (Element e in collector)
                {
                    Parameter p = e.get_Parameter(_bipCode);
                    if (null != p)
                    {
                        sw.WriteLine(string.Format(
                                         "{0} code {1} desc {2}",
                                         Util.ElementDescription(e),
                                         p.AsString(),
                                         e.get_Parameter(_bipDesc).AsString()));
                    }
                }
                sw.Close();
            }
            return(Result.Failed);
        }
コード例 #3
0
ファイル: Update.cs プロジェクト: sargeles/Sitecore.Rocks
        public override void Execute(object parameter)
        {
            var selectedItems = GetSelectedItems();

            if (selectedItems.Count == 0)
            {
                return;
            }

            GetUpdateItems(selectedItems);

            var logWindow = new ProjectLogWindow
            {
                Maximum = updateItems.Count
            };

            logWindow.AutoStart = delegate
            {
                var iterator = new ElementIterator <UpdateItem>(updateItems);

                iterator.Process = delegate(UpdateItem element)
                {
                    var projectItem = element.ProjectItem;

                    projectItem.Update(delegate(object sender, ProcessedEventArgs args)
                    {
                        if (!args.Ignore)
                        {
                            logWindow.Write(projectItem.Path, args.Text, args.Comment);
                        }

                        logWindow.Increment();
                        iterator.Next();
                    });
                };

                iterator.Finish = delegate
                {
                    logWindow.Write(Resources.Finished, string.Empty, string.Empty);
                    logWindow.Finish();
                };

                iterator.Start();
            };

            AppHost.Shell.ShowDialog(logWindow);

            SaveProjects();
        }
コード例 #4
0
        private void Add()
        {
            var logWindow = new ProjectLogWindow
            {
                Maximum = addItems.Count
            };

            logWindow.AutoStart = delegate
            {
                var iterator = new ElementIterator <AddItem>(addItems);

                iterator.Process = delegate(AddItem element)
                {
                    logWindow.Increment();
                    if (!element.IsChecked)
                    {
                        iterator.Next();
                        return;
                    }

                    var project = element.Project;

                    var fileName    = project.GetProjectItemFileName(element.Item);
                    var projectItem = ProjectFileItem.Load(project, fileName);
                    project.Add(projectItem);

                    logWindow.Write(projectItem.Path, Rocks.Resources.AddWindow_Add_added, string.Empty);

                    logWindow.Increment();
                    iterator.Next();
                };

                iterator.Finish = delegate
                {
                    logWindow.Write(Rocks.Resources.Finished, string.Empty, string.Empty);
                    logWindow.Finish();
                };

                iterator.Start();
            };

            AppHost.Shell.ShowDialog(logWindow);

            SaveProjects();
        }
コード例 #5
0
        private void Commit()
        {
            var logWindow = new ProjectLogWindow
            {
                Maximum = commitItems.Count
            };

            logWindow.AutoStart = delegate
            {
                var iterator = new ElementIterator <CommitItem>(commitItems);

                iterator.Process = delegate(CommitItem element)
                {
                    if (!element.IsChecked)
                    {
                        logWindow.Increment();
                        iterator.Next();
                        return;
                    }

                    var projectItem = element.ProjectItem;

                    projectItem.Commit(delegate(object sender, ProcessedEventArgs args)
                    {
                        WriteResult(logWindow, projectItem, args);
                        logWindow.Increment();
                        iterator.Next();
                    });
                };

                iterator.Finish = delegate
                {
                    logWindow.Write(Rocks.Resources.Finished, string.Empty, string.Empty);
                    logWindow.Finish();
                };

                iterator.Start();
            };

            AppHost.Shell.ShowDialog(logWindow);

            SaveProjects();
        }
コード例 #6
0
ファイル: CheckOut.cs プロジェクト: sargeles/Sitecore.Rocks
        private void Download([NotNull] List <ProjectItem> projectItems)
        {
            Debug.ArgumentNotNull(projectItems, nameof(projectItems));

            var logWindow = new ProjectLogWindow
            {
                Maximum = projectItems.Count
            };

            logWindow.AutoStart = delegate
            {
                var iterator = new ElementIterator <ProjectItem>(projectItems);

                iterator.Process = delegate(ProjectItem element)
                {
                    element.Revert(delegate(object sender, ProcessedEventArgs args)
                    {
                        if (!args.Ignore)
                        {
                            if (args.Text == @"reverted")
                            {
                                args.Text = @"checked out";
                            }

                            logWindow.Write(element.Path, args.Text, args.Comment);
                        }

                        logWindow.Increment();
                        iterator.Next();
                    });
                };

                iterator.Finish = delegate
                {
                    logWindow.Write(@"Finished", string.Empty, string.Empty);
                    logWindow.Finish();
                };

                iterator.Start();
            };

            AppHost.Shell.ShowDialog(logWindow);
        }
コード例 #7
0
        GetFilteredNestedFamilyDefinitions(
            string familyFileNameFilter,
            Document familyDocument,
            bool caseSensitiveFiltering)
        {
            // Following good SOA practices, verify the
            // incoming data can be worked with.

            ValidateFamilyDocument(familyDocument); // Throws an exception if not a family doc

            // The filter can be null, the filter matching function checks for that.

#if _2010
            List <Family> oResult = new List <Family>();

            ElementIterator it = familyDocument.Elements;

            while (it.MoveNext())
            {
                Element oElement = it.Current as Element;

                if ((oElement is Family) &&
                    FilterMatches(oElement.Name,
                                  familyFileNameFilter, caseSensitiveFiltering))
                {
                    oResult.Add(oElement as Family);
                }
            }
#endif // _2010

            FilteredElementCollector collector
                = new FilteredElementCollector(familyDocument);

            collector.OfClass(typeof(Family));

            IEnumerable <Element> familiesMatching =
                from f in collector
                where FilterMatches(f.Name, familyFileNameFilter, caseSensitiveFiltering)
                select f;

            return(familiesMatching.Cast <Family>());
        }
コード例 #8
0
        private void Exclude()
        {
            var logWindow = new ProjectLogWindow
            {
                Maximum = excludeItems.Count
            };

            logWindow.AutoStart = delegate
            {
                var iterator = new ElementIterator <ExcludeItem>(excludeItems);

                iterator.Process = delegate(ExcludeItem element)
                {
                    if (element.IsChecked)
                    {
                        var projectItem = element.ProjectItem;
                        projectItem.Project.Remove(projectItem);

                        logWindow.Write(projectItem.Path, Rocks.Resources.ExcludeWindow_Exclude_excluded, string.Empty);
                    }

                    logWindow.Increment();
                    iterator.Next();
                };

                iterator.Finish = delegate
                {
                    logWindow.Write(Rocks.Resources.Finished, string.Empty, string.Empty);
                    logWindow.Finish();
                };

                iterator.Start();
            };

            AppHost.Shell.ShowDialog(logWindow);

            SaveProjects();
        }