Esempio n. 1
0
        public static void ReadTransportFile(
            [SqlFacet(MaxSize = 255, IsNullable = false)] SqlString fullFileName,
            [SqlFacet(MaxSize = 255, IsNullable = false)] SqlString serverName,
            [SqlFacet(MaxSize = 255, IsNullable = false)] SqlString databaseName,
            [SqlFacet(MaxSize = 255, IsNullable = false)] SqlString tableName,
            [SqlFacet(MaxSize = 255, IsNullable = false)] SqlString userName,
            [SqlFacet(MaxSize = 255, IsNullable = false)] SqlString password)
        {
            if (fullFileName.IsNull)
            {
                throw new ArgumentNullException("fullFileName");
            }
            if (tableName.IsNull)
            {
                throw new ArgumentNullException("serverName");
            }
            if (tableName.IsNull)
            {
                throw new ArgumentNullException("databaseName");
            }
            if (tableName.IsNull)
            {
                throw new ArgumentNullException("tableName");
            }
            if (userName.IsNull)
            {
                throw new ArgumentNullException("userName");
            }
            if (password.IsNull)
            {
                throw new ArgumentNullException("password");
            }

            using (var input = new FileStream(fullFileName.Value, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                var      reader   = new OfflineDataPackReader();
                DataPack dataPack = reader.Read(input, "RRTFv6");

                var dataPart = dataPack.DataParts[0];

                var connectionString = string.Format(@"Server={0};Database={1};User Id={2};Password={3};", serverName, databaseName, userName, password);

                using (var partStream = dataPart.GetStream())
                    using (var dataReader = DataSerializer.Deserialize(partStream))
                        using (var connection = new SqlConnection(connectionString))
                        {
                            connection.Open();

                            using (var bulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.Default, null))
                            {
                                bulkCopy.DestinationTableName = tableName.Value;
                                bulkCopy.BatchSize            = 500;

                                bulkCopy.WriteToServer(dataReader);
                            }
                        }
            }
        }
        public void Read_SerializeAndDeserializeDataPack1_GetsExpectedDataPack()
        {
            var target = new OfflineDataPackReader();
            var writer = new OfflineDataPackWriter();

            DataPack expected = TestHelper.Defaults.DataPack1();
            DataPack actual;

            using (var stream = new MemoryStream())
            {
                writer.Write(expected, stream);
                stream.Position = 0;
                actual          = target.Read(stream, expected.GetPrefix());
            }

            TestHelper.Assertion.AreEqual(expected, actual);
        }
        public void Read_DefaultDataStream_GetsExpectedDataPack()
        {
            var target = new OfflineDataPackReader();

            DataPack actual;

            using (var stream = TestHelper.Defaults.Stream1())
            {
                stream.Position = 0;
                actual          = target.Read(stream, (string)null);
            }

            Assert.AreEqual(actual.PrefixSize, (byte)0);
            Assert.IsNull(actual.DateCreate, "DateCreate is not null");
            Assert.IsNull(actual.Description, "Description is not null");
            Assert.AreEqual(actual.Headers.Count, 0);
            Assert.AreEqual(actual.Properties.Count, 0);
            Assert.AreEqual(actual.DataParts.Count, 0);
        }