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); }
public async Task <bool> AddNameAsync(string name) { var type = this.GetEntityType(name); var entity = new NameCacheEntity() { Name = name }; return(await _nameCacheRepository.AddNameAsync(type, entity)); }
/// <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); }
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)); }