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")); }