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."); } }
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); }