/// <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);
        }
Example #3
0
        /// <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);
 }
Example #5
0
        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);
        }
Example #8
0
        /// <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);
 }
Example #10
0
 public void DeleteReferenceRelation(IUserContext userContext, IReferenceRelation referenceRelation)
 {
     throw new NotImplementedException();
 }