Example #1
0
        public static CdmManifestDeclarationDefinition FromData(CdmCorpusContext ctx, DatabaseEntity obj)
        {
            var name           = obj.Name.Replace(".manifest.cdm.json", "");
            var newManifestDoc = ctx.Corpus.MakeObject <CdmManifestDeclarationDefinition>(CdmObjectType.ManifestDeclarationDef, name);

            newManifestDoc.Definition = name + "/" + name + ".manifest.cdm.json";

            DatabaseProperties databaseProperties = ((JToken)obj.Properties).ToObject <DatabaseProperties>();

            if (databaseProperties.Properties != null)
            {
                if (databaseProperties.Properties.ContainsKey("cdm:lastFileStatusCheckTime"))
                {
                    newManifestDoc.LastFileStatusCheckTime = DateTimeOffset.Parse(databaseProperties.Properties["cdm:lastFileStatusCheckTime"].ToObject <string>());
                }

                if (databaseProperties.Properties.ContainsKey("cdm:lastFileModifiedTime"))
                {
                    newManifestDoc.LastFileModifiedTime = DateTimeOffset.Parse(databaseProperties.Properties["cdm:lastFileModifiedTime"].ToObject <string>());
                }

                if (databaseProperties.Properties.ContainsKey("cdm:explanation"))
                {
                    newManifestDoc.Explanation = databaseProperties.Properties["cdm:explanation"].ToObject <string>();
                }
            }
            return(newManifestDoc);
        }
Example #2
0
 public Database()
     : base(ObjectType1.Database)
 {
     //AllObjects = new SearchSchemaBase();
     Assemblies = new SchemaList<Assembly, Database>(this);
     ClrFunctions = new SchemaList<ClrFunction, Database>(this);
     ClrProcedures = new SchemaList<ClrStoreProcedure, Database>(this);
     //DdlTriggers = new SchemaList<Trigger, Database>(this);
     Defaults = new SchemaList<Default, Database>(this);
     //Dependencies = new Dependencies();
     FileGroups = new SchemaList<FileGroup, Database>();
     FullText = new SchemaList<FullText, Database>(this);
     //Functions = new SchemaList<Function, Database>(this);
     //IsCaseSensitive = true;
     //Options =
     PartitionFunctions = new SchemaList<PartitionFunction, Database>(this);
     PartitionSchemes = new SchemaList<PartitionScheme, Database>(this);
     Procedures = new SchemaList<StoreProcedure, Database>(this);
     Properties = new DatabaseProperties();
     //Roles = new SchemaList<Role, Database>();
     Rules = new SchemaList<Rule, Database>(this);
     Schemas = new SchemaList<SchemaObsolete, Database>(this);
     Synonyms = new SchemaList<Synonym, Database>(this);
     //Tables = new SchemaList<Table, Database>(this);
     TablesTypes = new SchemaList<TableType, Database>(this);
     Users = new SchemaList<User1, Database>(this);
     UserTypes = new SchemaList<UserDataType, Database>(this);
     //Views = new SchemaList<View, Database>(this);
     XmlSchemas = new SchemaList<XmlSchema, Database>(this);
 }
Example #3
0
        public void DatabaseSettingsDeSerializeTest()
        {
            string dbResponsePayload = @"{
                _colls : 'dbs/6GoAAA==/colls/',
                _users: 'dbs/6GoAAA==/users/',
                 id: 'QuickStarts',
                _rid: '6GoAAA==',
                _self: 'dbs/6GoAAA==/',
                _ts: 1530581163,
                _etag: '00002000-0000-0000-0000-5b3ad0ab0000'
                }";

            DatabaseProperties databaseSettings = SettingsContractTests.CosmosDeserialize <DatabaseProperties>(dbResponsePayload);
            Database           db = SettingsContractTests.DirectDeSerialize <Database>(dbResponsePayload);

            // Not all are exposed in CosmosDatabaseSettings
            // so lets only validate relevant parts
            Assert.AreEqual(db.Id, databaseSettings.Id);
            Assert.AreEqual(db.ETag, databaseSettings.ETag);
            Assert.AreEqual(db.ResourceId, databaseSettings.ResourceId);

            Assert.AreEqual("QuickStarts", databaseSettings.Id);
            Assert.AreEqual("00002000-0000-0000-0000-5b3ad0ab0000", databaseSettings.ETag);
            Assert.AreEqual("6GoAAA==", databaseSettings.ResourceId);
        }
        public async Task ImplicitConversion()
        {
            string databaseName = Guid.NewGuid().ToString();

            DatabaseResponse cosmosDatabaseResponse = await this.cosmosClient.GetDatabase(databaseName).ReadAsync(cancellationToken: this.cancellationToken);

            Cosmos.Database    cosmosDatabase         = cosmosDatabaseResponse;
            DatabaseProperties cosmosDatabaseSettings = cosmosDatabaseResponse;

            Assert.IsNotNull(cosmosDatabase);
            Assert.IsNull(cosmosDatabaseSettings);

            cosmosDatabaseResponse = await this.CreateDatabaseHelper();

            cosmosDatabase         = cosmosDatabaseResponse;
            cosmosDatabaseSettings = cosmosDatabaseResponse;
            Assert.IsNotNull(cosmosDatabase);
            Assert.IsNotNull(cosmosDatabaseSettings);

            cosmosDatabaseResponse = await cosmosDatabase.DeleteAsync(cancellationToken : this.cancellationToken);

            cosmosDatabase         = cosmosDatabaseResponse;
            cosmosDatabaseSettings = cosmosDatabaseResponse;
            Assert.IsNotNull(cosmosDatabase);
            Assert.IsNull(cosmosDatabaseSettings);
        }
Example #5
0
        public void DatabaseStreamDeserialzieTest()
        {
            string dbId = "946ad017-14d9-4cee-8619-0cbc62414157";
            string rid  = "vu9cAA==";
            string self = "dbs\\/vu9cAA==\\/";
            string etag = "00000000-0000-0000-f8ea-31d6e5f701d4";
            double ts   = 1555923784;

            DateTime UnixStartTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
            DateTime expected      = UnixStartTime.AddSeconds(ts);

            string testPyaload = "{\"id\":\"" + dbId
                                 + "\",\"_rid\":\"" + rid
                                 + "\",\"_self\":\"" + self
                                 + "\",\"_etag\":\"" + etag
                                 + "\",\"_colls\":\"colls\\/\",\"_users\":\"users\\/\",\"_ts\":" + ts + "}";

            DatabaseProperties deserializedPayload =
                JsonConvert.DeserializeObject <DatabaseProperties>(testPyaload);

            Assert.IsTrue(deserializedPayload.LastModified.HasValue);
            Assert.AreEqual(expected, deserializedPayload.LastModified.Value);
            Assert.AreEqual(dbId, deserializedPayload.Id);
            Assert.AreEqual(rid, deserializedPayload.ResourceId);
            Assert.AreEqual(etag, deserializedPayload.ETag);
        }
        private async Task <Cosmos.Database> CreateDatabaseStreamHelper(
            string databaseId   = null,
            int?throughput      = null,
            bool databaseExists = false)
        {
            if (string.IsNullOrEmpty(databaseId))
            {
                databaseId = Guid.NewGuid().ToString();
            }

            DatabaseProperties databaseSettings = new DatabaseProperties()
            {
                Id = databaseId
            };
            ResponseMessage response = await this.cosmosClient.CreateDatabaseStreamAsync(
                databaseSettings,
                throughput : 400);

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Headers.RequestCharge);
            Assert.IsNotNull(response.Headers.ActivityId);

            Assert.IsTrue(response.StatusCode == HttpStatusCode.OK || (response.StatusCode == HttpStatusCode.Created && !databaseExists));

            return(this.cosmosClient.GetDatabase(databaseId));
        }
Example #7
0
        public async Task StreamCreateConflictTestAsync()
        {
            DatabaseProperties databaseSettings = new DatabaseProperties()
            {
                Id = Guid.NewGuid().ToString()
            };

            using (ResponseMessage response = await this.cosmosClient.CreateDatabaseStreamAsync(databaseSettings))
            {
                Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
                Assert.IsNotNull(response.Headers);
                Assert.IsTrue(response.Headers.RequestCharge > 0);
            }

            // Stream operations do not throw exceptions.
            using (ResponseMessage response = await this.cosmosClient.CreateDatabaseStreamAsync(databaseSettings))
            {
                Assert.AreEqual(HttpStatusCode.Conflict, response.StatusCode);
                Assert.IsNotNull(response.Headers);
                Assert.IsTrue(response.Headers.RequestCharge > 0);
            }

            using (ResponseMessage response = await this.cosmosClient.GetDatabase(databaseSettings.Id).DeleteStreamAsync())
            {
                Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode);
                Assert.IsNotNull(response.Headers);
                Assert.IsTrue(response.Headers.RequestCharge > 0);
            }
        }
Example #8
0
        public async Task DatabaseContractTest()
        {
            DatabaseResponse response = await this.CreateDatabaseHelper();

            Assert.IsNotNull(response);
            Assert.IsTrue(response.RequestCharge > 0);
            Assert.IsNotNull(response.Headers);
            Assert.IsNotNull(response.Headers.ActivityId);

            DatabaseProperties databaseSettings = response.Resource;

            Assert.IsNotNull(databaseSettings.Id);
            Assert.IsNotNull(databaseSettings.ResourceId);
            Assert.IsNotNull(databaseSettings.ETag);
            Assert.IsTrue(databaseSettings.LastModified.HasValue);
            Assert.IsTrue(databaseSettings.LastModified.Value > new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), databaseSettings.LastModified.Value.ToString());

            DatabaseInternal databaseCore = response.Database as DatabaseInlineCore;

            Assert.IsNotNull(databaseCore);
            Assert.IsNotNull(databaseCore.LinkUri);
            Assert.IsFalse(databaseCore.LinkUri.ToString().StartsWith("/"));

            response = await response.Database.DeleteAsync(cancellationToken : this.cancellationToken);

            Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode);
        }
Example #9
0
        public static async Task createAzureDocumentDatabase(string EndpointUrl, string PrimaryKey)
        {
            var client = new CosmosClient(EndpointUrl, PrimaryKey);
            DatabaseResponse databaseResponse = await client.CreateDatabaseIfNotExistsAsync(dbName);

            Database           database           = databaseResponse;
            DatabaseProperties databaseProperties = databaseResponse;

            // Create a database with a shared manual provisioned throughput
            string databaseIdManual = dbName;

            database = await client.CreateDatabaseIfNotExistsAsync(databaseIdManual, ThroughputProperties.CreateManualThroughput(OfferThroughput));

            ContainerResponse container = await database.CreateContainerIfNotExistsAsync(
                id : collectionName,
                partitionKeyPath : partitionKey,
                throughput : OfferThroughput);



            //Database dataBase = new Database { Id = dbName };
            //await client.CreateDatabaseIfNotExistsAsync(dataBase).ConfigureAwait(false);
            //DocumentCollection myCollection = new DocumentCollection();
            //myCollection.Id = collectionName;
            //myCollection.PartitionKey.Paths.Add(partitionKey);
            //await client.CreateDocumentCollectionIfNotExistsAsync(
            //    UriFactory.CreateDatabaseUri(dbName),
            //    myCollection,
            //    new RequestOptions { OfferThroughput = OfferThroughput }).ConfigureAwait(false);
        }
Example #10
0
        public static async Task <SymsManifestContent> ToDataAsync(CdmManifestDefinition instance, ResolveOptions resOpt, CopyOptions options,
                                                                   bool isDeltaSync = false, IList <TableEntity> existingSymsTables = null, IList <RelationshipEntity> existingSymsRelationships = null)
        {
            var source = CreateDataSource(instance);

            if (source == null)
            {
                return(null);
            }

            var properties = CreateDatabasePropertyBags(instance, resOpt, options);

            Dictionary <string, TableEntity> existingTableEntities = null;
            List <string> removedSymsTable = null;

            if (existingSymsTables != null && existingSymsTables.Count > 0)
            {
                // convert to dictionary for better searching
                existingTableEntities = existingSymsTables.ToDictionary(x => x.Name, x => x);
                removedSymsTable      = existingSymsTables.Select(x => x.Name).Except(instance.Entities.Select(x => x.EntityName)).ToList();
            }
            var addedOrModifiedSymsTables = await CreateSymsTablesObjects(instance, resOpt, options, source.Location, existingTableEntities);

            // TODO : Submanifest

            Dictionary <string, RelationshipEntity> existingRelationshipEntities = null;
            List <string> removedSymsRelationships = null;

            if (existingSymsRelationships != null && existingSymsRelationships.Count > 0)
            {
                existingRelationshipEntities = existingSymsRelationships.ToDictionary(x => x.Name, x => x);
                removedSymsRelationships     = existingSymsRelationships.Select(x => x.Name).Except(instance.Relationships.Select(x => x.Name)).ToList();
            }
            var addedOrModifiedSymsRelationships = CreateRelationships(instance, existingRelationshipEntities, resOpt, options);

            DatabaseProperties dbProperties = new DatabaseProperties
            {
                Description = instance.Explanation != null ? instance.Explanation : $"{instance.ManifestName} syms database",
                Source      = source,
                Properties  = properties
            };

            var databaseEntity = new DatabaseEntity
            {
                Name       = instance.ManifestName,
                Properties = dbProperties,
                Type       = SASEntityType.DATABASE
            };

            return(new SymsManifestContent
            {
                Database = databaseEntity,
                Entities = addedOrModifiedSymsTables,
                Relationships = addedOrModifiedSymsRelationships,
                InitialSync = !isDeltaSync,
                RemovedEntities = removedSymsTable,
                RemovedRelationships = removedSymsRelationships
            });
        }
 public void FixtureSetUp()
 {
     using (var session = SessionFactory.OpenSession())
     {
         var q = DatabasePropertiesMap.CreateQuery(session);
         testedObject = q.UniqueResult<DatabaseProperties>();
     }
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            //load url arguments in variables
            string INSTANCE_NAME = @Request.QueryString["instance"];
            string CATALOG_NAME = Request.QueryString["catalog"];
            string CUBE_NAME = Request.QueryString["cube"];

            //Create Excel file name
            string ConnectionName = INSTANCE_NAME.Replace("\\","_") + "_" + CATALOG_NAME + "_" + CUBE_NAME;
            Response.Write(ConnectionName);

            //Create Workbook
            string filename = Server.MapPath(@"tmp/" + ConnectionName + ".xlsx");
            // Create a spreadsheet document by supplying the filepath.
            // By default, AutoSave = true, Editable = true, and Type = xlsx.
            SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filename, SpreadsheetDocumentType.Workbook);

            // Add a WorkbookPart to the document.
            WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
            workbookpart.Workbook = new Workbook();

            // Add a WorksheetPart to the WorkbookPart.
            WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
            worksheetPart.Worksheet = new Worksheet(new SheetData());

            // Add Sheets to the Workbook.
            Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<Sheets>(new Sheets());

            // Append a new worksheet and associate it with the workbook.
            Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
            sheets.Append(sheet);

            //Add a connectionPart to the workbookpart
            ConnectionsPart connectionsPart1 = workbookpart.AddNewPart<ConnectionsPart>();
            Connections connections1 = new Connections();
            Connection connection1 = new Connection() { Id = (UInt32Value)1U, KeepAlive = true, Name = ConnectionName, Type = (UInt32Value)5U, RefreshedVersion = 5, Background = true };
            DatabaseProperties databaseProperties1 = new DatabaseProperties() { Connection = "Provider=MSOLAP.4;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=" + CATALOG_NAME + ";Data Source=" + @INSTANCE_NAME + ";MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error", Command = CUBE_NAME, CommandType = (UInt32Value)1U };
            OlapProperties olapProperties1 = new OlapProperties() { SendLocale = true, RowDrillCount = (UInt32Value)1000U };
            connection1.Append(databaseProperties1);
            connection1.Append(olapProperties1);
            connections1.Append(connection1);
            connectionsPart1.Connections = connections1;

            //Add a PivottableCache part
            PivotTableCacheDefinitionPart pivotTableCacheDefinitionPart1 = workbookpart.AddNewPart<PivotTableCacheDefinitionPart>();
            PivotCacheDefinition pivotCacheDefinition1 = new PivotCacheDefinition() { SaveData = false, BackgroundQuery = true, SupportSubquery = true, SupportAdvancedDrill = true };
            pivotTableCacheDefinitionPart1.PivotCacheDefinition = pivotCacheDefinition1;

            workbookpart.Workbook.Save();
            // Close the document.
            spreadsheetDocument.Close();

            Response.Clear();
            Response.AddHeader("content-disposition", "attachment; filename=" + @"D:\MyBI\SSAS\SSAS2012_MyBI\tmp\test.xlsx");
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.WriteFile(Server.MapPath(@"tmp/" + ConnectionName + ".xlsx"));
            Response.End();
        }
        public async Task DatabaseNameShouldSetCorrectly()
        {
            DatabaseResponse databaseResponse = await _cosmosContext.Database.ReadAsync();

            DatabaseProperties properties = databaseResponse;
            var actual = properties.Id;

            actual.Should().Be("EmulatorTestDb");
        }
Example #14
0
        /// <summary>
        /// See https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-dotnet-v3sdk-samples
        /// </summary>
        /// <param name="client"></param>
        private static void RunDatabaseDemo(CosmosClient client)
        {
            // An object containing relevant information about the response
            DatabaseResponse databaseResponse =
                client.CreateDatabaseIfNotExistsAsync(databaseId, 400).Result;

            // A client side reference object that allows additional operations like ReadAsync
            Database database = databaseResponse;

            _database = database;

            // The response from Azure Cosmos
            DatabaseProperties properties = databaseResponse;

            Console.WriteLine($"\n1. Create a database resource with id: " +
                              $"{properties.Id} and last modified time stamp: {properties.LastModified}");
            Console.WriteLine($"\n2. Create a database resource request charge: " +
                              $"{databaseResponse.RequestCharge} and Activity Id: {databaseResponse.ActivityId}");

            // Read the database from Azure Cosmos
            DatabaseResponse readResponse = database.ReadAsync().Result;

            Console.WriteLine($"\n3. Read a database: {readResponse.Resource.Id}");

            _container =
                readResponse.Database.CreateContainerAsync("testContainer", "/city").Result;

            // Get the current throughput for the database
            int?throughputResponse = database.ReadThroughputAsync().Result;

            if (throughputResponse.HasValue)
            {
                Console.WriteLine($"\n4. Read a database throughput: {throughputResponse}");

                // Update the current throughput for the database
                database.ReplaceThroughputAsync(11000).Wait();
            }

            Console.WriteLine("\n5. Reading all databases resources for an account");
            using (FeedIterator <DatabaseProperties> iterator =
                       client.GetDatabaseQueryIterator <DatabaseProperties>())
            {
                while (iterator.HasMoreResults)
                {
                    foreach (DatabaseProperties db in iterator.ReadNextAsync().Result)
                    {
                        Console.WriteLine(db.Id);
                    }
                }
            }

            // Delete the database from Azure Cosmos.
            //database.DeleteAsync().Wait();
            //Console.WriteLine($"\n6. Database {database.Id} deleted.");
        }
Example #15
0
        public void DatabaseSettingsDefaults()
        {
            DatabaseProperties dbSettings = new DatabaseProperties();

            Assert.IsNull(dbSettings.LastModified);
            Assert.IsNull(dbSettings.ResourceId);
            Assert.IsNull(dbSettings.Id);
            Assert.IsNull(dbSettings.ETag);

            SettingsContractTests.TypeAccessorGuard(typeof(DatabaseProperties), "Id");
        }
Example #16
0
        public DBProperties(VolumeDatabase db)
        {
            BuildGui();

            this.db = db;
            props   = db.GetDBProperties();

            entName.Text = props.Name;
            tvDescription.Buffer.Text = props.Description;
            entCreated.Text           = props.Created.ToString();
        }
Example #17
0
        public static async Task CreateDatabase(string databaseName)
        {
            WriteLine($"\n>>> Create Database {databaseName} <<<");

            DatabaseResponse result = await Shared.Client.CreateDatabaseIfNotExistsAsync(databaseName);

            DatabaseProperties database = result.Resource;

            // todo check StatusCode

            WriteLine($" Database Id: {database.Id}; Modified: {database.LastModified}");
        }
 public override Task <ResponseMessage> CreateDatabaseStreamAsync(
     DatabaseProperties databaseProperties,
     int?throughput = null,
     RequestOptions requestOptions       = null,
     CancellationToken cancellationToken = default)
 {
     return(this.cosmosClient.CreateDatabaseStreamAsync(
                databaseProperties,
                throughput,
                requestOptions,
                cancellationToken));
 }
Example #19
0
        public async Task ImplicitConversion()
        {
            DatabaseResponse cosmosDatabaseResponse = await this.CreateDatabaseHelper();

            Cosmos.Database    cosmosDatabase         = cosmosDatabaseResponse;
            DatabaseProperties cosmosDatabaseSettings = cosmosDatabaseResponse;

            Assert.IsNotNull(cosmosDatabase);
            Assert.IsNotNull(cosmosDatabaseSettings);

            cosmosDatabaseResponse = await cosmosDatabase.DeleteAsync(cancellationToken : this.cancellationToken);

            cosmosDatabase         = cosmosDatabaseResponse;
            cosmosDatabaseSettings = cosmosDatabaseResponse;
            Assert.IsNotNull(cosmosDatabase);
            Assert.IsNull(cosmosDatabaseSettings);
        }
Example #20
0
        private void DetermineConnections(WorkbookPart workbookPart)
        {
            if (workbookPart.ConnectionsPart != null)
            {
                ConnectionsPart connectionPart = workbookPart.ConnectionsPart;
                foreach (Connection connection in connectionPart.Connections)
                {
                    var connectionInfo = new Connections
                    {
                        Description          = connection.Description,
                        Name                 = connection.Name,
                        ConnectionProperties = new ConnectionProperties()
                    };
                    DatabaseProperties databaseProperties = connection.DatabaseProperties;

                    connectionInfo.ConnectionProperties.Command           = databaseProperties.Command.InnerText;
                    connectionInfo.ConnectionProperties.ConnectionDetails = databaseProperties.Connection.InnerText;

                    this.connections.Add(connectionInfo);
                }
                this.workbook.HasDataConnections = true;
            }
        }
Example #21
0
        public void DatabaseSettingsSerializeTest()
        {
            string id = Guid.NewGuid().ToString();

            DatabaseProperties databaseSettings = new DatabaseProperties()
            {
                Id = id
            };

            Database db = new Database()
            {
                Id = id
            };

            string cosmosSerialized = SettingsContractTests.CosmosSerialize(databaseSettings);
            string directSerialized = SettingsContractTests.DirectSerialize(db);

            // Swap de-serialize and validate
            DatabaseProperties dbDeserSettings = SettingsContractTests.CosmosDeserialize <DatabaseProperties>(directSerialized);
            Database           dbDeser         = SettingsContractTests.DirectDeSerialize <Database>(cosmosSerialized);

            Assert.AreEqual(dbDeserSettings.Id, dbDeser.Id);
            Assert.AreEqual(dbDeserSettings.Id, db.Id);
        }
Example #22
0
 public Database(DatabaseProperties connectionProperties)
 {
     this._connectionProperties = connectionProperties;
 }
Example #23
0
        public async Task ValidateResponseFactoryJsonSerializer()
        {
            ResponseMessage databaseResponse  = this.CreateResponse();
            ResponseMessage containerResponse = this.CreateResponse();
            ResponseMessage storedProcedureExecuteResponse = this.CreateResponse();
            ResponseMessage storedProcedureResponse        = this.CreateResponse();
            ResponseMessage triggerResponse = this.CreateResponse();
            ResponseMessage udfResponse     = this.CreateResponse();
            ResponseMessage itemResponse    = this.CreateResponse();
            ResponseMessage feedResponse    = this.CreateResponse();

            Mock <CosmosSerializer> mockUserJsonSerializer    = new Mock <CosmosSerializer>();
            Mock <CosmosSerializer> mockDefaultJsonSerializer = new Mock <CosmosSerializer>();
            CosmosResponseFactory   cosmosResponseFactory     = new CosmosResponseFactory(
                defaultJsonSerializer: mockDefaultJsonSerializer.Object,
                userJsonSerializer: mockUserJsonSerializer.Object);

            // Test the user specified response
            mockUserJsonSerializer.Setup(x => x.FromStream <ToDoActivity>(itemResponse.Content)).Returns(new ToDoActivity());
            mockUserJsonSerializer.Setup(x => x.FromStream <ToDoActivity>(storedProcedureExecuteResponse.Content)).Returns(new ToDoActivity());
            mockUserJsonSerializer.Setup(x => x.FromStream <CosmosFeedResponseUtil <ToDoActivity> >(feedResponse.Content)).Returns(new CosmosFeedResponseUtil <ToDoActivity>()
            {
                Data = new Collection <ToDoActivity>()
            });

            // Verify all the user types use the user specified version
            await cosmosResponseFactory.CreateItemResponseAsync <ToDoActivity>(Task.FromResult(itemResponse));

            await cosmosResponseFactory.CreateStoredProcedureExecuteResponseAsync <ToDoActivity>(Task.FromResult(storedProcedureExecuteResponse));

            cosmosResponseFactory.CreateResultSetQueryResponse <ToDoActivity>(feedResponse);

            // Throw if the setups were not called
            mockUserJsonSerializer.VerifyAll();

            // Test the system specified response
            ContainerProperties containerSettings = new ContainerProperties("mockId", "/pk");
            DatabaseProperties  databaseSettings  = new DatabaseProperties()
            {
                Id = "mock"
            };

            StoredProcedureProperties cosmosStoredProcedureSettings = new StoredProcedureProperties()
            {
                Id = "mock"
            };

            TriggerProperties cosmosTriggerSettings = new TriggerProperties()
            {
                Id = "mock"
            };

            UserDefinedFunctionProperties cosmosUserDefinedFunctionSettings = new UserDefinedFunctionProperties()
            {
                Id = "mock"
            };

            mockDefaultJsonSerializer.Setup(x => x.FromStream <DatabaseProperties>(databaseResponse.Content)).Returns(databaseSettings);
            mockDefaultJsonSerializer.Setup(x => x.FromStream <ContainerProperties>(containerResponse.Content)).Returns(containerSettings);
            mockDefaultJsonSerializer.Setup(x => x.FromStream <StoredProcedureProperties>(storedProcedureResponse.Content)).Returns(cosmosStoredProcedureSettings);
            mockDefaultJsonSerializer.Setup(x => x.FromStream <TriggerProperties>(triggerResponse.Content)).Returns(cosmosTriggerSettings);
            mockDefaultJsonSerializer.Setup(x => x.FromStream <UserDefinedFunctionProperties>(udfResponse.Content)).Returns(cosmosUserDefinedFunctionSettings);

            Mock <Container> mockContainer = new Mock <Container>();
            Mock <Database>  mockDatabase  = new Mock <Database>();

            // Verify all the system types that should always use default
            await cosmosResponseFactory.CreateContainerResponseAsync(mockContainer.Object, Task.FromResult(containerResponse));

            await cosmosResponseFactory.CreateDatabaseResponseAsync(mockDatabase.Object, Task.FromResult(databaseResponse));

            await cosmosResponseFactory.CreateStoredProcedureResponseAsync(Task.FromResult(storedProcedureResponse));

            await cosmosResponseFactory.CreateTriggerResponseAsync(Task.FromResult(triggerResponse));

            await cosmosResponseFactory.CreateUserDefinedFunctionResponseAsync(Task.FromResult(udfResponse));

            // Throw if the setups were not called
            mockDefaultJsonSerializer.VerifyAll();
        }
Example #24
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, AppDatabase database, EmailService emailService)
        {
            HostEnvironment = env;

            app.UseLiveReload();
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.Use(async(context, next) =>
            {
                await next();
                if (context.Response.StatusCode >= 400 && context.Response.StatusCode <= 499 && !context.Response.HasStarted)
                {
                    context.Request.Path = "/Error";
                    await next();
                }
            });
            app.UseHttpsRedirection();
            app.UseStaticFiles(new StaticFileOptions
            {
                OnPrepareResponse = context =>
                {
                    context.Context.Response.Headers.Add("Cache-Control", "no-cache, no-store");
                    context.Context.Response.Headers.Add("Expires", "-1");
                }
            });
            app.UseRouting();
            app.UseAuthentication();
            app.UseAuthorization();
            app.UseSession();
            app.UseRequestLocalization(app.ApplicationServices.GetService <IOptions <RequestLocalizationOptions> >().Value);
            app.UseMiddleware <LanguageChangeMiddleware>();
            app.UseMiddleware <EnsureSubjectMiddleware>();
            app.UseMiddleware <SubjectChangeMiddleware>();
            app.UseMiddleware <RoleChangeMiddleware>();
            app.UseMiddleware <PhpRedirectMiddleware>();
            app.UseMiddleware <AuthCookieTimeoutMiddleware>();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
                endpoints.MapControllers();
            });

            database.Database.EnsureDeleted();
            database.Database.EnsureCreated();

            var gradeLevelKG = database.GradeLevels.Add(new GradeLevel
            {
                Name = "Kindergarten",
                RegistryConfiguration = new RegistryConfiguration
                {
                    StartTime = TimeSpan.FromHours(8),
                    Slots     = Enumerable.Range(0, 2).Select(_ => new RegistryTimeSlot
                    {
                        Duration = 1,
                        HasClass = true,
                        HasText  = true
                    }).Concat(new[]
                    {
                        new RegistryTimeSlot
                        {
                            Duration = 2,
                            HasClass = true,
                            HasText  = true
                        }
                    }).Concat(Enumerable.Range(0, 1).Select(_ => new RegistryTimeSlot
                    {
                        Duration = 1,
                        HasClass = true,
                        HasText  = true
                    })).Concat(new[]
                    {
                        new RegistryTimeSlot
                        {
                            Duration = 2,
                            HasClass = true,
                            HasText  = true
                        }
                    }).Concat(new[]
                    {
                        new RegistryTimeSlot
                        {
                            Duration = 2,
                            HasClass = true,
                            HasText  = true
                        }
                    }).Concat(new[]
                    {
                        new RegistryTimeSlot
                        {
                            Duration    = 3,
                            HasClass    = true,
                            HasText     = true,
                            CustomLabel = "Others"
                        }
                    }).ToList()
                }
            }).Entity;
            var gradeElementaryStep = database.GradeLevels.Add(new GradeLevel
            {
                Name = "Elementary (step)",
                RegistryConfiguration = new RegistryConfiguration
                {
                    StartTime = TimeSpan.FromHours(8),
                    Slots     = Enumerable.Range(0, 2).Select(_ => new RegistryTimeSlot
                    {
                        Duration = 1,
                        HasClass = true,
                        HasText  = true
                    }).Concat(new[]
                    {
                        new RegistryTimeSlot
                        {
                            Duration = 3,
                            HasClass = true,
                            HasText  = true
                        }
                    }).Concat(Enumerable.Range(0, 5).Select(_ => new RegistryTimeSlot
                    {
                        Duration = 1,
                        HasClass = true,
                        HasText  = true
                    })).ToList()
                }
            }).Entity;
            var gradeElementary = database.GradeLevels.Add(new GradeLevel
            {
                Name = "Elementary",
                RegistryConfiguration = new RegistryConfiguration
                {
                    StartTime = TimeSpan.FromHours(8),
                    Slots     = Enumerable.Range(0, 10).Select(_ => new RegistryTimeSlot
                    {
                        Duration   = 1,
                        HasClass   = true,
                        HasSubject = true,
                        HasText    = true
                    }).ToList()
                },
                EmailOnGradeAdded          = true,
                EmailOnGradeDeleted        = true,
                EmailOnAbsenceAdded        = true,
                EmailOnAbsenceDeleted      = true,
                EmailOnDisciplinaryAdded   = true,
                EmailOnDisciplinaryDeleted = true
            }).Entity;
            var gradeMiddle = database.GradeLevels.Add(new GradeLevel
            {
                Name = "Middle",
                RegistryConfiguration = new RegistryConfiguration
                {
                    StartTime = TimeSpan.FromHours(7),
                    Slots     = Enumerable.Range(0, 11).Select(_ => new RegistryTimeSlot
                    {
                        Duration   = 1,
                        HasClass   = true,
                        HasSubject = true,
                        HasText    = true,
                        HasPCO     = true
                    }).ToList()
                }
            }).Entity;

            database.SaveChanges();

            var adminGroup = database.Groups.Add(new Group {
                GroupType = GroupType.Admin, Name = "Administrators"
            });
            var teacherGroup = database.Groups.Add(new Group {
                GroupType = GroupType.Teacher, Name = "Teachers"
            });
            var adminUser = database.Users.Add(new User
            {
                FullName          = "Administrator",
                LoginName         = "admin",
                PasswordHash      = "AQAAAAEAACcQAAAAEBFsY1RMVJIl9QZM2pFvdjhJQbC/OwzYV+j3JaP2hXCnhaPIyHDBPXrF3Ye3tHxAmA==",
                LastLogin         = DateTime.Now,
                TeacherGradeLevel = gradeLevelKG
            });

            adminUser.Entity.Groups = new List <Group> {
                adminGroup.Entity, teacherGroup.Entity
            };
            var teacherUser = database.Users.Add(new User
            {
                FullName          = "Test Teacher",
                LoginName         = "tteacher1",
                PasswordHash      = "AQAAAAEAACcQAAAAEBFsY1RMVJIl9QZM2pFvdjhJQbC/OwzYV+j3JaP2hXCnhaPIyHDBPXrF3Ye3tHxAmA==",
                LastLogin         = DateTime.Now,
                TeacherGradeLevel = gradeElementary
            });

            teacherUser.Entity.Groups = new List <Group> {
                teacherGroup.Entity
            };

            var classGroup1 = database.Groups.Add(new Group {
                GroupType = GroupType.Class, GradeLevel = gradeElementary, Name = "IV.A"
            });
            var classGroup2 = database.Groups.Add(new Group {
                GroupType = GroupType.Class, GradeLevel = gradeMiddle, Name = "VII.B"
            });

            var s1 = database.Subjects.Add(new Subject {
                Name = "Programming", RegistryName = "I.T.", HasMidterm = true
            }).Entity;
            var s2 = database.Subjects.Add(new Subject {
                Name = "English", RegistryName = "Foreign language"
            }).Entity;

            s1.Classes = new List <Group> {
                classGroup1.Entity, classGroup2.Entity
            };
            s1.Teachers = new List <User> {
                adminUser.Entity
            };
            s2.Teachers = new List <User> {
                adminUser.Entity
            };

            adminUser.Entity.TaughtClasses = new List <Group> {
                classGroup1.Entity, classGroup2.Entity
            };
            teacherUser.Entity.TaughtClasses = new List <Group> {
                classGroup1.Entity, classGroup2.Entity
            };
            teacherUser.Entity.TaughtSubjects = new List <Subject> {
                s1, s2
            };

            classGroup1.Entity.FormMaster = adminUser.Entity;
            classGroup1.Entity.Subjects   = new List <Subject> {
                s1, s2
            };
            classGroup2.Entity.Subjects = new List <Subject> {
                s1, s2
            };

            database.SaveChanges();

            var student = database.Users.Add(new User
            {
                FullName          = $"Student_1",
                LoginName         = $"s1",
                PasswordHash      = "AQAAAAEAACcQAAAAEBFsY1RMVJIl9QZM2pFvdjhJQbC/OwzYV+j3JaP2hXCnhaPIyHDBPXrF3Ye3tHxAmA==",
                NotificationEmail = "*****@*****.**"
            }).Entity;

            student.Groups = new List <Group> {
                classGroup1.Entity
            };

            var rand = new Random();

            for (int i = 0; i < 20; i++)
            {
                database.Grades.Add(new Grade
                {
                    Student  = student,
                    Semester = rand.Next(0, 2) == 0 ? 1 : 2,
                    Teacher  = adminUser.Entity,
                    Value    = rand.Next(1, 10),
                    Date     = DateTime.Today - TimeSpan.FromDays(rand.Next(1, 230)),
                    Subject  = rand.Next(0, 2) == 0 ? s1 : s2
                });
                database.Absences.Add(new Absence
                {
                    Student  = student,
                    Semester = rand.Next(0, 2) == 0 ? 1 : 2,
                    Teacher  = adminUser.Entity,
                    Date     = DateTime.Today - TimeSpan.FromDays(rand.Next(1, 230)),
                    Subject  = rand.Next(0, 2) == 0 ? s1 : s2,
                    Comment  = Guid.NewGuid().ToString(),
                    Verified = rand.Next(0, 3) == 0
                });
                database.Disciplinary.Add(new Disciplinary
                {
                    Student  = student,
                    Semester = rand.Next(0, 2) == 0 ? 1 : 2,
                    Teacher  = adminUser.Entity,
                    Date     = DateTime.Today - TimeSpan.FromDays(rand.Next(1, 230)),
                    Subject  = rand.Next(0, 2) == 0 ? s1 : s2,
                    Comment  = Guid.NewGuid().ToString(),
                    Points   = 0 - rand.Next(1, 11)
                });
            }

            database.DisciplinaryPresets.Add(new DisciplinaryPreset {
                Text = "stupid", Value = -1
            });
            database.DisciplinaryPresets.Add(new DisciplinaryPreset {
                Text = "dumb f**k", Value = -10
            });

            database.RegistryEntries.Add(new RegistryEntry
            {
                Class      = classGroup1.Entity,
                Subject    = s1,
                Teacher    = adminUser.Entity,
                Text       = "asdasdasd",
                EntryDate  = DateTime.Now,
                ModifyDate = DateTime.Now,
                Date       = DateTime.Parse("2021-03-09 08:00:00")
            });
            database.RegistryEntries.Add(new RegistryEntry
            {
                Class      = classGroup1.Entity,
                Subject    = s1,
                Teacher    = adminUser.Entity,
                Text       = "qwe",
                EntryDate  = DateTime.Now,
                ModifyDate = DateTime.Now,
                Date       = DateTime.Parse("2021-03-10 09:00:00")
            });

            var properties = new DatabaseProperties(database);

            database.SaveChanges();

            emailService.TryConnecting();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            //load url arguments in variables
            string INSTANCE_NAME = @Request.QueryString["instance"];
            string CATALOG_NAME  = Request.QueryString["catalog"];
            string CUBE_NAME     = Request.QueryString["cube"];

            //Create Excel file name
            string ConnectionName = INSTANCE_NAME.Replace("\\", "_") + "_" + CATALOG_NAME + "_" + CUBE_NAME;

            Response.Write(ConnectionName);


            //Create Workbook
            string filename = Server.MapPath(@"tmp/" + ConnectionName + ".xlsx");
            // Create a spreadsheet document by supplying the filepath.
            // By default, AutoSave = true, Editable = true, and Type = xlsx.
            SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filename, SpreadsheetDocumentType.Workbook);

            // Add a WorkbookPart to the document.
            WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();

            workbookpart.Workbook = new Workbook();

            // Add a WorksheetPart to the WorkbookPart.
            WorksheetPart worksheetPart = workbookpart.AddNewPart <WorksheetPart>();

            worksheetPart.Worksheet = new Worksheet(new SheetData());

            // Add Sheets to the Workbook.
            Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild <Sheets>(new Sheets());

            // Append a new worksheet and associate it with the workbook.
            Sheet sheet = new Sheet()
            {
                Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet"
            };

            sheets.Append(sheet);

            //Add a connectionPart to the workbookpart
            ConnectionsPart connectionsPart1 = workbookpart.AddNewPart <ConnectionsPart>();
            Connections     connections1     = new Connections();
            Connection      connection1      = new Connection()
            {
                Id = (UInt32Value)1U, KeepAlive = true, Name = ConnectionName, Type = (UInt32Value)5U, RefreshedVersion = 5, Background = true
            };
            DatabaseProperties databaseProperties1 = new DatabaseProperties()
            {
                Connection = "Provider=MSOLAP.4;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=" + CATALOG_NAME + ";Data Source=" + @INSTANCE_NAME + ";MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error", Command = CUBE_NAME, CommandType = (UInt32Value)1U
            };
            OlapProperties olapProperties1 = new OlapProperties()
            {
                SendLocale = true, RowDrillCount = (UInt32Value)1000U
            };

            connection1.Append(databaseProperties1);
            connection1.Append(olapProperties1);
            connections1.Append(connection1);
            connectionsPart1.Connections = connections1;

            //Add a PivottableCache part
            PivotTableCacheDefinitionPart pivotTableCacheDefinitionPart1 = workbookpart.AddNewPart <PivotTableCacheDefinitionPart>();
            PivotCacheDefinition          pivotCacheDefinition1          = new PivotCacheDefinition()
            {
                SaveData = false, BackgroundQuery = true, SupportSubquery = true, SupportAdvancedDrill = true
            };

            pivotTableCacheDefinitionPart1.PivotCacheDefinition = pivotCacheDefinition1;

            workbookpart.Workbook.Save();
            // Close the document.
            spreadsheetDocument.Close();

            Response.Clear();
            Response.AddHeader("content-disposition", "attachment; filename=" + @"D:\MyBI\SSAS\SSAS2012_MyBI\tmp\test.xlsx");
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.WriteFile(Server.MapPath(@"tmp/" + ConnectionName + ".xlsx"));
            Response.End();
        }
Example #26
0
        private static void SetConnectionStartDatabaseOperation(ProductDbType dbType, DatabaseProperties databaseProperties, string operation)
        {
            var productDatabase = new ProductDatabase();

            if (productDatabase.SetConnection(dbType, databaseProperties))
            {
                OperationType operationType = productDatabase.GetOperationType(operation);
                productDatabase.StartDatabaseOperation(operationType);
            }
            else
            {
                throw new Exception(Messages.ErrorMessage001);
            }
        }
Example #27
0
        private static void ExecuteArguments(string[] args)
        {
            if (args.Length > 0)
            {
                string argMaster = args[0].ToLower();
                if (argMaster == "-newupdt")
                {
                    if (!FileHelper.CreateNextUpdateFolders())
                    {
                        othersLogger.Error(Messages.ErrorMessage020);
                        Environment.ExitCode = -1;
                    }
                }
                else if (argMaster == "-oracle")
                {// -oracle owner password tnsname td ti [i|u|gint|compare]
                    if (args.Length == 7)
                    {
                        var    databaseProperties = new DatabaseProperties(args[1], args[2], args[3], args[4], args[5]);
                        string operation          = args[6];
                        SetConnectionStartDatabaseOperation(ProductDbType.Oracle, databaseProperties, operation);
                    }
                    else
                    {
                        othersLogger.Error(Messages.ErrorMessage023);
                        Environment.ExitCode = -1;
                    }
                }
                else if (argMaster == "-sqlserver")
                {// -sqlserver user password server databaseName install ||OR|| -sqlserver trusted server databaseName [i|u]
                    if (args.Length >= 4)
                    {
                        DatabaseProperties databaseProperties;
                        string             operation;

                        if (args.Length == 6)
                        {
                            operation          = args[5];
                            databaseProperties = new DatabaseProperties(args[1], args[2], args[3], args[4], false);
                        }
                        else if (args.Length == 4)
                        {
                            operation          = args[3];
                            databaseProperties = new DatabaseProperties(null, null, args[1], args[2], true);
                        }
                        else
                        {
                            othersLogger.Error(Messages.ErrorMessage023);
                            Environment.ExitCode = -1;
                            return;
                        }

                        SetConnectionStartDatabaseOperation(ProductDbType.SqlServer, databaseProperties, operation);
                    }
                    else
                    {
                        othersLogger.Error(Messages.ErrorMessage023);
                        Environment.ExitCode = -1;
                    }
                }
            }
        }
Example #28
0
        public static CdmManifestDefinition FromObject(CdmCorpusContext ctx, string docName, string nameSpace, string path, SymsManifestContent dataObj)
        {
            DatabaseEntity database = dataObj.Database;

            if (database == null || database.Type != SASEntityType.DATABASE)
            {
                Logger.Error((ResolveContext)ctx, Tag, nameof(FromObject), null, CdmLogCode.ErrPersistSymsInvalidDbObject);
                return(null);
            }

            DatabaseProperties databaseProperties = ((JToken)database.Properties).ToObject <DatabaseProperties>();

            if (databaseProperties == null || databaseProperties.Source == null)
            {
                Logger.Error((ResolveContext)ctx, Tag, nameof(FromObject), null, CdmLogCode.ErrPersistSymsInvalidDbPropObject);
                return(null);
            }

            var properties = databaseProperties.Properties;
            var manifest   = ctx.Corpus.MakeObject <CdmManifestDefinition>(CdmObjectType.ManifestDef);

            manifest.ManifestName = dataObj.Database.Name;
            manifest.Name         = docName;
            manifest.FolderPath   = path;
            manifest.Namespace    = nameSpace;
            manifest.Explanation  = databaseProperties.Description;

            if (properties != null)
            {
                if (properties.ContainsKey("cdm:schema"))
                {
                    manifest.Schema = properties["cdm:schema"].ToObject <string>();
                }
                if (properties.ContainsKey("cdm:jsonSchemaSemanticVersion"))
                {
                    manifest.JsonSchemaSemanticVersion = properties["cdm:jsonSchemaSemanticVersion"].ToObject <string>();
                }
                if (properties.ContainsKey("cdm:documentVersion"))
                {
                    manifest.DocumentVersion = properties["cdm:documentVersion"].ToObject <string>();
                }
                else if (properties.ContainsKey("cdm:traits"))
                {
                    Utils.AddListToCdmCollection(manifest.ExhibitsTraits, Utils.CreateTraitReferenceList(ctx, properties["cdm:traits"]));
                }
                if (properties.ContainsKey("cdm:imports"))
                {
                    foreach (var importObj in properties["cdm:imports"].ToObject <List <Import> >())
                    {
                        manifest.Imports.Add(ImportPersistence.FromData(ctx, importObj));
                    }
                }
                if (properties.ContainsKey("cdm:lastFileStatusCheckTime"))
                {
                    manifest.LastFileStatusCheckTime = DateTimeOffset.Parse(properties["cdm:lastFileStatusCheckTime"].ToObject <string>());
                }
                if (properties.ContainsKey("cdm:lastFileModifiedTime"))
                {
                    manifest.LastFileModifiedTime = DateTimeOffset.Parse(properties["cdm:lastFileModifiedTime"].ToObject <string>());
                }
                if (properties.ContainsKey("cdm:lastChildFileModifiedTime"))
                {
                    manifest.LastChildFileModifiedTime = DateTimeOffset.Parse(properties["cdm:lastChildFileModifiedTime"].ToObject <string>());
                }
            }

            var t2pm        = new TraitToPropertyMap(manifest);
            var sourceTrait = t2pm.FetchTraitReference(dbLocationTrait);

            if (sourceTrait == null)
            {
                sourceTrait = Utils.CreateSourceTrait(ctx, dbLocationTrait, dbLocationTraitArgName);
                manifest.ExhibitsTraits.Add(sourceTrait);
            }

            var adlsPath       = Utils.SymsPathToAdlsAdapterPath(databaseProperties.Source.Location);
            var adlsCorpusPath = ctx.Corpus.Storage.AdapterPathToCorpusPath(adlsPath);

            if (adlsCorpusPath == null)
            {
                Tuple <string, string> pathTuple = StorageUtils.SplitNamespacePath(sourceTrait.Arguments[0].Value);
                if (null == Utils.CreateAndMountAdlsAdapterFromAdlsPath(ctx.Corpus.Storage, adlsPath, pathTuple.Item1))
                {
                    Logger.Error((ResolveContext)ctx, Tag, nameof(FromObject), null, CdmLogCode.ErrPersistSymsAdlsAdapterNotMounted, adlsPath);
                    return(null);
                }
            }

            if (dataObj.Entities != null)
            {
                foreach (var entityObj in dataObj.Entities)
                {
                    if (entityObj.Type == SASEntityType.TABLE)
                    {
                        var entity = LocalEntityDeclarationPersistence.FromData(ctx, entityObj, manifest, databaseProperties.Source.Location);
                        if (entity != null)
                        {
                            manifest.Entities.Add(entity);
                        }
                        else
                        {
                            Logger.Warning((ResolveContext)ctx, Tag, nameof(FromObject), null, CdmLogCode.WarnPersistSymsEntitySkipped, entityObj.Name);
                        }
                    }
                }
            }

            if (!manifest.Imports.Any((CdmImport importPresent) => importPresent.CorpusPath == Constants.FoundationsCorpusPath))
            {
                manifest.Imports.Add(Constants.FoundationsCorpusPath);
            }

            if (dataObj.Relationships != null)
            {
                foreach (var relationshipEntity in dataObj.Relationships)
                {
                    manifest.Relationships.AddRange(E2ERelationshipPersistence.FromData(ctx, relationshipEntity));
                }
            }

            // TODO : Submanifest
            return(manifest);
        }
        // Generates content of connectionsPart1.
        private void GenerateConnectionsPart1Content(ConnectionsPart connectionsPart1)
        {
            Connections connections1 = new Connections();

            Connection connection1 = new Connection(){ Id = (UInt32Value)1U, ConnectionFile = "C:\\Users\\pberruti\\Documents\\My Data Sources\\xlextdat105 Timestamps\\DAT105 Timestamp - Foodmart 2000 account.odc", Name = "DAT105 Timestamp - Foodmart 2000 account", Type = (UInt32Value)100U, RefreshedVersion = 5, MinRefreshableVersion = 5, Background = true };

            ConnectionExtensionList connectionExtensionList1 = new ConnectionExtensionList();

            ConnectionExtension connectionExtension1 = new ConnectionExtension(){ Uri = "{DE250136-89BD-433C-8126-D09CA5730AF9}" };
            connectionExtension1.AddNamespaceDeclaration("x15", "http://schemas.microsoft.com/office/spreadsheetml/2010/11/main");

            X15.Connection connection2 = new X15.Connection(){ Id = "d500245d-c151-4de3-9436-83c6e82b7f22", AutoDelete = true };

            X15.OleDbPrpoperties oleDbPrpoperties1 = new X15.OleDbPrpoperties(){ Connection = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=xlextdat105;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=PB07641564SHIP;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=Foodmart 2000" };
            X15.DbCommand dbCommand1 = new X15.DbCommand(){ Text = "SELECT *, suser_name() CurrentUser, current_timestamp RefreshTime FROM \"Foodmart 2000\".\"dbo\".\"account\"" };

            oleDbPrpoperties1.Append(dbCommand1);

            connection2.Append(oleDbPrpoperties1);

            connectionExtension1.Append(connection2);

            connectionExtensionList1.Append(connectionExtension1);

            connection1.Append(connectionExtensionList1);

            Connection connection3 = new Connection(){ Id = (UInt32Value)2U, KeepAlive = true, Name = "ModelConnection_Query", Description = "Model", Type = (UInt32Value)5U, RefreshedVersion = 5, MinRefreshableVersion = 3, SaveData = true };
            DatabaseProperties databaseProperties1 = new DatabaseProperties(){ Connection = "Data Model Connection", Command = "Query", CommandType = (UInt32Value)3U };

            ConnectionExtensionList connectionExtensionList2 = new ConnectionExtensionList();

            ConnectionExtension connectionExtension2 = new ConnectionExtension(){ Uri = "{DE250136-89BD-433C-8126-D09CA5730AF9}" };
            connectionExtension2.AddNamespaceDeclaration("x15", "http://schemas.microsoft.com/office/spreadsheetml/2010/11/main");
            X15.Connection connection4 = new X15.Connection(){ Id = "", Model = true };

            connectionExtension2.Append(connection4);

            connectionExtensionList2.Append(connectionExtension2);

            connection3.Append(databaseProperties1);
            connection3.Append(connectionExtensionList2);

            Connection connection5 = new Connection(){ Id = (UInt32Value)3U, KeepAlive = true, Name = "ThisWorkbookDataModel", Description = "Model", Type = (UInt32Value)5U, RefreshedVersion = 5, MinRefreshableVersion = 5, Background = true };
            DatabaseProperties databaseProperties2 = new DatabaseProperties(){ Connection = "Data Model Connection", Command = "Model", CommandType = (UInt32Value)1U };
            OlapProperties olapProperties1 = new OlapProperties(){ SendLocale = true, RowDrillCount = (UInt32Value)1000U };

            ConnectionExtensionList connectionExtensionList3 = new ConnectionExtensionList();

            ConnectionExtension connectionExtension3 = new ConnectionExtension(){ Uri = "{DE250136-89BD-433C-8126-D09CA5730AF9}" };
            connectionExtension3.AddNamespaceDeclaration("x15", "http://schemas.microsoft.com/office/spreadsheetml/2010/11/main");
            X15.Connection connection6 = new X15.Connection(){ Id = "", Model = true };

            connectionExtension3.Append(connection6);

            connectionExtensionList3.Append(connectionExtension3);

            connection5.Append(databaseProperties2);
            connection5.Append(olapProperties1);
            connection5.Append(connectionExtensionList3);

            connections1.Append(connection1);
            connections1.Append(connection3);
            connections1.Append(connection5);

            connectionsPart1.Connections = connections1;
        }
 public ManagementApiController(IRazorPartialToStringRenderer partialToStringRenderer, DatabaseProperties properties, EmailService emailService)
 {
     this.partialToStringRenderer = partialToStringRenderer;
     this.properties   = properties;
     this.emailService = emailService;
 }
Example #31
0
        public void ValidateResponseFactoryJsonSerializer()
        {
            ResponseMessage databaseResponse  = this.CreateResponse();
            ResponseMessage containerResponse = this.CreateResponse();
            ResponseMessage storedProcedureExecuteResponse = this.CreateResponse();
            ResponseMessage storedProcedureResponse        = this.CreateResponse();
            ResponseMessage triggerResponse = this.CreateResponse();
            ResponseMessage udfResponse     = this.CreateResponse();
            ResponseMessage itemResponse    = this.CreateResponse();


            Mock <CosmosSerializer>       mockUserJsonSerializer = new Mock <CosmosSerializer>();
            CosmosSerializerCore          serializerCore         = new CosmosSerializerCore(mockUserJsonSerializer.Object);
            CosmosResponseFactoryInternal cosmosResponseFactory  = new CosmosResponseFactoryCore(
                serializerCore);

            // Test the user specified response
            mockUserJsonSerializer.Setup(x => x.FromStream <ToDoActivity>(itemResponse.Content)).Callback <Stream>(input => input.Dispose()).Returns(new ToDoActivity());
            mockUserJsonSerializer.Setup(x => x.FromStream <ToDoActivity>(storedProcedureExecuteResponse.Content)).Callback <Stream>(input => input.Dispose()).Returns(new ToDoActivity());

            // Verify all the user types use the user specified version
            cosmosResponseFactory.CreateItemResponse <ToDoActivity>(itemResponse);
            cosmosResponseFactory.CreateStoredProcedureExecuteResponse <ToDoActivity>(storedProcedureExecuteResponse);

            // Throw if the setups were not called
            mockUserJsonSerializer.VerifyAll();

            // Test read feed scenario
            ResponseMessage readFeedResponse = this.CreateReadFeedResponse();

            mockUserJsonSerializer.Setup(x => x.FromStream <ToDoActivity[]>(It.IsAny <Stream>()))
            .Callback <Stream>(input => input.Dispose())
            .Returns(new ToDoActivity[] { new ToDoActivity() });
            FeedResponse <ToDoActivity> feedResponse = cosmosResponseFactory.CreateItemFeedResponse <ToDoActivity>(readFeedResponse);

            foreach (ToDoActivity toDoActivity in feedResponse)
            {
                Assert.IsNotNull(toDoActivity);
            }

            mockUserJsonSerializer.VerifyAll();

            ResponseMessage             changeFeedResponseMessage = this.CreateChangeFeedNotModifiedResponse();
            FeedResponse <ToDoActivity> changeFeedResponse        = cosmosResponseFactory.CreateItemFeedResponse <ToDoActivity>(changeFeedResponseMessage);

            Assert.AreEqual(HttpStatusCode.NotModified, changeFeedResponse.StatusCode);
            Assert.IsFalse(changeFeedResponse.Resource.Any());

            ResponseMessage queryResponse = this.CreateReadFeedResponse();

            mockUserJsonSerializer.Setup(x => x.FromStream <ToDoActivity[]>(It.IsAny <Stream>())).Callback <Stream>(input => input.Dispose()).Returns(new ToDoActivity[] { new ToDoActivity() });
            FeedResponse <ToDoActivity> queryFeedResponse = cosmosResponseFactory.CreateItemFeedResponse <ToDoActivity>(queryResponse);

            foreach (ToDoActivity toDoActivity in queryFeedResponse)
            {
                Assert.IsNotNull(toDoActivity);
            }

            mockUserJsonSerializer.VerifyAll();

            // Test the system specified response
            ContainerProperties containerSettings = new ContainerProperties("mockId", "/pk");
            DatabaseProperties  databaseSettings  = new DatabaseProperties()
            {
                Id = "mock"
            };

            StoredProcedureProperties cosmosStoredProcedureSettings = new StoredProcedureProperties()
            {
                Id = "mock"
            };

            TriggerProperties cosmosTriggerSettings = new TriggerProperties()
            {
                Id = "mock"
            };

            UserDefinedFunctionProperties cosmosUserDefinedFunctionSettings = new UserDefinedFunctionProperties()
            {
                Id = "mock"
            };

            Mock <Container> mockContainer = new Mock <Container>();
            Mock <Database>  mockDatabase  = new Mock <Database>();

            // Verify all the system types that should always use default
            cosmosResponseFactory.CreateContainerResponse(mockContainer.Object, containerResponse);
            cosmosResponseFactory.CreateDatabaseResponse(mockDatabase.Object, databaseResponse);
            cosmosResponseFactory.CreateStoredProcedureResponse(storedProcedureResponse);
            cosmosResponseFactory.CreateTriggerResponse(triggerResponse);
            cosmosResponseFactory.CreateUserDefinedFunctionResponse(udfResponse);
        }
Example #32
0
 protected BaseDatabaseOperationFunctions(DatabaseProperties databaseProperties)
 {
     DatabaseProperties = databaseProperties;
 }
Example #33
0
 private static void DescribeDatabase(DatabaseProperties database)
 {
     Console.WriteLine($"Database Id: {database.Id}; Modified: {database.LastModified}");
 }
Example #34
0
 public EmailService(AppDatabase database, DatabaseProperties databaseProperties, IRazorPartialToStringRenderer partialToStringRenderer)
 {
     this.database                = database;
     this.databaseProperties      = databaseProperties;
     this.partialToStringRenderer = partialToStringRenderer;
 }