public void Message()
            {
                //Arrange
                var deliverytime = DateTime.Now.AddDays(3);

                var source = new messagedelivery
                {
                    primarydocument = new document
                    {
                        subject             = "TestSubject",
                        filetype            = "txt",
                        authenticationlevel = authenticationlevel.TWO_FACTOR,
                        sensitivitylevel    = sensitivitylevel.SENSITIVE,
                        uuid        = "uuid",
                        contenthash = new contenthash {
                            hashalgorithm = "SHA256", Value = "5o0RMsXcgSZpGsL7FAmhSQnvGkqgOcvl5JDtMhXBSlc="
                        }
                    },
                    attachment = new[]
                    {
                        new document
                        {
                            subject             = "TestSubject Attachment",
                            filetype            = "txt",
                            authenticationlevel = authenticationlevel.TWO_FACTOR,
                            sensitivitylevel    = sensitivitylevel.SENSITIVE,
                            uuid        = "attachmentGuid",
                            contenthash = new contenthash {
                                hashalgorithm = "SHA256", Value = "5o0RMsXcgSZpGsL7FAmhSQnvGkqgOcvl5JDtMhXBSlc="
                            }
                        }
                    },
                    deliverytime          = deliverytime,
                    deliverymethod        = channel.DIGIPOST,
                    deliverytimeSpecified = true,
                    status   = messagestatus.DELIVERED,
                    senderid = 123456
                };

                var expected = new MessageDeliveryResult
                {
                    PrimaryDocument = new Document(source.primarydocument.subject, source.primarydocument.filetype, AuthenticationLevel.TwoFactor, SensitivityLevel.Sensitive)
                    {
                        Guid        = source.primarydocument.uuid,
                        ContentHash = new ContentHash {
                            HashAlgoritm = source.primarydocument.contenthash.hashalgorithm, Value = source.primarydocument.contenthash.Value
                        }
                    },
                    Attachments = new List <Document>
                    {
                        new Document(source.attachment[0].subject, source.attachment[0].filetype, AuthenticationLevel.TwoFactor, SensitivityLevel.Sensitive)
                        {
                            Guid        = source.attachment[0].uuid,
                            ContentHash = new ContentHash {
                                HashAlgoritm = source.attachment[0].contenthash.hashalgorithm, Value = source.attachment[0].contenthash.Value
                            }
                        }
                    },
                    DeliveryTime   = source.deliverytime,
                    DeliveryMethod = DeliveryMethod.Digipost,
                    Status         = MessageStatus.Delivered,
                    SenderId       = source.senderid
                };

                //Act
                var actual = SendDataTransferObjectConverter.FromDataTransferObject(source);

                //Assert
                Comparator.AssertEqual(expected, actual);
            }
        public void MessageDeliveryFinished(string authToken, string boxId, string messageId, MessageDeliveryResult messageDeliveryResult)
        {
            var request = BuildPostRequest("V1/Messages/MessageDeliveryFinished", null, authToken, messageDeliveryResult)
                          .WithAdditionalQueryParameter("boxId", boxId)
                          .WithAdditionalQueryParameter("messageId", messageId);

            var result = clusterClient.Send(request);

            EnsureSuccessResult(result);
        }
        public void MessageDeliveryFinished([NotNull] string authToken, [NotNull] string boxId, [NotNull] string messageId, [NotNull] MessageDeliveryResult messageDeliveryResult)
        {
            var url = new UrlBuilder(BaseUri, relativeUrl + "MessageDeliveryFinished")
                      .AddParameter("boxId", boxId)
                      .AddParameter("messageId", messageId)
                      .ToUri();

            MakePostRequest(url, authToken, messageDeliveryResult);
        }