Exemplo n.º 1
0
        public async Task SeedAsync(ApplicationDbContext dbContext, IServiceProvider serviceProvider)
        {
            if (dbContext.Weets.Any())
            {
                return;
            }

            var random = new Random();
            var user   = dbContext.Users.First();

            for (var i = 0; i < 5; i++)
            {
                var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                var weet  = new Weet()
                {
                    Id      = Guid.NewGuid().ToString(),
                    Author  = user,
                    Content = new string(
                        Enumerable.Repeat(chars, 200)
                        .Select(s => s[random.Next(s.Length)]).ToArray()),
                };

                await dbContext.Weets.AddAsync(weet);

                await dbContext.SaveChangesAsync();
            }
        }
Exemplo n.º 2
0
        public async Task Create(WeetCreateModel model, ApplicationUser user)
        {
            var entity = new Weet()
            {
                Id      = Guid.NewGuid().ToString(),
                Author  = user,
                Content = model.Content,
            };

            if (!string.IsNullOrWhiteSpace(model.Tags))
            {
                entity.Tags = await this.ConvertToTags(entity.Id, model.Tags);
            }

            var imageName = Guid.NewGuid().ToString();
            var imageUrl  = await ApplicationCloudinary.UploadImage(this.cloudinary, model.Image, imageName);

            if (!string.IsNullOrEmpty(imageUrl))
            {
                entity.Image = new Media()
                {
                    Url     = imageUrl,
                    Name    = imageName,
                    Creator = user,
                };

                var tagId = await this.tagsService.GetTagId("Images");

                entity.Tags.Add(new WeetTag()
                {
                    TagId = tagId, WeetId = entity.Id
                });
            }

            await this.weetRepository.AddAsync(entity);

            await this.weetRepository.SaveChangesAsync();
        }