public ActionResult Add(AddCatalog model) { try { CloudTable availableEndpoints = Azure.GetCloudTable(model.ConfigStorageName, model.ConfigStorageKey, Azure.Table.AvailableEndpoints); availableEndpoints.CreateIfNotExists(); AvailableEndpoint entity = new AvailableEndpoint(model.Alias, model.Alias); entity.alias = model.Alias; entity.description = model.Description; entity.disclaimer = model.Disclaimer; entity.storageaccountname = model.DataStorageName; entity.storageaccountkey = model.DataStorageKey; if (!entity.IsValid()) { return(Json(new { Error = Messages.IncompleteForm })); } availableEndpoints.Execute(TableOperation.Insert(entity)); return(Json(new { Result = string.Empty })); } catch (Exception ex) { return(Json(new { Error = ex.Message })); } }
public ActionResult Delete(DeleteCatalog model) { try { CloudTable availableEndpoints = Azure.GetCloudTable(model.ConfigStorageName, model.ConfigStorageKey, Azure.Table.AvailableEndpoints); if (!availableEndpoints.Exists()) { return(Json(new { Error = string.Format(Messages.TableDoesNotExist, Azure.Table.AvailableEndpoints) })); } TableOperation retrieveOperation = TableOperation.Retrieve <AvailableEndpoint>(model.PartitionKey, (model.RowKey ?? string.Empty)); TableResult retrievedResult = availableEndpoints.Execute(retrieveOperation); if (retrievedResult.Result == null) { return(Json(new { Error = Messages.CatalogNotFound })); } AvailableEndpoint availableEndpoint = retrievedResult.Result as AvailableEndpoint; string dataStorageName = availableEndpoint.storageaccountname; string dataStorageKey = availableEndpoint.storageaccountkey; // Deleting row in AvailableEndpoints availableEndpoints.Execute(TableOperation.Delete(availableEndpoint)); // Deleting all data tables CloudTable tableMetadata = Azure.GetCloudTable(dataStorageName, dataStorageKey, Azure.Table.TableMetadata); if (tableMetadata.Exists()) { foreach (TableMetadata entity in tableMetadata.ExecuteQuery(new TableQuery <TableMetadata>())) { Azure.GetCloudTable(dataStorageName, dataStorageKey, entity.entityset).DeleteIfExists(); } tableMetadata.DeleteIfExists(); } // Deleting all metadata tables Azure.GetCloudTable(dataStorageName, dataStorageKey, Azure.Table.EntityMetadata).DeleteIfExists(); Azure.GetCloudTable(dataStorageName, dataStorageKey, Azure.Table.ProcessorParams).DeleteIfExists(); Azure.GetCloudTable(dataStorageName, dataStorageKey, Azure.Table.TableColumnsMetadata).DeleteIfExists(); return(Json(new { Result = string.Empty })); } catch (Exception ex) { return(Json(new { Error = ex.Message })); } }
public ActionResult Delete(DeleteDataset model) { try { CloudTable endPoints = Azure.GetCloudTable(model.DataStorageName, model.DataStorageKey, Azure.Table.AvailableEndpoints); AvailableEndpoint catalog = endPoints.ExecuteQuery(new TableQuery <AvailableEndpoint>()).SingleOrDefault(x => x.alias == model.Catalog); CloudTable tableMetadata = Azure.GetCloudTable(catalog.storageaccountname, catalog.storageaccountkey, Azure.Table.TableMetadata); if (!tableMetadata.Exists()) { return(Json(new { Error = string.Format(Messages.TableDoesNotExist, Azure.Table.TableMetadata) })); } TableOperation retrieveOperation = TableOperation.Retrieve <TableMetadata>(model.PartitionKey, (model.RowKey ?? string.Empty)); TableResult retrievedResult = tableMetadata.Execute(retrieveOperation); if (retrievedResult.Result == null) { return(Json(new { Error = Messages.DatasetNotFound })); } TableMetadata entity = retrievedResult.Result as TableMetadata; string entitySet = entity.entityset; // Deleting row in TableMetadata tableMetadata.Execute(TableOperation.Delete(entity)); // Deleting rows in TableColumnsMetadata CloudTable tableColumnsMetadata = Azure.GetCloudTable(catalog.storageaccountname, catalog.storageaccountkey, Azure.Table.TableColumnsMetadata); if (tableColumnsMetadata.Exists()) { TableQuery <TableColumnsMetadata> rangeQuery = new TableQuery <TableColumnsMetadata>().Where(TableQuery.GenerateFilterCondition("entityset", QueryComparisons.Equal, entitySet)); foreach (TableColumnsMetadata tmpEntity in tableColumnsMetadata.ExecuteQuery(rangeQuery)) { tableColumnsMetadata.Execute(TableOperation.Delete(tmpEntity)); } } // Deleting rows in EntityMetadata CloudTable entityMetadata = Azure.GetCloudTable(catalog.storageaccountname, catalog.storageaccountkey, Azure.Table.EntityMetadata); if (entityMetadata.Exists()) { TableQuery <EntityMetadata> rangeQuery = new TableQuery <EntityMetadata>().Where(TableQuery.GenerateFilterCondition("entityset", QueryComparisons.Equal, entitySet)); foreach (EntityMetadata tmpEntity in entityMetadata.ExecuteQuery(rangeQuery)) { entityMetadata.Execute(TableOperation.Delete(tmpEntity)); } } // Deleting rows in ProcessorParams CloudTable processorParams = Azure.GetCloudTable(catalog.storageaccountname, catalog.storageaccountkey, Azure.Table.ProcessorParams); if (processorParams.Exists()) { TableQuery <ProcessorParams> rangeQuery = new TableQuery <ProcessorParams>().Where(TableQuery.GenerateFilterCondition("entityset", QueryComparisons.Equal, entitySet)); foreach (ProcessorParams tmpEntity in processorParams.ExecuteQuery(rangeQuery)) { processorParams.Execute(TableOperation.Delete(tmpEntity)); } } // Deleting the data table Azure.GetCloudTable(catalog.storageaccountname, catalog.storageaccountkey, entitySet).DeleteIfExists(); return(Json(new { Result = string.Empty })); } catch (Exception ex) { return(Json(new { Error = ex.Message })); } }