/// <summary> /// Persists the component /// </summary> public SVC.Core.DataTypes.VersionedDomainIdentifier Persist(System.Data.IDbConnection conn, System.Data.IDbTransaction tx, System.ComponentModel.IComponent data, bool isUpdate) { RepositoryDevice device = data as RepositoryDevice; using (IDbCommand cmd = DbUtil.CreateCommandStoredProc(conn, tx)) { if (device.AlternateIdentifier == null || String.IsNullOrEmpty(device.AlternateIdentifier.Domain)) { throw new ConstraintException(ApplicationContext.LocaleService.GetString("DTPE009")); } // create parmaeters cmd.CommandText = "crt_dev"; cmd.Parameters.Add(DbUtil.CreateParameterIn(cmd, "dev_root_in", DbType.String, device.AlternateIdentifier.Domain)); cmd.Parameters.Add(DbUtil.CreateParameterIn(cmd, "dev_ext_in", DbType.String, String.IsNullOrEmpty(device.AlternateIdentifier.Identifier) ? DBNull.Value : (object)device.AlternateIdentifier.Identifier)); cmd.Parameters.Add(DbUtil.CreateParameterIn(cmd, "dev_name_in", DbType.String, device.Name)); cmd.Parameters.Add(DbUtil.CreateParameterIn(cmd, "dev_jur_in", DbType.String, device.Jurisdiction)); // Versioned domain identifier return(new SVC.Core.DataTypes.VersionedDomainIdentifier() { Identifier = Convert.ToString(cmd.ExecuteScalar()), Domain = ApplicationContext.ConfigurationService.OidRegistrar.GetOid(ClientRegistryOids.DEVICE_CRID).Oid }); } }
/// <summary> /// Create Repository Device /// </summary> private RepositoryDevice CreateRepositoryDevice(MARC.Everest.RMIM.CA.R020403.COCT_MT090310CA.AssignedDevice assignedDevice, List <IResultDetail> dtls) { RepositoryDevice retVal = new RepositoryDevice(); // Identifier for the device if (assignedDevice.Id == null || assignedDevice.Id.IsNull) { dtls.Add(new MandatoryElementMissingResultDetail(ResultDetailType.Error, m_localeService.GetString("MSGE00D"), null)); } else { retVal.AlternateIdentifier = CreateDomainIdentifier(assignedDevice.Id, dtls); } // Repository jurisdiction if (assignedDevice.RepresentedRepositoryJurisdiction == null || assignedDevice.RepresentedRepositoryJurisdiction.NullFlavor != null || assignedDevice.RepresentedRepositoryJurisdiction.Name == null || assignedDevice.RepresentedRepositoryJurisdiction.Name.IsNull) { dtls.Add(new MandatoryElementMissingResultDetail(ResultDetailType.Error, m_localeService.GetString("MSGE00E"), null)); } else { retVal.Jurisdiction = assignedDevice.RepresentedRepositoryJurisdiction.Name; } // Assigned repository if (assignedDevice.AssignedRepository == null || assignedDevice.AssignedRepository.NullFlavor != null || assignedDevice.AssignedRepository.Name == null || assignedDevice.AssignedRepository.Name.IsNull) { dtls.Add(new MandatoryElementMissingResultDetail(ResultDetailType.Error, m_localeService.GetString("MSGE00F"), null)); } else { retVal.Name = assignedDevice.AssignedRepository.Name; } return(retVal); }
/// <summary> /// Create custodian device /// </summary> private MARC.Everest.RMIM.CA.R020403.REPC_MT000007CA.Custodian CreateCustodialDevice(RepositoryDevice custodialDevice, List <IResultDetail> details) { return(new MARC.Everest.RMIM.CA.R020403.REPC_MT000007CA.Custodian( new MARC.Everest.RMIM.CA.R020403.COCT_MT090310CA.AssignedDevice( CreateII(custodialDevice.AlternateIdentifier, details), new MARC.Everest.RMIM.CA.R020403.COCT_MT090310CA.Repository( custodialDevice.Name ), new MARC.Everest.RMIM.CA.R020403.COCT_MT090310CA.RepositoryJurisdiction( custodialDevice.Jurisdiction ) ) )); }