/// <summary> /// Delete specified reference relation. /// </summary> /// <param name="userContext"> /// Information about the user that makes this method call. /// </param> /// <param name="referenceRelation">Reference relation to be deleted.</param> public virtual void DeleteReferenceRelation(IUserContext userContext, IReferenceRelation referenceRelation) { CheckTransaction(userContext); WebServiceProxy.ReferenceService.DeleteReferenceRelation(GetClientInformation(userContext), referenceRelation.Id); }
/// <summary> /// Create a reference relation. /// </summary> /// <param name="userContext"> /// Information about the user that makes this method call. /// </param> /// <param name="referenceRelation"> /// Information about the new reference relation. /// This object is updated with changes after the creation. /// </param> public virtual void CreateReferenceRelation(IUserContext userContext, IReferenceRelation referenceRelation) { WebReferenceRelation webReferenceRelation; CheckTransaction(userContext); webReferenceRelation = WebServiceProxy.ReferenceService.CreateReferenceRelation(GetClientInformation(userContext), GetReferenceRelation(referenceRelation)); UpdateReferenceRelation(userContext, referenceRelation, webReferenceRelation); }
/// <summary> /// Get default reference from revision /// </summary> /// <param name="userContext"></param> /// <param name="newObject"></param> /// <param name="taxonRevision"></param> /// <param name="referencesToAdd"> </param> /// <returns></returns> public static ReferenceRelationList GetDefaultReferences(IUserContext userContext, object newObject, ITaxonRevision taxonRevision, ReferenceRelationList referencesToAdd) { // Check if list is null the create a new one var referencesToAddTemp = new ReferenceRelationList(); if (referencesToAdd.IsNotNull()) { referencesToAddTemp = referencesToAdd; } if (taxonRevision.GetReferences(userContext).IsNotEmpty()) { // Set all revision references of type Source as references foreach (var referenceRelation in taxonRevision.GetReferences(userContext)) { if (referenceRelation.Type.Id == (int)ReferenceRelationTypeId.Source) { IReference newReference = new ArtDatabanken.Data.Reference(); newReference.Id = referenceRelation.ReferenceId; IReferenceRelation newReferenceRelation = GetReferenceRelation(newObject, newReference); if (newReferenceRelation.IsNotNull()) { referencesToAddTemp.Add(newReferenceRelation); } } } // Get first reference of type Used in and set as Source reference. if (referencesToAddTemp.Count == 0) { IReference newReference = new ArtDatabanken.Data.Reference(); newReference.Id = taxonRevision.GetReferences(userContext).First().ReferenceId; IReferenceRelation newReferenceRelation = GetReferenceRelation(newObject, newReference); if (newReferenceRelation.IsNotNull()) { referencesToAddTemp.Add(newReferenceRelation); } } } // If no references found set dyntaxa as reference else { IReference newReference = new ArtDatabanken.Data.Reference(); newReference.Id = DyntaxaReference; IReferenceRelation newReferenceRelation = GetReferenceRelation(newObject, newReference); if (newReferenceRelation.IsNotNull()) { referencesToAddTemp.Add(newReferenceRelation); } } return(referencesToAddTemp); }
/// <summary> /// Copy data from WebReferenceRelation to IReferenceRelation. /// </summary> /// <param name="userContext">User context.</param> /// <param name="referenceRelation">IReferenceRelation object.</param> /// <param name="webReferenceRelation">WebReferenceRelation object.</param> private void UpdateReferenceRelation(IUserContext userContext, IReferenceRelation referenceRelation, WebReferenceRelation webReferenceRelation) { referenceRelation.DataContext = GetDataContext(userContext); referenceRelation.Id = webReferenceRelation.Id; referenceRelation.RelatedObjectGuid = webReferenceRelation.RelatedObjectGuid; referenceRelation.Reference = null; referenceRelation.ReferenceId = webReferenceRelation.ReferenceId; referenceRelation.Type = CoreData.ReferenceManager.GetReferenceRelationType(userContext, webReferenceRelation.TypeId); }
private IReferenceRelation GetReferenceRelation(Boolean refresh = false) { ReferenceRelationList referenceRelations; ITaxon taxon; if (_referenceRelation.IsNull() || refresh) { taxon = CoreData.TaxonManager.GetTaxon(GetUserContext(), TaxonId.Bear); referenceRelations = CoreData.ReferenceManager.GetReferenceRelations(GetUserContext(), taxon.Guid); _referenceRelation = referenceRelations[0]; } return(_referenceRelation); }
/// <summary> /// Creates DyntaxaSpeciesFact. /// </summary> /// <param name="id"></param> /// <param name="information"></param> /// <param name="label"></param> /// <param name="isLeaf"></param> /// <param name="isPeriodic"></param> /// <param name="sortOrder"></param> /// <param name="isPublic"></param> /// <param name="isTaxonomic"></param> /// <param name="hostLabel"></param> /// <param name="quality"></param> /// <param name="fields"></param> /// <param name="factorOrigin"></param> /// <param name="factorUpdateMode"></param> /// <param name="identifier"></param> public DyntaxaSpeciesFact( string id, string information, string label, bool isLeaf, bool isPeriodic, int sortOrder, bool isPublic, bool isTaxonomic, string hostLabel, int hostId, DyntaxaFactorQuality quality, int referenceId, IList <DyntaxaFactorField> fields, DyntaxaFactorOrigin factorOrigin, DyntaxaFactorUpdateMode factorUpdateMode, string identifier, DateTime updateDate, DyntaxaIndividualCategory individualCategory, int factorId, string referenceName, IReferenceRelation dyntaxaFactorReference = null, IList <KeyValuePair <int, string> > factorEnumValueList = null, IList <KeyValuePair <int, string> > factorEnumValueList2 = null, string updateUserFullName = "") : base(id, label, isLeaf, isPeriodic, sortOrder, isPublic, isTaxonomic, factorOrigin, factorUpdateMode, factorId) { this.information = information; this.hostLabel = hostLabel; this.hostId = hostId; this.quality = quality; this.referenceId = referenceId; this.fields = fields; this.identifier = identifier; this.dyntaxaFactorReference = dyntaxaFactorReference; this.factorEnumValueList = factorEnumValueList; this.factorEnumValueList2 = factorEnumValueList2; this.updateUserFullName = updateUserFullName; this.updateDate = updateDate; if (individualCategory.IsNotNull()) { this.IndividualCatgory = individualCategory; } this.factorId = factorId; this.referenceName = referenceName; }
/// <summary> /// Convert an IReferenceRelation instance /// to a WebReferenceRelation instance. /// </summary> /// <param name="referenceRelation">An IReferenceRelation instance.</param> /// <returns>A WebReferenceRelation instance.</returns> private WebReferenceRelation GetReferenceRelation(IReferenceRelation referenceRelation) { WebReferenceRelation webReferenceRelation; webReferenceRelation = null; if (referenceRelation.IsNotNull()) { webReferenceRelation = new WebReferenceRelation(); webReferenceRelation.Id = referenceRelation.Id; webReferenceRelation.ReferenceId = referenceRelation.ReferenceId; webReferenceRelation.RelatedObjectGuid = referenceRelation.RelatedObjectGuid; webReferenceRelation.TypeId = referenceRelation.Type.Id; } return(webReferenceRelation); }
/// <summary> /// Get the reference that belongs to this reference relations. /// </summary> /// <param name="referenceRelation">The reference relation.</param> /// <returns>The reference that belongs to this reference relations.</returns> public static IReference GetReference(this IReferenceRelation referenceRelation, IUserContext userContext) { IReference reference; if (referenceRelation.Reference.IsNull()) { reference = CoreData.ReferenceManager.GetReference(userContext, referenceRelation.ReferenceId); referenceRelation.Reference = reference; //referenceRelation.Reference = new ArtDatabanken.Data.Reference(); //referenceRelation.Reference.Id = reference.Id; //referenceRelation.Reference.Name = reference.Name; //referenceRelation.Reference.Title = reference.Title; //referenceRelation.Reference.Year = reference.Year; } return(referenceRelation.Reference); }
/// <summary> /// Delete a reference relation. /// </summary> /// <param name="userContext"> /// Information about the user that makes this method call. /// </param> /// <param name="referenceRelation">Reference relation to be deleted.</param> public virtual void DeleteReferenceRelation(IUserContext userContext, IReferenceRelation referenceRelation) { DataSource.DeleteReferenceRelation(userContext, referenceRelation); }
public void DeleteReferenceRelation(IUserContext userContext, IReferenceRelation referenceRelation) { throw new NotImplementedException(); }