/// <summary>
        /// Used to apply or update the watermark for a corresponding Box folder.
        /// </summary>
        /// <param name="id">Id of the folder.</param>
        /// <param name="applyWatermarkRequest">BoxApplyWatermarkRequest object. Can be null, for using default values - imprint="default" </param>
        /// <returns>An object containing information about the watermark associated for this folder.</returns>
        public async Task <BoxWatermark> ApplyWatermarkAsync(string id, BoxApplyWatermarkRequest applyWatermarkRequest = null)
        {
            id.ThrowIfNullOrWhiteSpace("id");

            if (applyWatermarkRequest == null)
            {
                applyWatermarkRequest = new BoxApplyWatermarkRequest()
                {
                    Watermark = new BoxWatermarkRequest()
                    {
                        Imprint = "default"
                    }
                };
            }

            BoxRequest request = new BoxRequest(_config.FoldersEndpointUri, string.Format(Constants.WatermarkPathString, id))
                                 .Method(RequestMethod.Put)
                                 .Payload(_converter.Serialize(applyWatermarkRequest));

            IBoxResponse <BoxWatermarkResponse> response = await ToResponseAsync <BoxWatermarkResponse>(request).ConfigureAwait(false);

            if (response.Status == ResponseStatus.Success)
            {
                return(response.ResponseObject.Watermark);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 2
0
        public async Task ApplyWatermarkToFile_ValidResponse_ValidWatermark()
        {
            /*** Arrange ***/
            string      responseString = @"{
                                          ""watermark"": {
                                            ""created_at"": ""2016-10-31T15:33:33-07:00"",
                                            ""modified_at"": ""2016-10-31T15:33:33-07:00""
                                          }
                                       }";
            IBoxRequest boxRequest     = null;

            _handler.Setup(h => h.ExecuteAsync <BoxWatermarkResponse>(It.IsAny <IBoxRequest>()))
            .Returns(Task.FromResult <IBoxResponse <BoxWatermarkResponse> >(new BoxResponse <BoxWatermarkResponse>()
            {
                Status        = ResponseStatus.Success,
                ContentString = responseString
            }))
            .Callback <IBoxRequest>(r => boxRequest = r);

            /*** Act ***/
            BoxWatermark result = await _filesManager.ApplyWatermarkAsync("5010739069");

            /*** Assert ***/
            //Request check
            Assert.IsNotNull(boxRequest);
            Assert.AreEqual(RequestMethod.Put, boxRequest.Method);
            Assert.AreEqual(_FilesUri + "5010739069/watermark", boxRequest.AbsoluteUri.AbsoluteUri);
            BoxApplyWatermarkRequest payload = JsonConvert.DeserializeObject <BoxApplyWatermarkRequest>(boxRequest.Payload);

            Assert.AreEqual("default", payload.Watermark.Imprint);

            //Response check
            Assert.AreEqual(DateTime.Parse("2016-10-31T15:33:33-07:00"), result.CreatedAt.Value);
            Assert.AreEqual(DateTime.Parse("2016-10-31T15:33:33-07:00"), result.ModifiedAt.Value);
        }