Beispiel #1
0
            public async Task <Result <Picture> > Handle(Command request, CancellationToken cancellationToken)
            {
                var project = await _context.Projects.Include(p => p.Pictures)
                              .FirstOrDefaultAsync(x => x.Id == request.ProjectId);

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

                var pictureUploadResult = await _pictureAccessor.AddPicture(request.File);

                var picture = new Picture
                {
                    Url = pictureUploadResult.Url,
                    Id  = pictureUploadResult.PublicId
                };

                if (!project.Pictures.Any(x => x.IsMain))
                {
                    picture.IsMain = true;
                }

                project.Pictures.Add(picture);

                var result = await _context.SaveChangesAsync() > 0;

                if (result)
                {
                    return(Result <Picture> .Success(picture));
                }

                return(Result <Picture> .Failure("Problem addding picture"));
            }