Example #1
0
        public NewResourceResultContract CreateImageResource(CreateImageContract data, Stream dataStream)
        {
            try
            {
                var formData = FormDataBuilder.Create()
                               .AddParameter(nameof(CreateImageContract.ImageId), data.ImageId)
                               .AddParameter(nameof(CreateImageContract.OriginalVersionId), data.OriginalVersionId)
                               .AddParameter(nameof(CreateImageContract.ResourcePageId), data.ResourcePageId)
                               .AddParameter(nameof(CreateImageContract.Comment), data.Comment)
                               .AddParameter(nameof(CreateImageContract.FileName), data.FileName)
                               .ToResult();

                var result = m_client.PostStreamAsForm <NewResourceResultContract>("project/image", dataStream, data.FileName, formData);
                return(result);
            }
            catch (HttpRequestException e)
            {
                if (m_logger.IsErrorEnabled())
                {
                    m_logger.LogError("{0} failed with {1}", m_client.GetCurrentMethod(), e);
                }

                throw;
            }
        }
Example #2
0
        public NewResourceResultContract CreateNewImageVersion(CreateImageContract data, Stream stream)
        {
            var userId          = m_authenticationManager.GetCurrentUserId();
            var resultVersionId = new CreateNewImageResourceVersionWork(m_resourceRepository, m_fileSystemManager,
                                                                        data, stream, userId).Execute();

            return(resultVersionId);
        }
 public CreateNewImageResourceVersionWork(ResourceRepository resourceRepository, IFileSystemManager fileSystemManager, CreateImageContract data, Stream fileStream, int userId) : base(resourceRepository)
 {
     m_resourceRepository = resourceRepository;
     m_fileSystemManager  = fileSystemManager;
     m_data       = data;
     m_fileStream = fileStream;
     m_userId     = userId;
 }
Example #4
0
        public void TestNewImageVersion()
        {
            var repository        = new MockResourceRepository();
            var fileSystemManager = new MockFileSystemManager();
            var resourceId        = 1;
            var userId            = 2;
            var data = new CreateImageContract
            {
                FileName          = "test.jpeg",
                Comment           = string.Empty,
                ImageId           = resourceId,
                OriginalVersionId = 1,
            };

            fileSystemManager.FileInfo = new SaveResourceResult
            {
                FileNameId = "file-id",
                FileSize   = 4096,
            };

            try
            {
                new CreateNewImageResourceVersionWork(repository, fileSystemManager, data, Stream.Null, userId).Execute();
                Assert.Fail("Create new ImageResouce should fail, because version conflict");
            }
            catch (MainServiceException e)
            {
                Assert.AreEqual(HttpStatusCode.Conflict, e.StatusCode);
            }

            var latestImage = repository.GetLatestResourceVersion <ImageResource>(resourceId);

            data.OriginalVersionId = latestImage.Id; // No conflict ID


            var work = new CreateNewImageResourceVersionWork(repository, fileSystemManager, data, Stream.Null, userId);

            work.Execute();

            Assert.AreEqual(1, repository.CreatedObjects.Count);
            Assert.AreEqual(1, repository.UpdatedObjects.Count);
            Assert.AreSame(repository.CreatedObjects.First(), repository.UpdatedObjects.First());

            var newImageResource = repository.CreatedObjects.OfType <ImageResource>().First();

            Assert.AreEqual(latestImage.VersionNumber + 1, newImageResource.VersionNumber);
            Assert.AreEqual("image/jpeg", newImageResource.MimeType);
            Assert.AreEqual(latestImage.Resource.Id, newImageResource.Resource.Id);
            Assert.AreEqual(userId, newImageResource.CreatedByUser.Id);
        }
        public IActionResult CreateImageResource([FromForm] SaveImageResourceRequest request)
        {
            var client = GetProjectClient();
            var data   = new CreateImageContract
            {
                ImageId           = request.ImageId,
                OriginalVersionId = request.ResourceVersionId,
                ResourcePageId    = request.PageId,
                Comment           = request.Comment,
                FileName          = request.File.FileName,
            };
            var result = client.CreateImageResource(data, request.File.OpenReadStream());

            return(Json(new ImageContract
            {
                Id = result.ResourceId,
                VersionId = result.ResourceVersionId,
                VersionNumber = result.VersionNumber,
                ImageUrl = Url.Action("GetPageImage", "ContentEditor", new { Area = "Admin", pageId = request.PageId }),
            }));
        }
Example #6
0
        public IActionResult CreateNewImageResourceVersion([FromForm] CreateImageContract data, IFormFile file)
        {
            // Authorization is below

            if ((data.ImageId == null || data.OriginalVersionId == null) && data.ResourcePageId == null)
            {
                return(BadRequest("Image must be specified by ImageId + OriginalVersionId or by ResourcePageId"));
            }

            if (data.ResourcePageId != null)
            {
                m_authorizationManager.AuthorizeResource(data.ResourcePageId.Value, PermissionFlag.EditProject);
            }
            else
            {
                m_authorizationManager.AuthorizeResource(data.ImageId.Value, PermissionFlag.EditProject);
            }

            var result = m_projectContentManager.CreateNewImageVersion(data, file.OpenReadStream());

            return(Ok(result));
        }