Seal.Forms.SmartCopyForm.addToDestinationList C# (CSharp) Méthode

addToDestinationList() public méthode

public addToDestinationList ( Report report ) : void
report Seal.Model.Report
Résultat void
        void addToDestinationList(Report report)
        {
            string destinationName = getDestinationName();
            string fileName = convertFileName(report.FilePath);
            if (destinationName.StartsWith(ReportsKeyword))
            {
                if (_destinationItems.FirstOrDefault(i => i.Name == fileName) == null)
                {
                    _destinationItems.Add(new PropertyItem() { Name = fileName, Object = report });
                }
            }
            else if (destinationName.StartsWith(ModelsKeyword))
            {
                foreach (var item in report.Models.Where(i => i != _source))
                {
                    string name = string.Format("[{0}] {1}", fileName, item.Name);
                    if (_destinationItems.FirstOrDefault(i => i.Name == name) == null)
                    {
                        _destinationItems.Add(new PropertyItem() { Name = name, Object = item });
                    }
                }
            }
            else if (destinationName.StartsWith(ElementsKeyword))
            {
                foreach (var model in report.Models)
                {
                    foreach (var item in model.Elements.Where(i => i != _source))
                    {
                        string name = string.Format("[{0}/{1}] {2} ", fileName, model.Name, item.DisplayNameEl);
                        if (_destinationItems.FirstOrDefault(i => i.Object == item) == null)
                        {
                            _destinationItems.Add(new PropertyItem() { Name = name, Object = item });
                        }
                    }
                }
            }
            else if (destinationName.StartsWith(RestrictionsKeyword))
            {
                bool isAggregate = !((ReportRestriction)_source).Model.Restrictions.Contains(_source);
                foreach (var model in report.Models)
                {
                    var restrictions = (isAggregate ? model.AggregateRestrictions : model.Restrictions);
                    foreach (var item in restrictions.Where(i => i != _source))
                    {
                        string name = string.Format("[{0}/{1}] {2} ", fileName, model.Name, item.DisplayNameEl);
                        if (_destinationItems.FirstOrDefault(i => i.Object == item) == null)
                        {
                            _destinationItems.Add(new PropertyItem() { Name = name, Object = item });
                        }
                    }
                }
            }
            else if (destinationName.StartsWith(ViewsKeyword))
            {
                //add a dummy view for report itself
                string reportName = string.Format("[{0}] ", fileName);
                if (addRadioButton.Checked && ((ReportView)_source).TemplateName == "Report")
                {
                    _destinationItems.Add(new PropertyItem() { Name = reportName, Object = new ReportView() { Report = report } });
                }
                foreach (var view in report.Views)
                {
                    addViewsToDestinations(view, reportName);
                }
            }
            else if (destinationName.StartsWith(TasksKeyword))
            {
                foreach (var item in report.Tasks.Where(i => i != _source))
                {
                    string name = string.Format("[{0}] {1} ", fileName, item.Name);
                    if (_destinationItems.FirstOrDefault(i => i.Object == item) == null)
                    {
                        _destinationItems.Add(new PropertyItem() { Name = name, Object = item });
                    }
                }
            }
            else if (destinationName.StartsWith(OutputsKeyword))
            {
                foreach (var item in report.Outputs.Where(i => i != _source))
                {
                    string name = string.Format("[{0}] {1} ", fileName, item.Name);
                    if (_destinationItems.FirstOrDefault(i => i.Object == item) == null)
                    {
                        _destinationItems.Add(new PropertyItem() { Name = name, Object = item });
                    }
                }
            }
            else if (destinationName.StartsWith(TasksFolderKeyword))
            {
                if (report != _report)
                {
                    string name = string.Format("[{0}] Tasks Script ", fileName);
                    _destinationItems.Add(new PropertyItem() { Name = name, Object = report });
                }
            }
        }