コード例 #1
0
        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 }));
            }
        }
コード例 #2
0
        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 }));
            }
        }
コード例 #3
0
        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 }));
            }
        }