/// <summary> /// Возвращает версию нейросети по идентификатору версии в рамках нейросети. /// </summary> /// <param name="versionInternalID">Идентификатор версии в рамках нейсросети.</param> /// <param name="throwNotFoundException">Генерирует исключение в случае отсутствия версии с заданным идентификатором в рамках нейросети.</param> public SkyNetworkVersion GetVersion(int versionInternalID, bool throwNotFoundException) { if (versionInternalID == 0) { throw new ArgumentNullException("versionInternalID"); } SkyNetworkVersion version = null; if (!this.VersionsByInternalID.ContainsKey(versionInternalID)) { //получаем версию по идентификатору в рамках нейросети. version = this.Context.ObjectAdapters.NetworkVersions.GetObject(dbSet => dbSet.FirstOrDefault(x => x.NetworkID == this.ID && x.InternalID == versionInternalID)); //добавляем версию в словарь. if (version != null) { this.VersionsByInternalID.Add(versionInternalID, version); } } else { version = this.VersionsByInternalID[versionInternalID]; } //ругаемся при отсутствии версии. if (throwNotFoundException && version == null) { throw new Exception(string.Format("Network version with InternalID={0} for network [{1}] is not exists.", versionInternalID, this.Name)); } //возвращаем версию. return(version); }
/// <summary> /// Создаёт новый экземпляр версии нейросети, без сохранения в базу данных. /// </summary> public SkyNetworkVersion CreateVersion() { SkyNetworkVersion networkVersion = this.Context.ObjectAdapters.NetworkVersions.CreateObject(); networkVersion.NetworkID = this.ID; return(networkVersion); }
/// <summary> /// Добавляет созданную версию в словарь версий по внутренним идентификаторам. /// </summary> /// <param name="createdVersion">Созданная версия нейросети.</param> internal void AddCreatedVersion(SkyNetworkVersion createdVersion) { if (createdVersion == null) { throw new ArgumentNullException("createdVersion"); } //проверяем, что версия создана. createdVersion.CheckExists(); //проверяем наличие внутреннего идентификатора. createdVersion.CheckInternalID(); //добавляем версию в словарь. if (!this.VersionsByInternalID.ContainsKey(createdVersion.InternalID)) { this.VersionsByInternalID.Add(createdVersion.InternalID, createdVersion); } }