public async Task<EntityList> GetEntityListAsync(IApiContext apiContext, String name, string nameSpace) { var entityListResource = new EntityListResource(apiContext); String listFQN = GetListFQN(name, nameSpace); EntityList entityList = null; try { entityList = await entityListResource.GetEntityListAsync(listFQN); } catch (AggregateException ae) { if (ae.InnerException.GetType() == typeof (ApiException)) throw; var aex = (ApiException)ae.InnerException; _logger.Error(aex.Message, aex); throw aex; } return entityList; }
public async Task<EntityList> InstallSchemaAsync(IApiContext apiContext, EntityList entityList, EntityScope scope, IndexedProperty idProperty,List<IndexedProperty> indexedProperties) { if (indexedProperties != null && indexedProperties.Count > 4) throw new Exception("Only 4 indexed properties are supported"); if (string.IsNullOrEmpty(entityList.Name)) throw new Exception("Entity name is missing"); entityList.TenantId = apiContext.TenantId; entityList.ContextLevel = scope.ToString(); if (indexedProperties != null) { entityList.IndexA = indexedProperties.Count >= 1 ? indexedProperties[0] : null; entityList.IndexB = indexedProperties.Count >= 2 ? indexedProperties[1] : null; entityList.IndexC = indexedProperties.Count >= 3 ? indexedProperties[2] : null; entityList.IndexD = indexedProperties.Count >= 4 ? indexedProperties[3] : null; } if (idProperty == null) entityList.UseSystemAssignedId = true; else entityList.IdProperty = idProperty; if (string.IsNullOrEmpty(entityList.NameSpace)) entityList.NameSpace = _appSetting.Namespace; var entityListResource = new EntityListResource(apiContext); var listFQN = GetListFQN(entityList.Name, entityList.NameSpace); var existing = await GetEntityListAsync(apiContext, entityList.Name); try { existing = existing != null ? await entityListResource.UpdateEntityListAsync(entityList, listFQN) : await entityListResource.CreateEntityListAsync(entityList); } catch (AggregateException ae) { if (ae.InnerException.GetType() == typeof(ApiException)) throw; var aex = (ApiException)ae.InnerException; _logger.Error(aex.Message, aex); throw aex; } return entityList; }