コード例 #1
0
ファイル: Cache.cs プロジェクト: hahaking119/vienna-add-in
        public void LoadBDTLsAndTheirBDTs(ICctsRepository repository)
        {
            foreach (IBdtLibrary bdtl in repository.GetBdtLibraries())
            {
                if (BDTLs.ContainsKey(bdtl.Name))
                {
                    BDTLs.Clear();
                    throw new CacheException("The wizard encountered two BDT libraries having identical names. Please make sure that all BDT libraries within the model have unique names before proceeding with the wizard.");
                }

                BDTLs.Add(bdtl.Name, new cBDTLibrary(bdtl.Name, bdtl.Id));

                foreach (IBdt bdt in bdtl.Bdts)
                {
                    if (BDTLs[bdtl.Name].BDTs.ContainsKey(bdt.Name))
                    {
                        BDTLs[bdtl.Name].BDTs.Clear();
                        throw new CacheException("The wizard encountered two BDTs within one BDT library having identical names. Please make sure that all BDTs within each BDT library have unique names before proceeding with the wizard.");
                    }

                    BDTLs[bdtl.Name].BDTs.Add(bdt.Name, new cBDT(bdt.Name, bdt.Id, bdt.BasedOn.Id, CheckState.Unchecked));
                }
            }

            if (BDTLs.Count == 0)
            {
                throw new CacheException("The repository did not contain any BDT libraries. Please make sure at least one BDT library is present before proceeding with the wizard.");
            }
        }
コード例 #2
0
ファイル: Cache.cs プロジェクト: hahaking119/vienna-add-in
        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);
        }