public object Delete(DeleteCatalog request) { var entity = request.ConvertTo <Catalog>(); return(InTransaction(db => { Logic.Remove(entity); return new CommonResponse(); })); }
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 })); } }