コード例 #1
0
        /// <summary>
        /// Gets all recommended picutres from picture relation type.
        /// </summary>
        /// <param name="userContext">
        /// Information about the user that makes this method call.
        /// </param>
        /// <param name="pictureRelationType">Picture relation of this type.</param>
        /// <returns>Picture guids related to specified object.</returns>
        public PictureGuidList GetAllRecommendedPictureIds(IUserContext userContext,
                                                           IPictureRelationType pictureRelationType)
        {
            PictureGuidList pictureGuidList;

            pictureGuidList = DataSource.GetAllRecommendedPictureIds(userContext, pictureRelationType);
            return(pictureGuidList);
        }
コード例 #2
0
 /// <summary>
 /// Get picture relations related to specified taxon.
 /// </summary>
 /// <param name="userContext">
 /// Information about the user that makes this method call.
 /// </param>
 /// <param name="taxon">Taxon that may be related to pictures.</param>
 /// <param name="pictureRelationType">Type of picture relations that are requested.</param>
 /// <returns>Picture relations related to specified taxon.</returns>
 public virtual PictureRelationList GetPictureRelations(IUserContext userContext,
                                                        ITaxon taxon,
                                                        IPictureRelationType pictureRelationType)
 {
     return(DataSource.GetPictureRelations(userContext,
                                           taxon.Id.ToString(),
                                           pictureRelationType));
 }
コード例 #3
0
 /// <summary>
 /// Get metadata about all recommended pictures selected by picture relation type id.
 /// </summary>
 /// <param name="userContext">
 /// Information about the user that makes this method call.
 /// </param>
 /// <param name="pictureRelationType">Type of picture to get metadata for. </param>
 /// <param name="pictureMetaDataDescriptionsIds">Ids of the metadadescriptions to be retrieved.</param>
 /// <returns>Picture metadata descriptions for specified ids and pictureId.</returns>
 public PictureMetaDataInformationList GetAllRecommendedPicturesMetaData(IUserContext userContext,
                                                                         IPictureRelationType pictureRelationType,
                                                                         List <Int32> pictureMetaDataDescriptionsIds)
 {
     return(DataSource.GetAllRecommendedPicturesMetaData(userContext,
                                                         pictureRelationType,
                                                         pictureMetaDataDescriptionsIds));
 }
コード例 #4
0
        /// <summary>
        /// Get recommended picture ids related to corresponding object guids.
        /// </summary>
        /// <param name="userContext">
        /// Information about the user that makes this method call.
        /// </param>
        /// <param name="objectGuids">Guids for objects that may be related to a picture.</param>
        /// <param name="pictureRelationType">Picture relation of this type.</param>
        /// <returns>Picture guids related to specified object.</returns>
        public PictureGuidList GetRecommendedPictureIdsByObjectGuid(IUserContext userContext,
                                                                    List <string> objectGuids,
                                                                    IPictureRelationType pictureRelationType)
        {
            PictureGuidList pictureGuidList;

            pictureGuidList = DataSource.GetRecommendedPictureIdsByObjectGuid(userContext,
                                                                              objectGuids,
                                                                              pictureRelationType);
            return(pictureGuidList);
        }
        ///// <summary>
        ///// Gets a picture from the pictureservice by using the pictureid
        ///// </summary>
        ///// <param name="pictureId"></param>
        ///// <param name="pictureHeight">Height of returned picture.</param>
        ///// <param name="pictureWidth">Width of returned picture.</param>
        ///// <param name="requestedPictureSize">Requested size of returned picture.</param>
        ///// <param name="isRequestedPictureSizeSpecified">Is requested size of returned picture specified.</param>
        ///// <param name="requestedFormat">Requested format of returned picture.</param>
        ///// <returns></returns>
        //public string GetPictureByPictureId(int pictureId,
        //    int pictureHeight,
        //    int pictureWidth,
        //    long requestedPictureSize,
        //    bool isRequestedPictureSizeSpecified,
        //    string requestedFormat)
        //{
        //    IPicture picture;
        //    try
        //    {
        //        picture = CoreData.PictureManager.GetPicture(mUserContext,
        //                    pictureId,
        //                    pictureHeight,
        //                    pictureWidth,
        //                    requestedPictureSize,
        //                    isRequestedPictureSizeSpecified,
        //                    requestedFormat);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new TaxonSpeciesFactManagerException(RedListResource.FailedToGetPictureFromPictureService, ex);
        //    }

        //    return picture == null ? null : picture.Image;
        //}

        ///// <summary>
        ///// Gets a picture by the given taxon id.
        ///// </summary>
        ///// <param name="taxon">The taxon to use to retrieve a recommended picture.</param>
        ///// <returns>The picture object.</returns>
        //public string GetPictureByTaxon(ITaxon taxon)
        //{
        //    long pictureId;
        //    return GetPictureByTaxon(taxon,
        //                             AppSettings.Default.PictureXtraLargeHeight,
        //                             AppSettings.Default.PictureXtraLargeWidth,
        //                             0,
        //                             false,
        //                             string.Empty,
        //                             out pictureId);
        //}

        /// <summary>
        /// Get picture by taxon and requested picture related properties.
        /// </summary>
        /// <param name="taxon">Taxon that expects to be related to picture.</param>
        /// <param name="pictureHeight">Height of returned picture.</param>
        /// <param name="pictureWidth">Width of returned picture.</param>
        /// <param name="requestedPictureSize">Requested size of returned picture.</param>
        /// <param name="isRequestedPictureSizeSpecified">Is requested size of returned picture specified.</param>
        /// <param name="requestedFormat">Requested format of returned picture.</param>
        /// <param name="pictureId">Id for uploded image. Will also be returned from this method.</param>
        /// <returns>Picture as binary string.</returns>
        public string GetPictureByTaxon(
            ITaxon taxon,
            int pictureHeight,
            int pictureWidth,
            long requestedPictureSize,
            bool isRequestedPictureSizeSpecified,
            string requestedFormat,
            out long pictureId)
        {
            IPictureRelationType pictureRelationType = CoreData.PictureManager.GetPictureRelationType(mUserContext, PictureRelationTypeIdentifier.TaxonRedList);
            PictureRelationList  pictureRelations    = CoreData.PictureManager.GetPictureRelations(mUserContext, taxon, pictureRelationType);

            pictureId = 0;
            if (pictureRelations.IsNotNull())
            {
                IPictureRelation pictureRelation = pictureRelations.FirstOrDefault(r => r.IsRecommended);

                if (pictureRelation.IsNotNull())
                {
                    if (pictureRelation != null)
                    {
                        IPicture taxonPicture = CoreData.PictureManager.GetPicture(
                            mUserContext,
                            pictureRelation.PictureId,
                            pictureHeight,
                            pictureWidth,
                            requestedPictureSize,
                            isRequestedPictureSizeSpecified,
                            requestedFormat);

                        if (taxonPicture.IsNotNull())
                        {
                            pictureId = taxonPicture.Id;
                        }
                        return(taxonPicture.Image);
                    }
                }
            }
            return(null);
        }
コード例 #6
0
        public void GetAllRecommendedPictureIds()
        {
            IUserContext            userContext         = GetUserContext();
            PictureRelationTypeList relationTypes       = GetPictureManager(true).GetPictureRelationTypes(userContext);
            IPictureRelationType    pictureRelationType = relationTypes.Get(PictureRelationTypeIdentifier.Factor);


            PictureGuidList guids = GetPictureManager(true).GetAllRecommendedPictureIds(userContext, pictureRelationType);

            Assert.IsNotNull(guids);
            Assert.IsTrue(guids.Count > 0);

            pictureRelationType = relationTypes.Get(PictureRelationTypeIdentifier.SpeciesFact);
            guids = GetPictureManager(true).GetAllRecommendedPictureIds(userContext, pictureRelationType);
            Assert.IsNotNull(guids);
            Assert.IsTrue(guids.Count > 0);

            pictureRelationType = relationTypes.Get(PictureRelationTypeIdentifier.TaxonRedList);
            guids = GetPictureManager(true).GetAllRecommendedPictureIds(userContext, pictureRelationType);
            Assert.IsNotNull(guids);
            Assert.IsTrue(guids.Count > 0);
        }
コード例 #7
0
        public void GetAllRecommendedPicturesMetaData()
        {
            int          copyright          = 1;
            int          pictureCreatedBy   = 2;
            int          pictureCreatedDate = 3;
            int          description        = 4;
            IUserContext userContext        = GetUserContext();

            List <int> metaDataIds = new List <int> {
                copyright
            };
            PictureRelationTypeList relationTypes       = GetPictureManager(true).GetPictureRelationTypes(userContext);
            IPictureRelationType    pictureRelationType = relationTypes.Get(PictureRelationTypeIdentifier.TaxonRedList);

            PictureMetaDataInformationList resultList = GetPictureManager(true).GetAllRecommendedPicturesMetaData(userContext, pictureRelationType, metaDataIds);

            Assert.IsNotNull(resultList);
            Assert.IsTrue(resultList.Count > 0);

            // Check that only copyright data is read
            foreach (IPictureMetaDataInformation dataInformations in resultList)
            {
                foreach (IPictureMetaData pictureMetaData in dataInformations.PictureMetaDataList)
                {
                    Assert.IsTrue(pictureMetaData.Name.Equals("Copyright"));
                    Assert.IsTrue(pictureMetaData.Value.IsNotEmpty());
                }
            }

            metaDataIds = new List <int> {
                pictureCreatedBy, pictureCreatedDate
            };
            relationTypes.Get(PictureRelationTypeIdentifier.SpeciesFact);
            resultList = GetPictureManager(true).GetAllRecommendedPicturesMetaData(userContext, pictureRelationType, metaDataIds);
            Assert.IsNotNull(resultList);
            Assert.IsTrue(resultList.Count > 0);
            // Check data
            foreach (IPictureMetaDataInformation dataInformations in resultList)
            {
                foreach (IPictureMetaData pictureMetaData in dataInformations.PictureMetaDataList)
                {
                    Assert.IsTrue(pictureMetaData.Name.IsNotEmpty());
                    Assert.IsTrue(pictureMetaData.Value.IsNotEmpty());
                }
            }

            metaDataIds = new List <int> {
                description
            };
            resultList = GetPictureManager(true).GetAllRecommendedPicturesMetaData(userContext, pictureRelationType, metaDataIds);
            Assert.IsNotNull(resultList);
            Assert.IsTrue(resultList.Count > 0);
            // Check data
            foreach (IPictureMetaDataInformation dataInformations in resultList)
            {
                foreach (IPictureMetaData pictureMetaData in dataInformations.PictureMetaDataList)
                {
                    Assert.IsTrue(pictureMetaData.Name.Equals("Description"));
                    Assert.IsTrue(pictureMetaData.Value.IsNotEmpty());
                }
            }

            pictureRelationType = relationTypes.Get(PictureRelationTypeIdentifier.Factor);
            metaDataIds         = new List <int> {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10
            };
            resultList = GetPictureManager(true).GetAllRecommendedPicturesMetaData(userContext, pictureRelationType, metaDataIds);
            Assert.IsNotNull(resultList);
            Assert.IsTrue(resultList.Count > 0);
            // Check data
            foreach (IPictureMetaDataInformation dataInformations in resultList)
            {
                foreach (IPictureMetaData pictureMetaData in dataInformations.PictureMetaDataList)
                {
                    Assert.IsTrue(pictureMetaData.Name.IsNotEmpty());
                    Assert.IsTrue(pictureMetaData.Value.IsNotEmpty());
                }
            }
        }
        ///// <summary>
        ///// Gets a list of metadata for a specific picture
        ///// </summary>
        ///// <param name="pictureId"></param>
        ///// <param name="metaDataIds">A list of meta data ids</param>
        ///// <returns></returns>
        //public PictureMetaDataList GetPictureMetaDataListByPictureId(long pictureId, List<int> metaDataIds)
        //{
        //    if (pictureId <= 0)
        //    {
        //        throw new TaxonSpeciesFactManagerException();
        //    }

        //    try
        //    {
        //        return CoreData.PictureManager.GetPictureMetaData(mUserContext, pictureId, metaDataIds);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new TaxonSpeciesFactManagerException(RedListResource.FailedToGetPictureMetaDataFromPictureManager, ex);
        //    }
        //}

        /// <summary>
        /// Gets the picture relations from a a taxon and a given relation type
        /// </summary>
        /// <param name="taxon"></param>
        /// <returns></returns>
        public PictureRelationList GetPictureRelations(ITaxon taxon)
        {
            IPictureRelationType pictureRelationType = CoreData.PictureManager.GetPictureRelationType(mUserContext, PictureRelationTypeIdentifier.TaxonRedList);

            return(CoreData.PictureManager.GetPictureRelations(mUserContext, taxon, pictureRelationType));
        }