private void CreateAvailableEndpoints(dynamic data)
        {
            if (string.IsNullOrEmpty(data.alias))
            {
                return;
            }

            string alias       = data.alias;
            string description = data.description;
            string disclaimer  = data.disclaimer;

            var esa = new AvailableEndpoint
            {
                PartitionKey       = alias,
                RowKey             = "",
                alias              = alias,
                description        = description,
                disclaimer         = disclaimer,
                storageaccountname = data.storagename,
                storageaccountkey  = data.storagekey
            };

            CloudStorageAccount ta = CloudStorageAccount.Parse(string.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}", data.storagename, data.storagekey));
            var ctx         = new TableServiceContext(ta.TableEndpoint.AbsoluteUri, ta.Credentials);
            var tableClient = ta.CreateCloudTableClient();

            tableClient.CreateTableIfNotExist(ENDPOINTS_TABLENAME);
            ctx.AddObject(ENDPOINTS_TABLENAME, esa);
            ctx.SaveChanges();
        }
Esempio n. 2
0
        private void CreateAvailableEndpoints(dynamic data)
        {
            if (string.IsNullOrEmpty(data.alias))
                return;

            string alias = data.alias;
            string description = data.description;
            string disclaimer = data.disclaimer;

            var esa = new AvailableEndpoint
            {
                PartitionKey = alias,
                RowKey = "",
                alias = alias,
                description = description,
                disclaimer = disclaimer,
                storageaccountname = data.storagename,
                storageaccountkey = data.storagekey
            };

            CloudStorageAccount ta = CloudStorageAccount.Parse(string.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}", data.storagename, data.storagekey));
            var ctx = new TableServiceContext(ta.TableEndpoint.AbsoluteUri, ta.Credentials);
            var tableClient = ta.CreateCloudTableClient();
            tableClient.CreateTableIfNotExist(ENDPOINTS_TABLENAME);
            ctx.AddObject(ENDPOINTS_TABLENAME, esa);
            ctx.SaveChanges();
        }
Esempio n. 3
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 }));
            }
        }
Esempio n. 4
0
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            var esa = new AvailableEndpoint
            {
                PartitionKey       = AliasBox.Text,
                RowKey             = "",
                alias              = AliasBox.Text,
                description        = DescriptionBox.Text,
                storageaccountname = tableStorageAccountNameBox.Text,
                storageaccountkey  = tableStorageAccountKeyBox.Text
            };

            if (DisclaimerBox.Text.Length > 0)
            {
                esa.disclaimer = DisclaimerBox.Text.Replace('\n', ' ');
            }

            var ta  = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["DataConnectionString"]);
            var ctx = new OgdiConfigDataServiceContext(ta.TableEndpoint.AbsoluteUri, ta.Credentials);

            ctx.AddObject(OgdiConfigDataServiceContext.EndpointsTableName, esa);
            ctx.SaveChanges();

            DisplayLatest();
        }
Esempio n. 5
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 }));
            }
        }
Esempio n. 6
0
        protected void DeleteButton_Click(object sender, EventArgs e)
        {
            var button = sender as LinkButton;

            string[] p            = button.CommandArgument.Split('|');
            var      partitionKey = p[0];
            var      rowKey       = p[1];

            var availableEndpoint = new AvailableEndpoint
            {
                PartitionKey = partitionKey,
                RowKey       = rowKey
            };

            var ta      = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["DataConnectionString"]);
            var context = new OgdiConfigDataServiceContext(ta.TableEndpoint.AbsoluteUri, ta.Credentials);

            context.AttachTo(OgdiConfigDataServiceContext.EndpointsTableName, availableEndpoint, "*");
            context.DeleteObject(availableEndpoint);
            context.SaveChanges();

            DisplayLatest();
        }
Esempio n. 7
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 }));
            }
        }