public ImageResponse ImageRevision(ImageRevisionDto model)
        {
            try
            {
                if (!SecurityHandler.IsValidPassword(model?.password))
                {
                    throw new UnauthorizedAccessException();
                }

                var filename = ContentDispositionHeaderValue
                               .Parse(model.file.ContentDisposition)
                               .FileName
                               .ToString()
                               .Trim('"');

                var fileStream = model.file.OpenReadStream();

                var cmd = new UploadImageRevisionCommand(model, fileStream, filename);

                UploadImageRevisionCommandHandler.HandleAsync(cmd);

                return(GetImageById(model?.imageId));
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void PassingRevisionDtoAndFileInfoGetsCorrectlyConverted()
        {
            var dto = new ImageRevisionDto();

            dto.description = "desc";
            dto.imageId     = "imageId";

            var stream   = new MemoryStream(Encoding.UTF8.GetBytes("asdf"));
            var filename = "testname";

            var cmd = new UploadImageRevisionCommand(dto, stream, filename);

            Assert.NotNull(cmd.File);
            Assert.That(cmd.Revision.Filename, Is.EqualTo(filename));
            Assert.That(cmd.Revision.Description, Is.EqualTo(dto.description));
            Assert.That(cmd.ImageId, Is.EqualTo(dto.imageId));
            Assert.That(cmd.Revision.Filename, Is.EqualTo(filename));
            Assert.That(cmd.Revision.RevisionDate, Is.Not.Null);
            Assert.That(cmd.Revision.Thumb.Filename, Is.EqualTo($"thumb_{filename}"));
        }