Exemplo n.º 1
0
        public async Task UploadTestTumblrs()
        {
            var uriFactory         = new UriFactory();
            var tableEntityFactory = new TableEntityFactory(uriFactory);

            var uploadBlobCommand   = new UploadBlobFromStreamCommand();
            var generateSCommand    = new ResizeCommand(ResizeCommand.ScalingType.CropScaling, 128);
            var generateMCommand    = new ResizeCommand(ResizeCommand.ScalingType.CropScaling, 300);
            var generateLCommand    = new ResizeCommand(ResizeCommand.ScalingType.FitScaling, 1280);
            var createTumblrCommand = new CreateTumblrCommand
            {
                UriFactory         = uriFactory,
                TableEntityFactory = tableEntityFactory
            };
            var createTableEntitiesCommand = new CreateTableEntitiesCommand();
            var command = new WriteTumblrCommand(
                _azureStorage, uploadBlobCommand,
                generateLCommand, generateMCommand, generateSCommand,
                createTumblrCommand,
                createTableEntitiesCommand);

            foreach (var testImage in GetTestImages())
            {
                using (Stream stream = File.OpenRead(testImage))
                {
                    // upload
                    dynamic pTumblr = new ExpandoObject();

                    // Blob
                    pTumblr.Container = await _azureStorage.GetContainerReferenceAsync(LvConstants.ContainerNameOfImage);

                    pTumblr.Stream   = stream;
                    pTumblr.BlobName = Path.GetFileName(testImage);

                    // Create Tumblr
                    pTumblr.PartitionKey = LvConstants.MediaTypeOfImage;
                    pTumblr.TumblrText   = new TumblrText
                    {
                        Text     = "你也曾当过笨蛋,也曾试着当瞎子当聋子的去信任一个人,你也知道世界上最可悲的就是自我欺骗,但是人笨过傻过瞎过就够了,你更要懂得爱自己,而不是一直重蹈覆辙,还自以为多痴情。",
                        Category = TumblrCategory.C2
                    };

                    // Table
                    pTumblr.Table = await _azureStorage.GetTableReferenceAsync(LvConstants.TableNameOfTumblr);

                    // Execute
                    await command.ExecuteAsync(pTumblr);

                    // Create Tumblr End
                }
            }
        }
Exemplo n.º 2
0
        public async Task Crud()
        {
            ICommand createCommand      = new CreateTableEntitiesCommand();
            ICommand readCommand        = new ReadTableEntitiesCommand <TestTableEntity>();
            ICommand updateCommand      = new UpdateTableEntitiesCommand();
            ICommand deleteCommand      = new DeleteTableEntitiesCommand();
            ICommand deleteTableCommand = new DeleteTableCommand();

            var       partitionKey = Guid.NewGuid().ToString();
            const int count        = 5;
            var       entities     = new List <TestTableEntity>();

            for (var i = 0; i < count; i++)
            {
                entities.Add(new TestTableEntity
                {
                    PartitionKey = partitionKey,
                    RowKey       = Guid.NewGuid().ToString(),
                    Text         = i.ToString()
                });
            }

            var filter = TableQuery.GenerateFilterCondition(LvConstants.PartitionKey, QueryComparisons.Equal,
                                                            partitionKey);

            // create
            dynamic c = await GetInitialExpandoObjectAsync();

            c.Entities = entities;
            await createCommand.ExecuteAsync(c);

            // read
            dynamic r = await GetInitialExpandoObjectAsync();

            r.Filter = filter;
            await readCommand.ExecuteAsync(r);

            List <TestTableEntity> entitiesR = r.Entities;

            Assert.True(entities.ToJsonString().CosineEqual(entitiesR.ToJsonString()));

            // update
            var entities2   = entities.CloneByJson();
            var updatedText = Guid.NewGuid().ToString();

            foreach (var entity in entities2)
            {
                entity.Text = updatedText;
            }
            dynamic u = await GetInitialExpandoObjectAsync();

            u.Entities = entities2;
            await updateCommand.ExecuteAsync(u);

            dynamic r2 = await GetInitialExpandoObjectAsync();

            r2.Filter = filter;
            await readCommand.ExecuteAsync(r2);

            List <TestTableEntity> entitiesR2 = r2.Entities;

            for (var i = 0; i < count; i++)
            {
                Assert.Equal(entities2[i].Text, entitiesR2[i].Text);
            }

            // delete
            dynamic d = await GetInitialExpandoObjectAsync();

            d.Entities = entities2;
            await deleteCommand.ExecuteAsync(d);

            dynamic r3 = await GetInitialExpandoObjectAsync();

            r3.Filter = filter;
            await readCommand.ExecuteAsync(r3);

            List <TestTableEntity> entitiesR3 = r3.Entities;

            Assert.Empty(entitiesR3);

            dynamic dt = await GetInitialExpandoObjectAsync();

            await deleteTableCommand.ExecuteAsync(dt);
        }