Exemple #1
0
        public void LoadCDTLs(ICctsRepository repository)
        {
            foreach (ICdtLibrary cdtl in repository.GetCdtLibraries())
            {
                if (CDTLs.ContainsKey(cdtl.Name))
                {
                    CDTLs.Clear();
                    throw new CacheException("The wizard encountered two CDT libraries having identical names. Please make sure that all CDT libraries within the model have unique names before proceeding with the wizard.");
                }
                CDTLs.Add(cdtl.Name, new cCDTLibrary(cdtl.Name, cdtl.Id));
            }

            if (CDTLs.Count == 0)
            {
                throw new CacheException("The repository did not contain any CDT libraries. Please make sure at least one CDT library is present before proceeding with the wizard.");
            }
        }
Exemple #2
0
        public bool PathIsValid(int typeOfPath, string[] path)
        {
            switch (typeOfPath)
            {
            case CacheConstants.PATH_BCCs:
            {
                if ((path.Length > 0) && !(CCLs.ContainsKey(path[0])))
                {
                    return(false);
                }

                if ((path.Length > 1) && !(CCLs[path[0]].ACCs.ContainsKey(path[1])))
                {
                    return(false);
                }

                if ((path.Length > 2) && !(CCLs[path[0]].ACCs[path[1]].BCCs.ContainsKey(path[2])))
                {
                    return(false);
                }

                if ((path.Length > 3) && !(CCLs[path[0]].ACCs[path[1]].BCCs[path[2]].BBIEs.ContainsKey(path[3])))
                {
                    return(false);
                }

                if (path.Length > 4)
                {
                    int countMatchingBDTs = 0;

                    foreach (cBDT bdt in CCLs[path[0]].ACCs[path[1]].BCCs[path[2]].BBIEs[path[3]].BDTs)
                    {
                        if (bdt.Name.Equals(path[4]))
                        {
                            countMatchingBDTs++;
                        }
                    }

                    if (countMatchingBDTs < 1)
                    {
                        return(false);
                    }
                }
            }
            break;

            case CacheConstants.PATH_ASCCs:
            {
                if ((path.Length > 0) && !(CCLs.ContainsKey(path[0])))
                {
                    return(false);
                }

                if ((path.Length > 1) && !(CCLs[path[0]].ACCs.ContainsKey(path[1])))
                {
                    return(false);
                }

                if ((path.Length > 2) && !(CCLs[path[0]].ACCs[path[1]].ASCCs.ContainsKey(path[2])))
                {
                    return(false);
                }
            }
            break;

            case CacheConstants.PATH_BDTLs:
            {
                if ((path.Length > 0) && !(BDTLs.ContainsKey(path[0])))
                {
                    return(false);
                }
            }
            break;

            case CacheConstants.PATH_BIELs:
            {
                if ((path.Length > 0) && !(BIELs.ContainsKey(path[0])))
                {
                    return(false);
                }
            }
            break;

            case CacheConstants.PATH_CDTs:
            {
                if ((path.Length > 0) && !(CDTLs.ContainsKey(path[0])))
                {
                    return(false);
                }

                if ((path.Length > 1) && !(CDTLs[path[0]].CDTs.ContainsKey(path[1])))
                {
                    return(false);
                }

                if ((path.Length > 2) && !(CDTLs[path[0]].CDTs[path[1]].SUPs.ContainsKey(path[2])))
                {
                    return(false);
                }
            }
            break;
            }

            return(true);
        }