Beispiel #1
0
        /// <summary>
        /// Loads all the dependent collection set for the given resource
        /// </summary>
        /// <param name="resource"> an resource object</param>
        /// <returns> loaded resource </returns>
        private static Core.Resource LoadResource(Core.Resource resource)
        {
            if (null == resource)
            {
                return(null);
            }

            ScholarlyWorks.ScholarlyWork scholarlyWork = resource as ScholarlyWorks.ScholarlyWork;
            if (null != scholarlyWork)
            {
                if (!scholarlyWork.Authors.IsLoaded)
                {
                    scholarlyWork.Authors.Load();
                }
                if (!scholarlyWork.Contributors.IsLoaded)
                {
                    scholarlyWork.Contributors.Load();
                }
                if (!scholarlyWork.Tags.IsLoaded)
                {
                    scholarlyWork.Tags.Load();
                }
            }

            return(resource);
        }
Beispiel #2
0
        /// <summary>
        /// Gets the type of the resource.
        /// </summary>
        /// <param name="resource">The resource.</param>
        /// <returns>The <see cref="ResourceType"/>.</returns>
        internal ResourceType GetResourceType(Core.Resource resource)
        {
            if (null == resource)
            {
                return(null);
            }

            return(GetResourceType(resource.GetType().FullName));
        }
Beispiel #3
0
        /// <summary>
        /// retrieves resource object specific to resource id
        /// </summary>
        /// <param name="resourceId">id for retrieving specific object</param>
        /// <returns>resource object</returns>
        internal Core.Resource GetResource(Guid resourceId)
        {
            Core.Resource coreResource = null;

            using (Core.ZentityContext zentityContext = CoreHelper.CreateZentityContext())
            {
                var returnedResource = zentityContext.Resources
                                       .Where(resource => resource.Id == resourceId)
                                       .FirstOrDefault();

                if (returnedResource != null &&
                    returnedResource.Authorize("Read", zentityContext, GetAuthenticationToken()))
                {
                    coreResource = LoadResource(returnedResource);
                }
            }

            return(coreResource);
        }
        /// <summary>
        /// Creates header element
        /// </summary>
        /// <param name="resource"> resource object</param>
        /// <returns> instance of XElement </returns>
        internal XElement GetHeaderElement(Core.Resource resource)
        {
            XElement header = null;

            header = new XElement(Header);

            header.Add(MetadataProviderHelper.GetElement(Header_Identifier, resource.Id.ToString()));
            header.Add(MetadataProviderHelper.GetElement(Header_DateStamp, resource.DateModified.Value.ToString(MetadataProviderHelper.DateTimeGranularity, CultureInfo.InvariantCulture)));

            ResourceType resourceTypeInfo = new CoreHelper(entityConnectionString).GetResourceType(resource);

            if (resourceTypeInfo != null)
            {
                List <string> listOfResourceTypeInfo = new CoreHelper(entityConnectionString).GetResourceTypeHierarchy(resourceTypeInfo);
                listOfResourceTypeInfo.ForEach(delegate(string resourceType)
                {
                    header.Add(MetadataProviderHelper.GetElement(Header_SetSpec, resourceType));
                });
            }
            return(header);
        }
Beispiel #5
0
        private static List <Core.Resource> FilterResources <T>(
            IQueryable <T> query,
            bool isListRecords) where T : Core.Resource
        {
            List <Core.Resource> listOfResources = new List <Core.Resource>();

            foreach (T resource in query)
            {
                if (resource is ScholarlyWorks.Contact || resource is Identity || resource is Group)
                {
                    continue;
                }
                Core.Resource resourceToAdd = resource;
                listOfResources.Add(resourceToAdd);
            }
            if (isListRecords)
            {
                listOfResources = CoreHelper.LoadResources(listOfResources);
            }
            return(listOfResources);
        }
        /// <summary>
        /// Creates metadata element
        /// </summary>
        /// <param name="resource"> resource object </param>
        /// <returns> an instance of XElement </returns>
        internal static XElement GetMetadataElement(Core.Resource resource)
        {
            XElement metadata = null;

            metadata = new XElement(Metadata);

            if (!String.IsNullOrEmpty(resource.Title))
            {
                metadata.Add(MetadataProviderHelper.GetElement(Metadata_Title, resource.Title));
            }

            ScholarlyWorks.ScholarlyWork scholarlyWorks = resource as ScholarlyWorks.ScholarlyWork;
            if (null != scholarlyWorks)
            {
                if (scholarlyWorks.Authors != null)
                {
                    MetadataProviderHelper.AddResourceAuthors(metadata, scholarlyWorks);
                }
                if (scholarlyWorks.Contributors != null)
                {
                    MetadataProviderHelper.AddResourceContributors(metadata, scholarlyWorks);
                }
            }

            // TODO : 2.Currently Tags for a given resource are retrieved without
            //          checking any relationships, but the implementation needs to be changed if required
            ScholarlyWorks.ScholarlyWorkItem scholarlyWorkItem = resource as ScholarlyWorks.ScholarlyWorkItem;
            if (scholarlyWorkItem != null && scholarlyWorkItem.Tags != null)
            {
                MetadataProviderHelper.AddResourceTags(metadata, scholarlyWorkItem);
            }

            metadata.Add(MetadataProviderHelper.GetElement(Metadata_Description, resource.Description));

            if (!String.IsNullOrEmpty(resource.DateModified.Value.ToString()))
            {
                metadata.Add(MetadataProviderHelper.GetElement(Metadata_Date, resource.DateModified.Value.ToString(DateTimeGranularity, CultureInfo.InvariantCulture)));
            }
            return(metadata);
        }
Beispiel #7
0
        public override bool ShouldExecute(Type itemType, Core.ItemIdentifier itemId, Core.Resource resource, Core.Enums.ItemEvent eventType)
        {
            //if (itemType == typeof(Template) && resource.PackageFromPath.ToLower().EndsWith(".master"))
            //return true;

            return(false);
        }