Exemple #1
0
        private NameCacheEntity BuildNameCacheFromTableEntity(NameCacheTableEntity tableEntity)
        {
            if (tableEntity == null)
            {
                return(null);
            }

            var parameters = new List <Parameter>();

            try
            {
                parameters = JsonConvert.DeserializeObject <List <Parameter> >(tableEntity.MethodParameters);
            }
            catch (Exception)
            {
                Trace.TraceError("Failed to deserialize object for method parameters: {0}", tableEntity.MethodParameters);
            }

            var nameCacheEntity = new NameCacheEntity
            {
                Name        = tableEntity?.Name,
                Parameters  = parameters,
                Description = tableEntity?.MethodDescription,
            };

            return(nameCacheEntity);
        }
Exemple #2
0
        public async Task <bool> AddNameAsync(string name)
        {
            var type   = this.GetEntityType(name);
            var entity = new NameCacheEntity()
            {
                Name = name
            };

            return(await _nameCacheRepository.AddNameAsync(type, entity));
        }
Exemple #3
0
        /// <summary>
        /// Save a new name into the repository. Update it if it already exists.
        /// </summary>
        /// <param name="name"></param>
        /// <returns>true if succeeded, false if failed.</returns>
        public async Task <bool> AddNameAsync(NameCacheEntityType entityType, NameCacheEntity entity)
        {
            CheckSingleEntityType(entityType);
            NameCacheTableEntity tableEntity = new NameCacheTableEntity(entityType, entity.Name);

            tableEntity.MethodParameters  = JsonConvert.SerializeObject(entity.Parameters);
            tableEntity.MethodDescription = entity.Description;
            tableEntity.ETag = "*";
            var result = await _azureTableStorageClient.DoTableInsertOrReplaceAsync <NameCacheEntity, NameCacheTableEntity>(tableEntity, BuildNameCacheFromTableEntity);

            return(result.Status == TableStorageResponseStatus.Successful);
        }
Exemple #4
0
        public async Task <bool> AddMethodAsync(Command method)
        {
            var    parameterTypes       = method.Parameters.Select(p => p.Type).ToList();
            string normalizedMethodName = string.Format("{0}({1})", method.Name, string.Join(",", parameterTypes));
            var    entity = new NameCacheEntity()
            {
                Name        = normalizedMethodName,
                Description = method.Description,
                Parameters  = method.Parameters
            };

            return(await _nameCacheRepository.AddNameAsync(NameCacheEntityType.Method, entity));
        }