Dev2.Utils.WorkflowDesignerUtils.MissingWorkflowItems C# (CSharp) Method

MissingWorkflowItems() public method

Finds the missing workflow data regions.
public MissingWorkflowItems ( IList partsToVerify, bool excludeUnusedItems = false ) : List
partsToVerify IList The parts to verify.
excludeUnusedItems bool
return List
        public List<IDataListVerifyPart> MissingWorkflowItems(IList<IDataListVerifyPart> partsToVerify, bool excludeUnusedItems = false)
        {
            var missingWorkflowParts = new List<IDataListVerifyPart>();

            if(DataListSingleton.ActiveDataList != null && DataListSingleton.ActiveDataList.DataList != null)
            {
                foreach(var dataListItem in DataListSingleton.ActiveDataList.DataList)
                {
                    if(String.IsNullOrEmpty(dataListItem.Name))
                    {
                        continue;
                    }
                    if((dataListItem.Children.Count > 0))
                    {
                        if(partsToVerify.Count(part => part.Recordset == dataListItem.Name) == 0)
                        {
                            //19.09.2012: massimo.guerrera - Added in the description to creating the part
                            if(dataListItem.IsEditable)
                            {
                                // skip it if unused and exclude is on ;)
                                if(excludeUnusedItems && !dataListItem.IsUsed)
                                {
                                    continue;
                                }
                                missingWorkflowParts.Add(
                                    IntellisenseFactory.CreateDataListValidationRecordsetPart(dataListItem.Name,
                                                                                              String.Empty,
                                                                                              dataListItem.Description));
                                // ReSharper disable once LoopCanBeConvertedToQuery
                                foreach(var child in dataListItem.Children)
                                {
                                    if(!(String.IsNullOrEmpty(child.Name)))
                                    {
                                        //19.09.2012: massimo.guerrera - Added in the description to creating the part
                                        if(dataListItem.IsEditable)
                                        {
                                            missingWorkflowParts.Add(
                                                IntellisenseFactory.CreateDataListValidationRecordsetPart(
                                                    dataListItem.Name, child.Name, child.Description));
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            // ReSharper disable once LoopCanBeConvertedToQuery
                            foreach(var child in dataListItem.Children)
                                if(partsToVerify.Count(part => part.Field == child.Name && part.Recordset == child.Parent.Name) == 0)
                                {
                                    //19.09.2012: massimo.guerrera - Added in the description to creating the part
                                    if(child.IsEditable)
                                    {
                                        // skip it if unused and exclude is on ;)
                                        if(excludeUnusedItems && !dataListItem.IsUsed)
                                        {
                                            continue;
                                        }

                                        missingWorkflowParts.Add(
                                            IntellisenseFactory.CreateDataListValidationRecordsetPart(
                                                dataListItem.Name, child.Name, child.Description));
                                    }
                                }
                        }
                    }
                    else if(partsToVerify.Count(part => part.Field == dataListItem.Name) == 0)
                    {

                        if(dataListItem.IsEditable)
                        {
                            // skip it if unused and exclude is on ;)
                            if(excludeUnusedItems && !dataListItem.IsUsed)
                            {
                                continue;
                            }

                            //19.09.2012: massimo.guerrera - Added in the description to creating the part
                            missingWorkflowParts.Add(
                                IntellisenseFactory.CreateDataListValidationScalarPart(dataListItem.Name,
                                                                                       dataListItem.Description));
                        }

                    }
                }
            }

            return missingWorkflowParts;
        }