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