GetTypeTagName() 공개 메소드

public GetTypeTagName ( Type type ) : string
type System.Type
리턴 string
예제 #1
0
        public static void SetupConventions(DocumentConvention conventions)
        {
            conventions.TransformTypeTagNameToDocumentKeyPrefix = typeTagName => typeTagName;

            conventions.RegisterIdConvention<SiddurSnippet>((commands, snippet) => string.Format("{0}/{1}", conventions.GetTypeTagName(snippet.GetType()), snippet.Slug));
            conventions.RegisterIdConvention<SiddurPrayer>((commands, prayer) => string.Format("{0}/{1}", conventions.GetTypeTagName(prayer.GetType()), prayer.Slug));
        }
		/// <summary>
		/// Generates the document key.
		/// </summary>
		/// <param name="conventions">The conventions.</param>
		/// <param name="entity">The entity.</param>
		/// <returns></returns>
		public string GenerateDocumentKey(DocumentConvention conventions, object entity)
		{
		    var typeTagName = conventions.GetTypeTagName(entity.GetType());
			if (string.IsNullOrEmpty(typeTagName)) //ignore empty tags
				return null;
			var tag = conventions.TransformTypeTagNameToDocumentKeyPrefix(typeTagName);
			HiLoKeyGenerator value;
			if (keyGeneratorsByTag.TryGetValue(tag, out value))
				return value.GenerateDocumentKey(conventions, entity);

			lock(generatorLock)
			{
				if (keyGeneratorsByTag.TryGetValue(tag, out value))
					return value.GenerateDocumentKey(conventions, entity);

				value = new HiLoKeyGenerator(DatabaseCommands, tag, capacity);
				// doing it this way for thread safety
				keyGeneratorsByTag = new Dictionary<string, HiLoKeyGenerator>(keyGeneratorsByTag)
				{
					{tag, value}
				};
			}

			return value.GenerateDocumentKey(conventions, entity);
		}
예제 #3
0
        /// <summary>
        /// Generates the document key.
        /// </summary>
        /// <param name="conventions">The conventions.</param>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public string GenerateDocumentKey(DocumentConvention conventions, object entity)
        {
            var typeTagName = conventions.GetTypeTagName(entity.GetType());

            if (string.IsNullOrEmpty(typeTagName))             //ignore empty tags
            {
                return(null);
            }
            var tag = typeTagName.ToLowerInvariant();
            HiLoKeyGenerator value;

            if (keyGeneratorsByTag.TryGetValue(tag, out value))
            {
                return(value.GenerateDocumentKey(conventions, entity));
            }

            lock (generatorLock)
            {
                if (keyGeneratorsByTag.TryGetValue(tag, out value))
                {
                    return(value.GenerateDocumentKey(conventions, entity));
                }

                value = new HiLoKeyGenerator(documentStore, tag, capacity);
                // doing it this way for thread safety
                keyGeneratorsByTag = new Dictionary <string, HiLoKeyGenerator>(keyGeneratorsByTag)
                {
                    { tag, value }
                };
            }

            return(value.GenerateDocumentKey(conventions, entity));
        }
예제 #4
0
        /// <summary>
        /// Generates the document key.
        /// </summary>
        /// <param name="conventions">The conventions.</param>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public string GenerateDocumentKey(IDatabaseCommands databaseCommands, DocumentConvention conventions, object entity)
        {
            var typeTagName = conventions.GetTypeTagName(entity.GetType());

            if (string.IsNullOrEmpty(typeTagName))             //ignore empty tags
            {
                return(null);
            }
            var tag = conventions.TransformTypeTagNameToDocumentKeyPrefix(typeTagName);
            HiLoKeyGenerator value;

            if (keyGeneratorsByTag.TryGetValue(tag, out value))
            {
                return(value.GenerateDocumentKey(databaseCommands, conventions, entity));
            }

            lock (generatorLock)
            {
                if (keyGeneratorsByTag.TryGetValue(tag, out value))
                {
                    return(value.GenerateDocumentKey(databaseCommands, conventions, entity));
                }

                value = new HiLoKeyGenerator(tag, capacity);
                // doing it this way for thread safety
                keyGeneratorsByTag = new Dictionary <string, HiLoKeyGenerator>(keyGeneratorsByTag)
                {
                    { tag, value }
                };
            }

            return(value.GenerateDocumentKey(databaseCommands, conventions, entity));
        }
        public string GenerateDocumentKey(DocumentConvention conventions, object entity)
        {
            var tag = conventions.GetTypeTagName(entity.GetType()).ToLowerInvariant();
            HiLoKeyGenerator value;

            if (keyGeneratorsByTag.TryGetValue(tag, out value))
            {
                return(value.GenerateDocumentKey(entity));
            }

            lock (generatorLock)
            {
                if (keyGeneratorsByTag.TryGetValue(tag, out value))
                {
                    return(value.GenerateDocumentKey(entity));
                }

                value = new HiLoKeyGenerator(databaseCommands, tag, capacity);
                // doing it this way for thread safety
                keyGeneratorsByTag = new Dictionary <string, HiLoKeyGenerator>(keyGeneratorsByTag)
                {
                    { tag, value }
                };
            }

            return(value.GenerateDocumentKey(entity));
        }
        public Task <string> GenerateDocumentKeyAsync(IAsyncDatabaseCommands databaseCommands, DocumentConvention conventions, object entity)
        {
            var typeTagName = conventions.GetTypeTagName(entity.GetType());

            if (string.IsNullOrEmpty(typeTagName))             //ignore empty tags
            {
                return(CompletedTask.With <string>(null));
            }
            var tag = conventions.TransformTypeTagNameToDocumentKeyPrefix(typeTagName);
            AsyncHiLoKeyGenerator value;

            if (keyGeneratorsByTag.TryGetValue(tag, out value))
            {
                return(value.GenerateDocumentKeyAsync(databaseCommands, conventions, entity));
            }

            lock (generatorLock)
            {
                if (keyGeneratorsByTag.TryGetValue(tag, out value))
                {
                    return(value.GenerateDocumentKeyAsync(databaseCommands, conventions, entity));
                }

                value = new AsyncHiLoKeyGenerator(tag, capacity);
                keyGeneratorsByTag.TryAdd(tag, value);
            }

            return(value.GenerateDocumentKeyAsync(databaseCommands, conventions, entity));
        }
예제 #7
0
 public IndexDefinition ToIndexDefinition(DocumentConvention convention)
 {
     return(new IndexDefinition
     {
         Map = PruneToFailureLinqQueryAsStringToWorkableCode(Map, "docs." + convention.GetTypeTagName(typeof(TDocument))),
         Reduce = PruneToFailureLinqQueryAsStringToWorkableCode(Reduce, "results"),
         Indexes = ConvertToStringDictionary(Indexes),
         Stores = ConvertToStringDictionary(Stores)
     });
 }
		public Task<string> GenerateDocumentKeyAsync(IAsyncDatabaseCommands databaseCommands, DocumentConvention conventions, object entity)
		{
		    var typeTagName = conventions.GetTypeTagName(entity.GetType());
			if (string.IsNullOrEmpty(typeTagName)) //ignore empty tags
				return CompletedTask.With<string>(null);
			var tag = conventions.TransformTypeTagNameToDocumentKeyPrefix(typeTagName);
			AsyncHiLoKeyGenerator value;
			if (keyGeneratorsByTag.TryGetValue(tag, out value))
				return value.GenerateDocumentKeyAsync(databaseCommands, conventions, entity);

			lock(generatorLock)
			{
				if (keyGeneratorsByTag.TryGetValue(tag, out value))
					return value.GenerateDocumentKeyAsync(databaseCommands, conventions, entity);

				value = new AsyncHiLoKeyGenerator(tag, capacity);
				keyGeneratorsByTag.TryAdd(tag, value);
			}

			return value.GenerateDocumentKeyAsync(databaseCommands, conventions, entity);
		}
예제 #9
0
		/// <summary>
		/// Generates the document key.
		/// </summary>
		/// <param name="conventions">The conventions.</param>
		/// <param name="entity">The entity.</param>
		/// <returns></returns>
        public string GenerateDocumentKey(DocumentConvention conventions, object entity)
        {
            var tag = conventions.GetTypeTagName(entity.GetType()).ToLowerInvariant();
            HiLoKeyGenerator value;
            if (keyGeneratorsByTag.TryGetValue(tag, out value))
				return value.GenerateDocumentKey(conventions, entity);

            lock(generatorLock)
            {
                if (keyGeneratorsByTag.TryGetValue(tag, out value))
                    return value.GenerateDocumentKey(conventions, entity);

                value = new HiLoKeyGenerator(documentStore, tag, capacity);
                // doing it this way for thread safety
                keyGeneratorsByTag = new Dictionary<string, HiLoKeyGenerator>(keyGeneratorsByTag)
                {
                    {tag, value}
                };
            }

			return value.GenerateDocumentKey(conventions, entity);
        }