public void LoadCCLs(ICctsRepository repository) { foreach (ICcLibrary ccl in repository.GetCcLibraries()) { if (CCLs.ContainsKey(ccl.Name)) { EmptyCache(); throw new CacheException("The wizard encountered two CC libraries having identical names. Please make sure that all CC libraries within the model have unique names before proceeding with the wizard."); } CCLs.Add(ccl.Name, new cCCLibrary(ccl.Name, ccl.Id)); } if (CCLs.Count == 0) { throw new CacheException("The repository did not contain any CC libraries. Please make sure at least one CC 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); }