diff --git a/Digipost.Signature.Api.Client.Core.Tests/BaseClientTests.cs b/Digipost.Signature.Api.Client.Core.Tests/BaseClientTests.cs
new file mode 100755
index 00000000..0368ee17
--- /dev/null
+++ b/Digipost.Signature.Api.Client.Core.Tests/BaseClientTests.cs
@@ -0,0 +1,76 @@
+using Digipost.Signature.Api.Client.Core.Exceptions;
+using Digipost.Signature.Api.Client.Core.Tests.Stubs;
+using Digipost.Signature.Api.Client.Core.Tests.Utilities;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace Digipost.Signature.Api.Client.Core.Tests
+{
+ [TestClass]
+ public class BaseClientTests
+ {
+ [TestClass]
+ public class CurrentSenderMethod : BaseClientTests
+ {
+ [TestMethod]
+ [ExpectedException(typeof (SenderNotSpecifiedException))]
+ public void ThrowsExceptionOnNoSender()
+ {
+ //Arrange
+ var clientConfiguration = new ClientConfiguration(Environment.DifiQa, CoreDomainUtility.GetPostenTestCertificate());
+ var client = new ClientStub(clientConfiguration);
+
+ //Act
+ client.GetCurrentSender(null);
+
+ //Assert
+ Assert.Fail();
+ }
+
+ [TestMethod]
+ public void ReturnsClientClientConfigurationSenderIfOnlySet()
+ {
+ //Arrange
+ var expected = new Sender("000000000");
+ var clientConfiguration = new ClientConfiguration(Environment.DifiQa, CoreDomainUtility.GetPostenTestCertificate(), expected);
+ var client = new ClientStub(clientConfiguration);
+
+ //Act
+ var actual = client.GetCurrentSender(null);
+
+ //Assert
+ Assert.AreEqual(expected, actual);
+ }
+
+ [TestMethod]
+ public void ReturnsJobSenderIfOnlySet()
+ {
+ //Arrange
+ var expected = new Sender("000000000");
+ var clientConfiguration = new ClientConfiguration(Environment.DifiQa, CoreDomainUtility.GetPostenTestCertificate());
+ var client = new ClientStub(clientConfiguration);
+
+ //Act
+ var actual = client.GetCurrentSender(expected);
+
+ //Assert
+ Assert.AreEqual(expected, actual);
+ }
+
+ [TestMethod]
+ public void ReturnsJobSenderIfBothSet()
+ {
+ //Arrange
+ var expected = new Sender("000000000");
+ var clientConfigurationSender = new Sender("999999999");
+ var clientConfiguration = new ClientConfiguration(Environment.DifiQa, CoreDomainUtility.GetPostenTestCertificate(), clientConfigurationSender);
+ var client = new ClientStub(clientConfiguration);
+
+ //Act
+ var actual = client.GetCurrentSender(expected);
+
+ //Assert
+ Assert.AreEqual(expected, actual);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Core.Tests/ClientConfigurationTests.cs b/Digipost.Signature.Api.Client.Core.Tests/ClientConfigurationTests.cs
index 4229ae3f..74f2987f 100755
--- a/Digipost.Signature.Api.Client.Core.Tests/ClientConfigurationTests.cs
+++ b/Digipost.Signature.Api.Client.Core.Tests/ClientConfigurationTests.cs
@@ -11,46 +11,64 @@ public class ClientConfigurationTests
public class ConstructorMethod : ClientConfigurationTests
{
[TestMethod]
- public void ConstructorWithCertificate()
+ public void ConstructorWithNoSenderAndCertificateThumbprintExists()
+ {
+ //Arrange
+
+ //Act
+ new ClientConfiguration(Environment.DifiQa, GetFirstCertificateFromCurrentUserStore());
+
+ //Assert
+ }
+
+ [TestMethod]
+ public void ConstructorWithCertificateThumbprint()
{
//Arrange
var environment = Environment.DifiQa;
var sender = CoreDomainUtility.GetSender();
- var x509Certificate = CoreDomainUtility.GetTestCertificate();
+
+ var aCertificateFromCertificateStore = GetFirstCertificateFromCurrentUserStore();
//Act
var clientConfiguration = new ClientConfiguration(
environment,
- sender,
- x509Certificate
- );
+ aCertificateFromCertificateStore.Thumbprint, sender);
//Assert
Assert.AreEqual(environment, clientConfiguration.Environment);
Assert.AreEqual(sender, clientConfiguration.Sender);
- Assert.AreEqual(x509Certificate, clientConfiguration.Certificate);
+ Assert.AreEqual(aCertificateFromCertificateStore, clientConfiguration.Certificate);
}
[TestMethod]
- public void ConstructorWithCertificateThumbprint()
+ public void ConstructorWithCertificate()
{
//Arrange
var environment = Environment.DifiQa;
var sender = CoreDomainUtility.GetSender();
-
- var aCertificateFromCertificateStore = GetFirstCertificateFromCurrentUserStore();
+ var x509Certificate = CoreDomainUtility.GetTestCertificate();
//Act
var clientConfiguration = new ClientConfiguration(
environment,
- sender,
- aCertificateFromCertificateStore.Thumbprint
- );
+ x509Certificate, sender);
//Assert
Assert.AreEqual(environment, clientConfiguration.Environment);
Assert.AreEqual(sender, clientConfiguration.Sender);
- Assert.AreEqual(aCertificateFromCertificateStore, clientConfiguration.Certificate);
+ Assert.AreEqual(x509Certificate, clientConfiguration.Certificate);
+ }
+
+ [TestMethod]
+ public void ConstructorWithNoSenderAndCertificateExists()
+ {
+ //Arrange
+
+ //Act
+ new ClientConfiguration(Environment.DifiQa, new X509Certificate2());
+
+ //Assert
}
private static X509Certificate2 GetFirstCertificateFromCurrentUserStore()
diff --git a/Digipost.Signature.Api.Client.Core.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs b/Digipost.Signature.Api.Client.Core.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs
index 9f996794..2036ed5e 100755
--- a/Digipost.Signature.Api.Client.Core.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs
+++ b/Digipost.Signature.Api.Client.Core.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs
@@ -2,7 +2,6 @@
using System.Linq;
using Digipost.Signature.Api.Client.Core.DataTransferObjects;
using Digipost.Signature.Api.Client.Core.Tests.Utilities.CompareObjects;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Digipost.Signature.Api.Client.Core.Tests.DataTransferObjects
diff --git a/Digipost.Signature.Api.Client.Core.Tests/Digipost.Signature.Api.Client.Core.Tests.csproj b/Digipost.Signature.Api.Client.Core.Tests/Digipost.Signature.Api.Client.Core.Tests.csproj
index 3a6ccbbc..34fe27bd 100755
--- a/Digipost.Signature.Api.Client.Core.Tests/Digipost.Signature.Api.Client.Core.Tests.csproj
+++ b/Digipost.Signature.Api.Client.Core.Tests/Digipost.Signature.Api.Client.Core.Tests.csproj
@@ -83,6 +83,7 @@
+
@@ -98,6 +99,7 @@
+
diff --git a/Digipost.Signature.Api.Client.Core.Tests/Smoke/SmokeTests.cs b/Digipost.Signature.Api.Client.Core.Tests/Smoke/SmokeTests.cs
index 8159a3fa..535e233f 100755
--- a/Digipost.Signature.Api.Client.Core.Tests/Smoke/SmokeTests.cs
+++ b/Digipost.Signature.Api.Client.Core.Tests/Smoke/SmokeTests.cs
@@ -13,7 +13,7 @@ protected static Client ClientType
return Client.DifiQa;
}
- return Client.DifiTest;
+ return Client.Localhost;
}
}
diff --git a/Digipost.Signature.Api.Client.Core.Tests/Stubs/ClientStub.cs b/Digipost.Signature.Api.Client.Core.Tests/Stubs/ClientStub.cs
new file mode 100755
index 00000000..5645e049
--- /dev/null
+++ b/Digipost.Signature.Api.Client.Core.Tests/Stubs/ClientStub.cs
@@ -0,0 +1,15 @@
+namespace Digipost.Signature.Api.Client.Core.Tests.Stubs
+{
+ internal class ClientStub : BaseClient
+ {
+ public ClientStub(ClientConfiguration clientConfiguration)
+ : base(clientConfiguration)
+ {
+ }
+
+ public Sender GetCurrentSender(Sender jobSender)
+ {
+ return CurrentSender(jobSender);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Core.Tests/Utilities/CoreDomainUtility.cs b/Digipost.Signature.Api.Client.Core.Tests/Utilities/CoreDomainUtility.cs
index 35fb1b2a..e17b2e9f 100755
--- a/Digipost.Signature.Api.Client.Core.Tests/Utilities/CoreDomainUtility.cs
+++ b/Digipost.Signature.Api.Client.Core.Tests/Utilities/CoreDomainUtility.cs
@@ -13,7 +13,7 @@ public static class CoreDomainUtility
public static ClientConfiguration GetClientConfiguration()
{
- return new ClientConfiguration(Environment.DifiQa, GetSender(), GetTestCertificate());
+ return new ClientConfiguration(Environment.DifiQa, GetTestCertificate(), GetSender());
}
public static Document GetDocument()
diff --git a/Digipost.Signature.Api.Client.Core/Asice/AsiceSignature/SignatureGenerator.cs b/Digipost.Signature.Api.Client.Core/Asice/AsiceSignature/SignatureGenerator.cs
index 7c65ada7..a6b1e40a 100755
--- a/Digipost.Signature.Api.Client.Core/Asice/AsiceSignature/SignatureGenerator.cs
+++ b/Digipost.Signature.Api.Client.Core/Asice/AsiceSignature/SignatureGenerator.cs
@@ -71,7 +71,6 @@ private XmlDocument CreateXadesSignatureElement()
signatureDocument.AppendChild(signatureDocument.CreateElement("xades", "XAdESSignatures", NavneromUtility.UriEtsi121));
signatureDocument.DocumentElement.SetAttribute("xmlns", NavneromUtility.UriEtsi132);
- //Todo: Legg til foerst
signatureDocument.InsertBefore(xmlDeclaration, signatureDocument.DocumentElement);
return signatureDocument;
}
diff --git a/Digipost.Signature.Api.Client.Core/BaseClient.cs b/Digipost.Signature.Api.Client.Core/BaseClient.cs
index 6ae1c1c8..6072e298 100755
--- a/Digipost.Signature.Api.Client.Core/BaseClient.cs
+++ b/Digipost.Signature.Api.Client.Core/BaseClient.cs
@@ -3,6 +3,7 @@
using System.Net.Http;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
+using Digipost.Signature.Api.Client.Core.Exceptions;
using Digipost.Signature.Api.Client.Core.Internal;
namespace Digipost.Signature.Api.Client.Core
@@ -34,6 +35,17 @@ internal HttpClient HttpClient
internal RequestHelper RequestHelper { get; set; }
+ protected Sender CurrentSender(Sender jobSender)
+ {
+ var sender = jobSender ?? ClientConfiguration.Sender;
+ if (sender == null)
+ {
+ throw new SenderNotSpecifiedException();
+ }
+
+ return sender;
+ }
+
private HttpClient MutualTlsClient()
{
var mutualTlsHandler = MutualTlsHandler();
diff --git a/Digipost.Signature.Api.Client.Core/ClientConfiguration.cs b/Digipost.Signature.Api.Client.Core/ClientConfiguration.cs
index 8a8005aa..0787dad0 100755
--- a/Digipost.Signature.Api.Client.Core/ClientConfiguration.cs
+++ b/Digipost.Signature.Api.Client.Core/ClientConfiguration.cs
@@ -6,12 +6,12 @@ namespace Digipost.Signature.Api.Client.Core
{
public class ClientConfiguration
{
- public ClientConfiguration(Environment environment, Sender sender, string certificateThumbprint)
- : this(environment, sender, CertificateUtility.SenderCertificate(certificateThumbprint, Language.English))
+ public ClientConfiguration(Environment environment, string certificateThumbprint, Sender sender = null)
+ : this(environment, CertificateUtility.SenderCertificate(certificateThumbprint, Language.English), sender)
{
}
- public ClientConfiguration(Environment environment, Sender sender, X509Certificate2 certificate)
+ public ClientConfiguration(Environment environment, X509Certificate2 certificate, Sender sender = null)
{
Environment = environment;
Sender = sender;
diff --git a/Digipost.Signature.Api.Client.Core/DataTransferObjects/DataTransferObjectConverter.cs b/Digipost.Signature.Api.Client.Core/DataTransferObjects/DataTransferObjectConverter.cs
index f31fcee9..20b3882c 100755
--- a/Digipost.Signature.Api.Client.Core/DataTransferObjects/DataTransferObjectConverter.cs
+++ b/Digipost.Signature.Api.Client.Core/DataTransferObjects/DataTransferObjectConverter.cs
@@ -1,6 +1,4 @@
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
-
-namespace Digipost.Signature.Api.Client.Core.DataTransferObjects
+namespace Digipost.Signature.Api.Client.Core.DataTransferObjects
{
public static class DataTransferObjectConverter
{
diff --git a/Digipost.Signature.Api.Client.Core/Digipost.Signature.Api.Client.Core.csproj b/Digipost.Signature.Api.Client.Core/Digipost.Signature.Api.Client.Core.csproj
index 5577e79e..a1188dea 100755
--- a/Digipost.Signature.Api.Client.Core/Digipost.Signature.Api.Client.Core.csproj
+++ b/Digipost.Signature.Api.Client.Core/Digipost.Signature.Api.Client.Core.csproj
@@ -86,6 +86,7 @@
+
diff --git a/Digipost.Signature.Api.Client.Core/Exceptions/SenderNotSpecifiedException.cs b/Digipost.Signature.Api.Client.Core/Exceptions/SenderNotSpecifiedException.cs
new file mode 100755
index 00000000..11c9785c
--- /dev/null
+++ b/Digipost.Signature.Api.Client.Core/Exceptions/SenderNotSpecifiedException.cs
@@ -0,0 +1,10 @@
+namespace Digipost.Signature.Api.Client.Core.Exceptions
+{
+ public class SenderNotSpecifiedException : SignatureException
+ {
+ public SenderNotSpecifiedException()
+ : base("A sender must either be specified globally in ClientConfiguration or for each job.")
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Core/Internal/CreateAction.cs b/Digipost.Signature.Api.Client.Core/Internal/CreateAction.cs
index c82566fe..ae5bbb42 100755
--- a/Digipost.Signature.Api.Client.Core/Internal/CreateAction.cs
+++ b/Digipost.Signature.Api.Client.Core/Internal/CreateAction.cs
@@ -1,12 +1,15 @@
using System;
using System.Net.Http;
using System.Net.Http.Headers;
+using System.Reflection;
using Digipost.Signature.Api.Client.Core.Asice;
+using log4net;
namespace Digipost.Signature.Api.Client.Core.Internal
{
internal abstract class CreateAction : SignatureAction
{
+ private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private readonly DocumentBundle _documentBundle;
protected CreateAction(IRequestContent job, DocumentBundle documentBundle, Func serializeFunc)
diff --git a/Digipost.Signature.Api.Client.Core/RequestHelper.cs b/Digipost.Signature.Api.Client.Core/RequestHelper.cs
index 57bacd40..f19be185 100755
--- a/Digipost.Signature.Api.Client.Core/RequestHelper.cs
+++ b/Digipost.Signature.Api.Client.Core/RequestHelper.cs
@@ -9,7 +9,6 @@
using Digipost.Signature.Api.Client.Core.Asice;
using Digipost.Signature.Api.Client.Core.DataTransferObjects;
using Digipost.Signature.Api.Client.Core.Exceptions;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using log4net;
namespace Digipost.Signature.Api.Client.Core
diff --git a/Digipost.Signature.Api.Client.Direct.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs b/Digipost.Signature.Api.Client.Direct.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs
index fe8023a8..64c0c11d 100755
--- a/Digipost.Signature.Api.Client.Direct.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs
+++ b/Digipost.Signature.Api.Client.Direct.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs
@@ -4,7 +4,6 @@
using Digipost.Signature.Api.Client.Core;
using Digipost.Signature.Api.Client.Core.Tests.Utilities;
using Digipost.Signature.Api.Client.Core.Tests.Utilities.CompareObjects;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Digipost.Signature.Api.Client.Direct.DataTransferObjects;
using Digipost.Signature.Api.Client.Direct.Enums;
using Digipost.Signature.Api.Client.Direct.Internal.AsicE;
@@ -38,9 +37,9 @@ public void ConvertsDirectJobSuccessfully()
reference = reference,
exiturls = new exiturls
{
- cancellationurl = exitUrls.CancellationUrl.AbsoluteUri,
- completionurl = exitUrls.CompletionUrl.AbsoluteUri,
- errorurl = exitUrls.ErrorUrl.AbsoluteUri
+ completionurl = source.ExitUrls.CompletionUrl.AbsoluteUri,
+ rejectionurl = source.ExitUrls.RejectionUrl.AbsoluteUri,
+ errorurl = source.ExitUrls.ErrorUrl.AbsoluteUri
}
};
@@ -62,7 +61,7 @@ public void ConvertsExitUrlsSuccessfully()
var expected = new exiturls
{
completionurl = source.CompletionUrl.AbsoluteUri,
- cancellationurl = source.CancellationUrl.AbsoluteUri,
+ rejectionurl = source.RejectionUrl.AbsoluteUri,
errorurl = source.ErrorUrl.AbsoluteUri
};
@@ -143,12 +142,12 @@ public void ConvertsUnsignedDirectJobStatusSuccessfully()
var source = new directsignaturejobstatusresponse
{
signaturejobid = 77,
- status = directsignaturejobstatus.CREATED
+ status = directsignaturejobstatus.REJECTED
};
var expected = new DirectJobStatusResponse(
source.signaturejobid,
- JobStatus.Created,
+ JobStatus.Rejected,
new JobReferences(null, null, null)
);
diff --git a/Digipost.Signature.Api.Client.Direct.Tests/Digipost.Signature.Api.Client.Direct.Tests.csproj b/Digipost.Signature.Api.Client.Direct.Tests/Digipost.Signature.Api.Client.Direct.Tests.csproj
index a5a82afd..d65d28be 100755
--- a/Digipost.Signature.Api.Client.Direct.Tests/Digipost.Signature.Api.Client.Direct.Tests.csproj
+++ b/Digipost.Signature.Api.Client.Direct.Tests/Digipost.Signature.Api.Client.Direct.Tests.csproj
@@ -57,6 +57,7 @@
+
diff --git a/Digipost.Signature.Api.Client.Direct.Tests/DirectClientTests.cs b/Digipost.Signature.Api.Client.Direct.Tests/DirectClientTests.cs
index 48c0cea1..2cf96c1f 100755
--- a/Digipost.Signature.Api.Client.Direct.Tests/DirectClientTests.cs
+++ b/Digipost.Signature.Api.Client.Direct.Tests/DirectClientTests.cs
@@ -1,11 +1,14 @@
using System;
using System.Net.Http;
using System.Threading.Tasks;
+using Digipost.Signature.Api.Client.Core;
using Digipost.Signature.Api.Client.Core.Exceptions;
using Digipost.Signature.Api.Client.Core.Tests.Fakes;
using Digipost.Signature.Api.Client.Core.Tests.Utilities;
using Digipost.Signature.Api.Client.Direct.Tests.Fakes;
+using Digipost.Signature.Api.Client.Direct.Tests.Utilities;
using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Environment = Digipost.Signature.Api.Client.Core.Environment;
namespace Digipost.Signature.Api.Client.Direct.Tests
{
@@ -31,6 +34,26 @@ public void SimpleConstructor()
}
}
+ [TestClass]
+ public class CreateMethod : DirectClientTests
+ {
+ [TestMethod]
+ [ExpectedException(typeof (SenderNotSpecifiedException))]
+ public async Task ThrowsExceptionOnNoSender()
+ {
+ //Arrange
+ var clientConfiguration = new ClientConfiguration(Environment.DifiQa, CoreDomainUtility.GetPostenTestCertificate());
+ var directClient = new DirectClient(clientConfiguration);
+ var directJob = new DirectJob(CoreDomainUtility.GetDocument(), CoreDomainUtility.GetSigner(), "SendersReference", DomainUtility.GetExitUrls());
+
+ //Act
+ await directClient.Create(directJob);
+
+ //Assert
+ Assert.Fail();
+ }
+ }
+
[TestClass]
public class GetStatusMethod : DirectClientTests
{
@@ -44,7 +67,7 @@ public async Task ReturnsStatusResponse()
};
//Act
- var result = await directClient.GetStatus(new StatusReference(new Uri("http://statusReference.no")));
+ var result = await directClient.GetStatus(new StatusReference(new Uri("http://statusReference.no"), "StatusQueryToken"));
//Assert
Assert.IsNotNull(result);
@@ -61,7 +84,7 @@ public async Task GetStatusThrowsSignatureException()
};
//Act
- await directClient.GetStatus(new StatusReference(new Uri("http://statusReference.no")));
+ await directClient.GetStatus(new StatusReference(new Uri("http://statusReference.no"), "StatusQueryToken"));
//Assert
Assert.Fail();
diff --git a/Digipost.Signature.Api.Client.Direct.Tests/DirectJobTests.cs b/Digipost.Signature.Api.Client.Direct.Tests/DirectJobTests.cs
index ab1c3c4a..857fce76 100755
--- a/Digipost.Signature.Api.Client.Direct.Tests/DirectJobTests.cs
+++ b/Digipost.Signature.Api.Client.Direct.Tests/DirectJobTests.cs
@@ -1,6 +1,6 @@
-using System;
-using Digipost.Signature.Api.Client.Core;
+using Digipost.Signature.Api.Client.Core;
using Digipost.Signature.Api.Client.Core.Tests.Utilities;
+using Digipost.Signature.Api.Client.Direct.Tests.Utilities;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Digipost.Signature.Api.Client.Direct.Tests
@@ -11,6 +11,15 @@ public class DirectJobTests
[TestClass]
public class ConstructorMethod : DirectJobTests
{
+ [TestMethod]
+ public void ConstructorWithoutSenderExists()
+ {
+ //Act
+ new DirectJob(null, null, null, null);
+
+ //Assert
+ }
+
[TestMethod]
public void SimpleConstructor()
{
@@ -18,20 +27,18 @@ public void SimpleConstructor()
var id = "IdDirectJob";
var signer = new Signer("01013300001");
var document = CoreDomainUtility.GetDocument();
- var exitUrls = new ExitUrls(
- new Uri("http://localhost.completed"),
- new Uri("http://localhost.cancelled"),
- new Uri("http://localhost.error")
- );
+ var exitUrls = DomainUtility.GetExitUrls();
+ var sender = CoreDomainUtility.GetSender();
//Act
- var directJob = new DirectJob(document, signer, id, exitUrls);
+ var directJob = new DirectJob(document, signer, id, exitUrls, sender);
//Assert
Assert.AreEqual(id, directJob.Reference);
Assert.AreEqual(signer, directJob.Signer);
Assert.AreEqual(document, directJob.Document);
Assert.AreEqual(exitUrls, directJob.ExitUrls);
+ Assert.AreEqual(sender, directJob.Sender);
}
}
}
diff --git a/Digipost.Signature.Api.Client.Direct.Tests/ExitUrlsTests.cs b/Digipost.Signature.Api.Client.Direct.Tests/ExitUrlsTests.cs
index 05db09cd..97f600cb 100755
--- a/Digipost.Signature.Api.Client.Direct.Tests/ExitUrlsTests.cs
+++ b/Digipost.Signature.Api.Client.Direct.Tests/ExitUrlsTests.cs
@@ -22,7 +22,7 @@ public void SimpleContructor()
//Assert
Assert.AreEqual(completionUrl, exitUrls.CompletionUrl);
- Assert.AreEqual(cancellationUrl, exitUrls.CancellationUrl);
+ Assert.AreEqual(cancellationUrl, exitUrls.RejectionUrl);
Assert.AreEqual(errorUrl, exitUrls.ErrorUrl);
}
}
diff --git a/Digipost.Signature.Api.Client.Direct.Tests/Integration/DirectClientIntegrationTests.cs b/Digipost.Signature.Api.Client.Direct.Tests/Integration/DirectClientIntegrationTests.cs
index b7e90bb8..0991c45e 100755
--- a/Digipost.Signature.Api.Client.Direct.Tests/Integration/DirectClientIntegrationTests.cs
+++ b/Digipost.Signature.Api.Client.Direct.Tests/Integration/DirectClientIntegrationTests.cs
@@ -55,7 +55,7 @@ public async Task SendsSuccessfully()
var directJobResponse = DomainUtility.GetDirectJobResponse();
//Act
- var result = await directClient.GetStatus(directJobResponse.ResponseUrls.Status);
+ var result = await directClient.GetStatus(directJobResponse.ResponseUrls.Status("StatusQueryToken"));
//Assert
Assert.IsNotNull(result.JobId);
diff --git a/Digipost.Signature.Api.Client.Direct.Tests/ResponseUrlsTests.cs b/Digipost.Signature.Api.Client.Direct.Tests/ResponseUrlsTests.cs
index 4c0dec6d..4c7c4288 100755
--- a/Digipost.Signature.Api.Client.Direct.Tests/ResponseUrlsTests.cs
+++ b/Digipost.Signature.Api.Client.Direct.Tests/ResponseUrlsTests.cs
@@ -23,7 +23,28 @@ public void SimpleConstructor()
//Assert
Assert.AreEqual(redirectUrl, responseUrls.Redirect.Url);
- Assert.AreEqual(statusUrl, responseUrls.Status.Url);
+ }
+ }
+
+ [TestClass]
+ public class StatusMethod : ResponseurlsTests
+ {
+ [TestMethod]
+ public void ReturnsStatusNotNull()
+ {
+ //Arrange
+ var redirectUrl = new Uri("http://responseurl.no");
+ var statusUrl = new Uri("http://statusurl.no");
+ var statusQueryToken = "StatusQueryToken";
+
+ //Act
+ var responseUrls = new ResponseUrls(
+ redirectUrl,
+ statusUrl
+ );
+
+ //Assert
+ Assert.IsNotNull(responseUrls.Status(statusQueryToken));
}
}
}
diff --git a/Digipost.Signature.Api.Client.Direct.Tests/Smoke/DirectClientSmokeTests.cs b/Digipost.Signature.Api.Client.Direct.Tests/Smoke/DirectClientSmokeTests.cs
index 212644a5..90f42ebf 100755
--- a/Digipost.Signature.Api.Client.Direct.Tests/Smoke/DirectClientSmokeTests.cs
+++ b/Digipost.Signature.Api.Client.Direct.Tests/Smoke/DirectClientSmokeTests.cs
@@ -1,5 +1,6 @@
using System;
using System.Threading.Tasks;
+using System.Web;
using Digipost.Signature.Api.Client.Core;
using Digipost.Signature.Api.Client.Core.Tests.Smoke;
using Digipost.Signature.Api.Client.Core.Tests.Utilities;
@@ -42,7 +43,7 @@ protected static DirectClient GetDirectClient()
private static DirectClient DirectClient(Environment environment)
{
var sender = new Sender("988015814");
- var clientConfig = new ClientConfiguration(environment, sender, CoreDomainUtility.GetTestIntegrasjonSertifikat());
+ var clientConfig = new ClientConfiguration(environment, CoreDomainUtility.GetTestIntegrasjonSertifikat(), sender);
var client = new DirectClient(clientConfig);
return client;
}
@@ -62,6 +63,12 @@ internal static DirectJobStatusResponse MorphDirectJobStatusResponseIfMayBe(Dire
return directJobResponse;
}
+ internal static StatusReference MorphStatusReferenceIfMayBe(StatusReference statusReference)
+ {
+ var statusReferenceUri = GetUriFromRelativePath(statusReference.Url().AbsolutePath);
+ return new StatusReference(statusReferenceUri, statusReference.StatusQueryToken);
+ }
+
[TestClass]
public class RunsEndpointCallsSuccessfully : DirectClientSmokeTests
{
@@ -73,22 +80,34 @@ public static void CreateAndGetStatus(TestContext context)
var directJob = DomainUtility.GetDirectJob();
//Act
- var result = directClient.Create(directJob).Result;
- directClient.AutoSign(result.JobId).Wait();
- _statusReference = new StatusReference(GetUriFromRelativePath(result.ResponseUrls.Status.Url.AbsolutePath));
+ var directJobResponse = directClient.Create(directJob).Result;
+ var statusQueryToken = AutoSignAndGetToken(directClient, directJobResponse);
+ _statusReference = MorphStatusReferenceIfMayBe(directJobResponse.ResponseUrls.Status(statusQueryToken));
+
+ var jobStatusResponse = directClient.GetStatus(_statusReference).Result;
- var directJobStatusResponse = MorphDirectJobStatusResponseIfMayBe(directClient.GetStatus(_statusReference).Result);
+ var directJobStatusResponse = MorphDirectJobStatusResponseIfMayBe(jobStatusResponse);
_xadesReference = directJobStatusResponse.References.Xades;
_padesReference = directJobStatusResponse.References.Pades;
_confirmationReference = directJobStatusResponse.References.Confirmation;
//Assert
- Assert.IsNotNull(result.JobId);
+ Assert.IsNotNull(_statusReference);
+ Assert.IsNotNull(directJobResponse.JobId);
Assert.IsNotNull(_xadesReference);
Assert.IsNotNull(_padesReference);
Assert.IsNotNull(_confirmationReference);
}
+ private static string AutoSignAndGetToken(DirectClient directClient, DirectJobResponse directJobResponse)
+ {
+ var statusUrl = directClient.AutoSign(directJobResponse.JobId).Result;
+ var queryParams = new Uri(statusUrl).Query;
+ var queryDictionary = HttpUtility.ParseQueryString(queryParams);
+ var statusQueryToken = queryDictionary.Get(0);
+ return statusQueryToken;
+ }
+
[TestMethod]
public async Task CreatesSuccessfully()
{
diff --git a/Digipost.Signature.Api.Client.Direct.Tests/StatusReferenceTests.cs b/Digipost.Signature.Api.Client.Direct.Tests/StatusReferenceTests.cs
index 9b9aa567..9f83122c 100755
--- a/Digipost.Signature.Api.Client.Direct.Tests/StatusReferenceTests.cs
+++ b/Digipost.Signature.Api.Client.Direct.Tests/StatusReferenceTests.cs
@@ -13,13 +13,15 @@ public class ConstructorMethod : StatusReferenceTests
public void SimpleConstructor()
{
//Arrange
- var jobReference = new Uri("http://signatureserviceroot.digipost.no/urlidurl/id030302");
+ var urlWithoutToken = new Uri("http://organizationdomain.com/completionUrl/");
+ var statusQueryToken = "ALongToken";
//Act
- var directJobReference = new StatusReference(jobReference);
+ var statusReference = new StatusReference(urlWithoutToken, statusQueryToken);
//Assert
- Assert.AreEqual(jobReference, directJobReference.Url);
+ Assert.AreEqual(urlWithoutToken, statusReference.BaseUrl);
+ Assert.AreEqual(statusQueryToken, statusReference.StatusQueryToken);
}
}
}
diff --git a/Digipost.Signature.Api.Client.Direct/DataTransferObjects/DataTransferObjectConverter.cs b/Digipost.Signature.Api.Client.Direct/DataTransferObjects/DataTransferObjectConverter.cs
index 046e5d6c..c068cb11 100755
--- a/Digipost.Signature.Api.Client.Direct/DataTransferObjects/DataTransferObjectConverter.cs
+++ b/Digipost.Signature.Api.Client.Direct/DataTransferObjects/DataTransferObjectConverter.cs
@@ -1,6 +1,5 @@
using System;
using Digipost.Signature.Api.Client.Core;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Digipost.Signature.Api.Client.Direct.Enums;
using Digipost.Signature.Api.Client.Direct.Internal.AsicE;
@@ -22,9 +21,9 @@ public static exiturls ToDataTransferObject(ExitUrls exitUrls)
{
return new exiturls
{
- cancellationurl = exitUrls.CancellationUrl.AbsoluteUri,
- completionurl = exitUrls.CompletionUrl.AbsoluteUri,
- errorurl = exitUrls.ErrorUrl.AbsoluteUri
+ completionurl = exitUrls.CompletionUrl.ToString(),
+ errorurl = exitUrls.ErrorUrl.ToString(),
+ rejectionurl = exitUrls.RejectionUrl.ToString()
};
}
diff --git a/Digipost.Signature.Api.Client.Direct/DirectClient.cs b/Digipost.Signature.Api.Client.Direct/DirectClient.cs
index efae367c..db49e22f 100755
--- a/Digipost.Signature.Api.Client.Direct/DirectClient.cs
+++ b/Digipost.Signature.Api.Client.Direct/DirectClient.cs
@@ -7,7 +7,6 @@
using System.Threading.Tasks;
using Digipost.Signature.Api.Client.Core;
using Digipost.Signature.Api.Client.Core.Asice;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Digipost.Signature.Api.Client.Direct.DataTransferObjects;
using Digipost.Signature.Api.Client.Direct.Internal;
using Digipost.Signature.Api.Client.Direct.Internal.AsicE;
@@ -18,20 +17,20 @@ namespace Digipost.Signature.Api.Client.Direct
public class DirectClient : BaseClient
{
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private readonly Uri _subPath;
public DirectClient(ClientConfiguration clientConfiguration)
: base(clientConfiguration)
{
- _subPath = new Uri($"/api/{clientConfiguration.Sender.OrganizationNumber}/direct/signature-jobs", UriKind.Relative);
- Log.Debug($"Creating DirectClient, endpoint {new Uri(clientConfiguration.Environment.Url, _subPath)}");
}
public async Task Create(DirectJob directJob)
{
- var documentBundle = AsiceGenerator.CreateAsice(ClientConfiguration.Sender, directJob.Document, directJob.Signer, ClientConfiguration.Certificate);
+ var sender = CurrentSender(directJob.Sender);
+ var relativeUrl = new Uri($"/api/{sender.OrganizationNumber}/direct/signature-jobs", UriKind.Relative);
+
+ var documentBundle = AsiceGenerator.CreateAsice(sender, directJob.Document, directJob.Signer, ClientConfiguration.Certificate);
var createAction = new DirectCreateAction(directJob, documentBundle);
- var directJobResponse = await RequestHelper.Create(_subPath, createAction.Content(), DirectCreateAction.DeserializeFunc);
+ var directJobResponse = await RequestHelper.Create(relativeUrl, createAction.Content(), DirectCreateAction.DeserializeFunc);
Log.Debug($"Successfully created Direct Job with JobId: {directJobResponse.JobId}.");
@@ -42,7 +41,7 @@ public async Task GetStatus(StatusReference statusRefer
{
var request = new HttpRequestMessage
{
- RequestUri = statusReference.Url,
+ RequestUri = statusReference.Url(),
Method = HttpMethod.Get
};
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
@@ -76,11 +75,12 @@ public async Task Confirm(ConfirmationReference confirmationReference)
await RequestHelper.Confirm(confirmationReference);
}
- internal async Task AutoSign(long jobId)
+ internal async Task AutoSign(long jobId)
{
Log.Warn($"Autosigning DirectJob with id: `{jobId}`. Should only happen in tests.");
var url = new Uri($"/web/signature-jobs/{jobId}/devmodesign", UriKind.Relative);
- await HttpClient.PostAsync(url, null);
+ var httpResponseMessage = await HttpClient.PostAsync(url, null);
+ return await httpResponseMessage.Content.ReadAsStringAsync();
}
}
}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Direct/DirectJob.cs b/Digipost.Signature.Api.Client.Direct/DirectJob.cs
index d590cb7f..e7b6c557 100755
--- a/Digipost.Signature.Api.Client.Direct/DirectJob.cs
+++ b/Digipost.Signature.Api.Client.Direct/DirectJob.cs
@@ -5,20 +5,23 @@ namespace Digipost.Signature.Api.Client.Direct
{
public class DirectJob : IRequestContent
{
- public DirectJob(Document document, Signer signer, string reference, ExitUrls exitUrls)
+ public DirectJob(Document document, Signer signer, string reference, ExitUrls exitUrls, Sender sender = null)
{
Reference = reference;
Signer = signer;
Document = document;
ExitUrls = exitUrls;
+ Sender = sender;
}
- public string Reference { get; private set; }
+ public string Reference { get; }
- public Signer Signer { get; private set; }
+ public Signer Signer { get; }
- public Document Document { get; private set; }
+ public Document Document { get; }
- public ExitUrls ExitUrls { get; private set; }
+ public ExitUrls ExitUrls { get; }
+
+ public Sender Sender { get; }
}
}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Direct/Enums/JobStatus.cs b/Digipost.Signature.Api.Client.Direct/Enums/JobStatus.cs
index 503d48e0..62ee3d51 100755
--- a/Digipost.Signature.Api.Client.Direct/Enums/JobStatus.cs
+++ b/Digipost.Signature.Api.Client.Direct/Enums/JobStatus.cs
@@ -2,8 +2,8 @@
{
public enum JobStatus
{
- Created,
- Signed,
- Cancelled
+ Cancelled,
+ Rejected,
+ Signed
}
}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Direct/ExitUrls.cs b/Digipost.Signature.Api.Client.Direct/ExitUrls.cs
index ef293228..820767eb 100755
--- a/Digipost.Signature.Api.Client.Direct/ExitUrls.cs
+++ b/Digipost.Signature.Api.Client.Direct/ExitUrls.cs
@@ -4,16 +4,16 @@ namespace Digipost.Signature.Api.Client.Direct
{
public class ExitUrls
{
- public ExitUrls(Uri completionUrl, Uri cancellationUrl, Uri errorUrl)
+ public ExitUrls(Uri completionUrl, Uri rejectionUrl, Uri errorUrl)
{
CompletionUrl = completionUrl;
- CancellationUrl = cancellationUrl;
+ RejectionUrl = rejectionUrl;
ErrorUrl = errorUrl;
}
public Uri CompletionUrl { get; set; }
- public Uri CancellationUrl { get; set; }
+ public Uri RejectionUrl { get; set; }
public Uri ErrorUrl { get; set; }
}
diff --git a/Digipost.Signature.Api.Client.Direct/Internal/DirectCreateAction.cs b/Digipost.Signature.Api.Client.Direct/Internal/DirectCreateAction.cs
index c1f586f3..6695898a 100755
--- a/Digipost.Signature.Api.Client.Direct/Internal/DirectCreateAction.cs
+++ b/Digipost.Signature.Api.Client.Direct/Internal/DirectCreateAction.cs
@@ -1,7 +1,6 @@
using System;
using Digipost.Signature.Api.Client.Core.Asice;
using Digipost.Signature.Api.Client.Core.Internal;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Digipost.Signature.Api.Client.Direct.DataTransferObjects;
namespace Digipost.Signature.Api.Client.Direct.Internal
diff --git a/Digipost.Signature.Api.Client.Direct/ResponseUrls.cs b/Digipost.Signature.Api.Client.Direct/ResponseUrls.cs
index c36e57e7..89711e05 100755
--- a/Digipost.Signature.Api.Client.Direct/ResponseUrls.cs
+++ b/Digipost.Signature.Api.Client.Direct/ResponseUrls.cs
@@ -4,14 +4,19 @@ namespace Digipost.Signature.Api.Client.Direct
{
public class ResponseUrls
{
+ private readonly Uri _statusUrl;
+
public ResponseUrls(Uri redirectUrl, Uri statusUrl)
{
+ _statusUrl = statusUrl;
Redirect = new RedirectReference(redirectUrl);
- Status = new StatusReference(statusUrl);
}
public RedirectReference Redirect { get; set; }
- public StatusReference Status { get; set; }
+ public StatusReference Status(string statusQueryToken)
+ {
+ return new StatusReference(_statusUrl, statusQueryToken);
+ }
}
}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Direct/StatusReference.cs b/Digipost.Signature.Api.Client.Direct/StatusReference.cs
index 6615dc60..f747a88d 100755
--- a/Digipost.Signature.Api.Client.Direct/StatusReference.cs
+++ b/Digipost.Signature.Api.Client.Direct/StatusReference.cs
@@ -4,11 +4,19 @@ namespace Digipost.Signature.Api.Client.Direct
{
public class StatusReference
{
- public StatusReference(Uri url)
+ public StatusReference(Uri baseUrl, string statusQueryToken)
{
- Url = url;
+ BaseUrl = baseUrl;
+ StatusQueryToken = statusQueryToken;
}
- public Uri Url { get; internal set; }
+ public string StatusQueryToken { get; }
+
+ internal Uri BaseUrl { get; }
+
+ public Uri Url()
+ {
+ return new Uri($"{BaseUrl.AbsoluteUri}?status_query_token={StatusQueryToken}");
+ }
}
}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Portal.Tests/AvailabilityTests.cs b/Digipost.Signature.Api.Client.Portal.Tests/AvailabilityTests.cs
new file mode 100755
index 00000000..105bdcaf
--- /dev/null
+++ b/Digipost.Signature.Api.Client.Portal.Tests/AvailabilityTests.cs
@@ -0,0 +1,39 @@
+using System;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace Digipost.Signature.Api.Client.Portal.Tests
+{
+ [TestClass]
+ public class AvailabilityTests
+ {
+ [TestClass]
+ public class AvailableForMethod : AvailabilityTests
+ {
+ [TestMethod]
+ public void ReturnsZeroWhenUninitialized()
+ {
+ //Arrange
+ var expectedAvailableSeconds = 0;
+
+ //Act
+ var availability = new Availability();
+
+ //Assert
+ Assert.AreEqual(expectedAvailableSeconds, availability.AvailableSeconds);
+ }
+
+ [TestMethod]
+ public void ReturnsSecondsWhenInitialized()
+ {
+ //Arrange
+ var expectedAvailableSeconds = 86400 + 3600 + 60 + 1;
+
+ //Act
+ var availability = new Availability {AvailableFor = new TimeSpan(1, 1, 1, 1)};
+
+ //Assert
+ Assert.AreEqual(expectedAvailableSeconds, availability.AvailableSeconds);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Portal.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs b/Digipost.Signature.Api.Client.Portal.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs
index 43b652c3..7c113ede 100755
--- a/Digipost.Signature.Api.Client.Portal.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs
+++ b/Digipost.Signature.Api.Client.Portal.Tests/DataTransferObjects/DataTransferObjectConverterTests.cs
@@ -4,7 +4,6 @@
using Digipost.Signature.Api.Client.Core;
using Digipost.Signature.Api.Client.Core.Tests.Utilities;
using Digipost.Signature.Api.Client.Core.Tests.Utilities.CompareObjects;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Digipost.Signature.Api.Client.Portal.DataTransferObjects;
using Digipost.Signature.Api.Client.Portal.Enums;
using Digipost.Signature.Api.Client.Portal.Extensions;
@@ -80,7 +79,7 @@ public void ConvertsManifestWithoutAvailabilitySuccessfully()
}
[TestMethod]
- public void ConvertsManifestWithOnlyExpirationAvailabilitySuccessfully()
+ public void ConvertsManifestWithOnlyAvailableSecondsSuccessfully()
{
//Arrange
const string organizationNumberSender = "12345678902";
@@ -89,7 +88,7 @@ public void ConvertsManifestWithOnlyExpirationAvailabilitySuccessfully()
{
Availability = new Availability
{
- Expiration = DateTime.Now.AddHours(22)
+ AvailableFor = new TimeSpan(0, 0, 1, 0)
}
};
@@ -110,7 +109,7 @@ public void ConvertsManifestWithOnlyExpirationAvailabilitySuccessfully()
},
availability = new availability
{
- expirationtime = source.Availability.Expiration.Value
+ availableseconds = source.Availability.AvailableSeconds
}
};
@@ -125,7 +124,7 @@ public void ConvertsManifestWithOnlyExpirationAvailabilitySuccessfully()
}
[TestMethod]
- public void ConvertsManifestWithOnlyActiviationAvailabilitySuccessfully()
+ public void ConvertsManifestWithOnlyActivationAvailabilitySuccessfully()
{
//Arrange
const string organizationNumberSender = "12345678902";
@@ -198,7 +197,7 @@ public void ConvertsManifestWithAvailabilitySuccessfully()
availability = new availability
{
activationtime = source.Availability.Activation.Value,
- expirationtime = source.Availability.Expiration.Value
+ availableseconds = source.Availability.AvailableSeconds
}
};
diff --git a/Digipost.Signature.Api.Client.Portal.Tests/Digipost.Signature.Api.Client.Portal.Tests.csproj b/Digipost.Signature.Api.Client.Portal.Tests/Digipost.Signature.Api.Client.Portal.Tests.csproj
index 0fecd73e..03df7adb 100755
--- a/Digipost.Signature.Api.Client.Portal.Tests/Digipost.Signature.Api.Client.Portal.Tests.csproj
+++ b/Digipost.Signature.Api.Client.Portal.Tests/Digipost.Signature.Api.Client.Portal.Tests.csproj
@@ -82,9 +82,11 @@
Properties\SharedAssemblyInfo.cs
+
+
diff --git a/Digipost.Signature.Api.Client.Portal.Tests/Extensions/EnumExtensionsTests.cs b/Digipost.Signature.Api.Client.Portal.Tests/Extensions/EnumExtensionsTests.cs
index 49d29684..01e8205c 100755
--- a/Digipost.Signature.Api.Client.Portal.Tests/Extensions/EnumExtensionsTests.cs
+++ b/Digipost.Signature.Api.Client.Portal.Tests/Extensions/EnumExtensionsTests.cs
@@ -1,5 +1,4 @@
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
-using Digipost.Signature.Api.Client.Portal.Enums;
+using Digipost.Signature.Api.Client.Portal.Enums;
using Digipost.Signature.Api.Client.Portal.Extensions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
diff --git a/Digipost.Signature.Api.Client.Portal.Tests/Fakes/FakeHttpClientHandlerChecksCorrectSenderResponse.cs b/Digipost.Signature.Api.Client.Portal.Tests/Fakes/FakeHttpClientHandlerChecksCorrectSenderResponse.cs
new file mode 100755
index 00000000..d49e15c6
--- /dev/null
+++ b/Digipost.Signature.Api.Client.Portal.Tests/Fakes/FakeHttpClientHandlerChecksCorrectSenderResponse.cs
@@ -0,0 +1,25 @@
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using Digipost.Signature.Api.Client.Core.Tests.Fakes;
+using Digipost.Signature.Api.Client.Portal.Tests.Utilities;
+
+namespace Digipost.Signature.Api.Client.Portal.Tests.Fakes
+{
+ internal class FakeHttpClientHandlerChecksCorrectSenderResponse : FakeHttpClientHandlerResponse
+ {
+ public string RequestUri { get; internal set; }
+
+ protected override async Task SendAsync(
+ HttpRequestMessage request, CancellationToken cancellationToken)
+ {
+ RequestUri = request.RequestUri.ToString();
+ return await base.SendAsync(request, cancellationToken);
+ }
+
+ public override HttpContent GetContent()
+ {
+ return new StringContent(ResponseUtility.GetJobStatusChangeResponse());
+ }
+ }
+}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Portal.Tests/PortalClientTests.cs b/Digipost.Signature.Api.Client.Portal.Tests/PortalClientTests.cs
index c6dad7da..afc51cf7 100755
--- a/Digipost.Signature.Api.Client.Portal.Tests/PortalClientTests.cs
+++ b/Digipost.Signature.Api.Client.Portal.Tests/PortalClientTests.cs
@@ -8,6 +8,7 @@
using Digipost.Signature.Api.Client.Portal.Exceptions;
using Digipost.Signature.Api.Client.Portal.Tests.Fakes;
using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Environment = Digipost.Signature.Api.Client.Core.Environment;
namespace Digipost.Signature.Api.Client.Portal.Tests
{
@@ -22,9 +23,87 @@ internal HttpClient GetHttpClientWithHandler(DelegatingHandler delegatingHandler
};
}
+ [TestClass]
+ public class CreateMethod : PortalClientTests
+ {
+ [TestMethod]
+ [ExpectedException(typeof (SenderNotSpecifiedException))]
+ public async Task ThrowsExceptionOnNoSender()
+ {
+ //Arrange
+ var clientConfiguration = new ClientConfiguration(Environment.DifiQa, CoreDomainUtility.GetPostenTestCertificate());
+ var portalClient = new PortalClient(clientConfiguration);
+ var portalJob = new PortalJob(CoreDomainUtility.GetDocument(), CoreDomainUtility.GetSigners(1), "SendersReference");
+
+ //Act
+ await portalClient.Create(portalJob);
+
+ //Assert
+ Assert.Fail();
+ }
+ }
+
[TestClass]
public class GetStatusChangeMethod : PortalClientTests
{
+ [TestMethod]
+ [ExpectedException(typeof (SenderNotSpecifiedException))]
+ public async Task ThrowsExceptionOnSenderNotSpecified()
+ {
+ //Arrange
+ var clientConfiguration = new ClientConfiguration(Environment.DifiQa, CoreDomainUtility.GetPostenTestCertificate());
+ var fakeHttpClientHandlerChecksCorrectSender = new FakeHttpClientHandlerForJobStatusChangeResponse();
+ var portalClient = new PortalClient(clientConfiguration)
+ {
+ HttpClient = GetHttpClientWithHandler(fakeHttpClientHandlerChecksCorrectSender)
+ };
+
+ //Act
+ await portalClient.GetStatusChange();
+
+ //Assert
+ Assert.Fail();
+ }
+
+ [TestMethod]
+ public async Task CanBeCalledWithoutSenderUsesSenderInClientConfiguration()
+ {
+ //Arrange
+ var sender = CoreDomainUtility.GetSender();
+ var clientConfiguration = new ClientConfiguration(Environment.DifiQa, CoreDomainUtility.GetPostenTestCertificate(), sender);
+ var fakeHttpClientHandlerChecksCorrectSender = new FakeHttpClientHandlerChecksCorrectSenderResponse();
+ var portalClient = new PortalClient(clientConfiguration)
+ {
+ HttpClient = GetHttpClientWithHandler(fakeHttpClientHandlerChecksCorrectSender)
+ };
+
+ //Act
+ await portalClient.GetStatusChange();
+
+ //Assert
+ Assert.IsTrue(fakeHttpClientHandlerChecksCorrectSender.RequestUri.Contains(sender.OrganizationNumber));
+ }
+
+ [TestMethod]
+ public async Task CalledWithBothSendersUsesInput()
+ {
+ //Arrange
+ var parameterSender = new Sender("000000000");
+ var clientConfigurationSender = new Sender("999999999");
+ var clientConfiguration = new ClientConfiguration(Environment.DifiQa, CoreDomainUtility.GetPostenTestCertificate(), clientConfigurationSender);
+ var fakeHttpClientHandlerChecksCorrectSender = new FakeHttpClientHandlerChecksCorrectSenderResponse();
+ var portalClient = new PortalClient(clientConfiguration)
+ {
+ HttpClient = GetHttpClientWithHandler(fakeHttpClientHandlerChecksCorrectSender)
+ };
+
+ //Act
+ await portalClient.GetStatusChange(parameterSender);
+
+ //Assert
+ Assert.IsTrue(fakeHttpClientHandlerChecksCorrectSender.RequestUri.Contains(parameterSender.OrganizationNumber));
+ }
+
[TestMethod]
public async Task ReturnsEmptyObjectOnEmptyQueue()
{
diff --git a/Digipost.Signature.Api.Client.Portal.Tests/PortalJobTests.cs b/Digipost.Signature.Api.Client.Portal.Tests/PortalJobTests.cs
index 8625b300..87ad5648 100755
--- a/Digipost.Signature.Api.Client.Portal.Tests/PortalJobTests.cs
+++ b/Digipost.Signature.Api.Client.Portal.Tests/PortalJobTests.cs
@@ -9,6 +9,17 @@ public class PortalJobTests
[TestClass]
public class ConstructorMethod : PortalJobTests
{
+ [TestMethod]
+ public void ConstructorWithoutSenderExists()
+ {
+ //Arrange
+
+ //Act
+ new PortalJob(null, null, null);
+
+ //Assert
+ }
+
[TestMethod]
public void SimpleConstructor()
{
diff --git a/Digipost.Signature.Api.Client.Portal.Tests/Smoke/PortalClientSmokeTests.cs b/Digipost.Signature.Api.Client.Portal.Tests/Smoke/PortalClientSmokeTests.cs
index 63455c20..4124d619 100755
--- a/Digipost.Signature.Api.Client.Portal.Tests/Smoke/PortalClientSmokeTests.cs
+++ b/Digipost.Signature.Api.Client.Portal.Tests/Smoke/PortalClientSmokeTests.cs
@@ -44,7 +44,7 @@ protected static PortalClient GetPortalClient()
private static PortalClient GetPortalClient(Environment environment)
{
var sender = new Sender("988015814");
- var clientConfig = new ClientConfiguration(environment, sender, CoreDomainUtility.GetTestIntegrasjonSertifikat());
+ var clientConfig = new ClientConfiguration(environment, CoreDomainUtility.GetTestIntegrasjonSertifikat(), sender);
var client = new PortalClient(clientConfig);
return client;
}
@@ -150,9 +150,10 @@ public async Task CancelsSuccessfully()
var portalClient = GetPortalClient();
var portalJobResponse = await portalClient.Create(portalJob);
+ var cancellationReference = new CancellationReference(GetUriFromRelativePath(portalJobResponse.CancellationReference.Url.AbsolutePath));
//Act
- portalClient.Cancel(portalJobResponse.CancellationReference).Wait();
+ portalClient.Cancel(cancellationReference).Wait();
var changeResponse = await portalClient.GetStatusChange();
diff --git a/Digipost.Signature.Api.Client.Portal.Tests/Utilities/DomainUtility.cs b/Digipost.Signature.Api.Client.Portal.Tests/Utilities/DomainUtility.cs
index c3651620..ccc47945 100755
--- a/Digipost.Signature.Api.Client.Portal.Tests/Utilities/DomainUtility.cs
+++ b/Digipost.Signature.Api.Client.Portal.Tests/Utilities/DomainUtility.cs
@@ -17,13 +17,20 @@ public static Availability GetAvailability()
return new Availability
{
Activation = DateTime.Now.AddHours(2),
- Expiration = DateTime.Now.AddDays(3)
+ AvailableFor = new TimeSpan(1, 0, 0, 0)
};
}
public static PortalJob GetPortalJob(int signers)
{
- return new PortalJob(CoreDomainUtility.GetDocument(), CoreDomainUtility.GetSigners(signers), "PortalJobReference");
+ return new PortalJob(CoreDomainUtility.GetDocument(), CoreDomainUtility.GetSigners(signers), "PortalJobReference")
+ {
+ Availability = new Availability
+ {
+ Activation = DateTime.Now,
+ AvailableFor = new TimeSpan(0, 0, 10, 0)
+ }
+ };
}
internal static PortalManifest GetPortalManifest()
diff --git a/Digipost.Signature.Api.Client.Portal/Availability.cs b/Digipost.Signature.Api.Client.Portal/Availability.cs
index db8f9846..fb2e225d 100755
--- a/Digipost.Signature.Api.Client.Portal/Availability.cs
+++ b/Digipost.Signature.Api.Client.Portal/Availability.cs
@@ -6,6 +6,11 @@ public class Availability
{
public DateTime? Activation { get; set; }
- public DateTime? Expiration { get; set; }
+ public long AvailableSeconds { get; private set; }
+
+ public TimeSpan AvailableFor
+ {
+ set { AvailableSeconds = (long) value.TotalSeconds; }
+ }
}
}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Portal/DataTransferObjects/DataTransferObjectConverter.cs b/Digipost.Signature.Api.Client.Portal/DataTransferObjects/DataTransferObjectConverter.cs
index 05501c60..9747227f 100755
--- a/Digipost.Signature.Api.Client.Portal/DataTransferObjects/DataTransferObjectConverter.cs
+++ b/Digipost.Signature.Api.Client.Portal/DataTransferObjects/DataTransferObjectConverter.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using Digipost.Signature.Api.Client.Core;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Digipost.Signature.Api.Client.Portal.Enums;
using Digipost.Signature.Api.Client.Portal.Extensions;
using Digipost.Signature.Api.Client.Portal.Internal.AsicE;
@@ -34,17 +33,13 @@ public static portalsignaturejobmanifest ToDataTransferObject(PortalManifest por
{
dataTransferObject.availability = new availability();
var activationTime = portalManifest.Availability.Activation;
- var expirationTime = portalManifest.Availability.Expiration;
if (activationTime != null)
{
dataTransferObject.availability.activationtime = portalManifest.Availability.Activation.Value;
}
- if (expirationTime != null)
- {
- dataTransferObject.availability.expirationtime = portalManifest.Availability.Expiration.Value;
- }
+ dataTransferObject.availability.availableseconds = portalManifest.Availability.AvailableSeconds;
}
return dataTransferObject;
diff --git a/Digipost.Signature.Api.Client.Portal/Extensions/EnumExtensions.cs b/Digipost.Signature.Api.Client.Portal/Extensions/EnumExtensions.cs
index aa29571c..a5a8d88c 100755
--- a/Digipost.Signature.Api.Client.Portal/Extensions/EnumExtensions.cs
+++ b/Digipost.Signature.Api.Client.Portal/Extensions/EnumExtensions.cs
@@ -1,5 +1,4 @@
using System;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Digipost.Signature.Api.Client.Portal.Enums;
namespace Digipost.Signature.Api.Client.Portal.Extensions
diff --git a/Digipost.Signature.Api.Client.Portal/Internal/AsicE/AsiceGenerator.cs b/Digipost.Signature.Api.Client.Portal/Internal/AsicE/AsiceGenerator.cs
index e6bc99b2..c3a5aca2 100755
--- a/Digipost.Signature.Api.Client.Portal/Internal/AsicE/AsiceGenerator.cs
+++ b/Digipost.Signature.Api.Client.Portal/Internal/AsicE/AsiceGenerator.cs
@@ -8,11 +8,14 @@ namespace Digipost.Signature.Api.Client.Portal.Internal.AsicE
{
internal class AsiceGenerator
{
- public static DocumentBundle CreateAsice(Sender sender, Document document, IEnumerable signers, X509Certificate2 certificate)
+ public static DocumentBundle CreateAsice(Sender sender, Document document, IEnumerable signers, Availability availability, X509Certificate2 certificate)
{
- var manifest = new PortalManifest(sender, document, signers);
- var signature = new SignatureGenerator(certificate, document, manifest);
+ var manifest = new PortalManifest(sender, document, signers)
+ {
+ Availability = availability
+ };
+ var signature = new SignatureGenerator(certificate, document, manifest);
var asiceArchive = new AsiceArchive(document, signature, manifest);
return new DocumentBundle(asiceArchive.Bytes);
diff --git a/Digipost.Signature.Api.Client.Portal/Internal/PortalCreateAction.cs b/Digipost.Signature.Api.Client.Portal/Internal/PortalCreateAction.cs
index 9c50498f..b75308dc 100755
--- a/Digipost.Signature.Api.Client.Portal/Internal/PortalCreateAction.cs
+++ b/Digipost.Signature.Api.Client.Portal/Internal/PortalCreateAction.cs
@@ -1,7 +1,6 @@
using System;
using Digipost.Signature.Api.Client.Core.Asice;
using Digipost.Signature.Api.Client.Core.Internal;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Digipost.Signature.Api.Client.Portal.DataTransferObjects;
namespace Digipost.Signature.Api.Client.Portal.Internal
diff --git a/Digipost.Signature.Api.Client.Portal/PortalClient.cs b/Digipost.Signature.Api.Client.Portal/PortalClient.cs
index eaaa369e..ed38e111 100755
--- a/Digipost.Signature.Api.Client.Portal/PortalClient.cs
+++ b/Digipost.Signature.Api.Client.Portal/PortalClient.cs
@@ -8,7 +8,6 @@
using System.Threading.Tasks;
using Digipost.Signature.Api.Client.Core;
using Digipost.Signature.Api.Client.Core.Asice;
-using Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code;
using Digipost.Signature.Api.Client.Portal.DataTransferObjects;
using Digipost.Signature.Api.Client.Portal.Exceptions;
using Digipost.Signature.Api.Client.Portal.Internal;
@@ -23,34 +22,33 @@ public class PortalClient : BaseClient
private const string NextPermittedPollTimeHeader = "X-Next-permitted-poll-time";
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private readonly Uri _subPath;
public PortalClient(ClientConfiguration clientConfiguration)
: base(clientConfiguration)
{
- _subPath = new Uri($"/api/{clientConfiguration.Sender.OrganizationNumber}/portal/signature-jobs", UriKind.Relative);
-
- Log.Debug($"Creating PortalClient, endpoint `{new Uri(clientConfiguration.Environment.Url, _subPath)}`");
}
public async Task Create(PortalJob portalJob)
{
- var documentBundle = AsiceGenerator.CreateAsice(ClientConfiguration.Sender, portalJob.Document, portalJob.Signers, ClientConfiguration.Certificate);
+ var sender = CurrentSender(portalJob.Sender);
+ var relativeUrl = RelativeUrl(sender);
+
+ var documentBundle = AsiceGenerator.CreateAsice(sender, portalJob.Document, portalJob.Signers, portalJob.Availability, ClientConfiguration.Certificate);
var portalCreateAction = new PortalCreateAction(portalJob, documentBundle);
- var portalJobResponse = await RequestHelper.Create(_subPath, portalCreateAction.Content(), PortalCreateAction.DeserializeFunc);
+ var portalJobResponse = await RequestHelper.Create(relativeUrl, portalCreateAction.Content(), PortalCreateAction.DeserializeFunc);
Log.Debug($"Successfully created Portal Job with JobId: {portalJobResponse.JobId}.");
return portalJobResponse;
}
- public async Task GetStatusChange()
+ public async Task GetStatusChange(Sender sender = null)
{
PortalJobStatusChangeResponse portalJobStatusChangeResponse;
var request = new HttpRequestMessage
{
- RequestUri = _subPath,
+ RequestUri = RelativeUrl(CurrentSender(sender)),
Method = HttpMethod.Get
};
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
@@ -84,6 +82,11 @@ public async Task GetStatusChange()
return portalJobStatusChangeResponse;
}
+ private static Uri RelativeUrl(Sender sender)
+ {
+ return new Uri($"/api/{sender.OrganizationNumber}/portal/signature-jobs", UriKind.Relative);
+ }
+
private static async Task ParseResponseToPortalJobStatusChangeResponse(string requestContent)
{
var deserialized = SerializeUtility.Deserialize(requestContent);
diff --git a/Digipost.Signature.Api.Client.Portal/PortalJob.cs b/Digipost.Signature.Api.Client.Portal/PortalJob.cs
index cbf1dd01..9622e38d 100755
--- a/Digipost.Signature.Api.Client.Portal/PortalJob.cs
+++ b/Digipost.Signature.Api.Client.Portal/PortalJob.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
using Digipost.Signature.Api.Client.Core;
using Digipost.Signature.Api.Client.Core.Internal;
@@ -7,19 +6,22 @@ namespace Digipost.Signature.Api.Client.Portal
{
public class PortalJob : IRequestContent
{
- public PortalJob(Document document, IEnumerable signers, string reference)
+ public PortalJob(Document document, IEnumerable signers, string reference, Sender sender = null)
{
Document = document;
Signers = signers;
Reference = reference;
+ Sender = sender;
}
- public Document Document { get; set; }
+ public Document Document { get; }
- public string Reference { get; private set; }
+ public IEnumerable Signers { get; }
- public IEnumerable Signers { get; private set; }
+ public string Reference { get; }
- public DateTime DistributionTime { get; private set; }
+ public Sender Sender { get; }
+
+ public Availability Availability { get; set; }
}
}
\ No newline at end of file
diff --git a/Digipost.Signature.Api.Client.Scripts/XsdToCode/Code/direct-and-portal.cs b/Digipost.Signature.Api.Client.Scripts/XsdToCode/Code/direct-and-portal.cs
index 87a81747..6bf40762 100755
--- a/Digipost.Signature.Api.Client.Scripts/XsdToCode/Code/direct-and-portal.cs
+++ b/Digipost.Signature.Api.Client.Scripts/XsdToCode/Code/direct-and-portal.cs
@@ -10,794 +10,795 @@
using System.Xml.Serialization;
-namespace Digipost.Signature.Api.Client.DataTransferObjects.XsdToCode.Code
-{ //
+//
// This source code was auto-generated by xsd, Version=4.6.1055.0.
//
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
+[System.Xml.Serialization.XmlRootAttribute(Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
+public partial class error {
+
+ private string errorcodeField;
+
+ private string errormessageField;
+
+ private string errortypeField;
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
- [XmlRoot(Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
- public partial class error {
-
- private string errorcodeField;
-
- private string errormessageField;
-
- private string errortypeField;
-
- ///
- [XmlElement("error-code")]
- public string errorcode {
- get {
- return this.errorcodeField;
- }
- set {
- this.errorcodeField = value;
- }
- }
-
- ///
- [XmlElement("error-message")]
- public string errormessage {
- get {
- return this.errormessageField;
- }
- set {
- this.errormessageField = value;
- }
- }
-
- ///
- [XmlElement("error-type")]
- public string errortype {
- get {
- return this.errortypeField;
- }
- set {
- this.errortypeField = value;
- }
+ [System.Xml.Serialization.XmlElementAttribute("error-code")]
+ public string errorcode {
+ get {
+ return this.errorcodeField;
+ }
+ set {
+ this.errorcodeField = value;
}
}
-
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(Namespace="http://signering.posten.no/schema/v1")]
- public partial class signature {
+ [System.Xml.Serialization.XmlElementAttribute("error-message")]
+ public string errormessage {
+ get {
+ return this.errormessageField;
+ }
+ set {
+ this.errormessageField = value;
+ }
+ }
- private signaturestatus statusField;
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("error-type")]
+ public string errortype {
+ get {
+ return this.errortypeField;
+ }
+ set {
+ this.errortypeField = value;
+ }
+ }
+}
+
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://signering.posten.no/schema/v1")]
+public partial class signature {
- private string personalidentificationnumberField;
+ private signaturestatus statusField;
- private string xadesurlField;
+ private string personalidentificationnumberField;
- ///
- public signaturestatus status {
- get {
- return this.statusField;
- }
- set {
- this.statusField = value;
- }
+ private string xadesurlField;
+
+ ///
+ public signaturestatus status {
+ get {
+ return this.statusField;
+ }
+ set {
+ this.statusField = value;
}
+ }
- ///
- [XmlElement("personal-identification-number")]
- public string personalidentificationnumber {
- get {
- return this.personalidentificationnumberField;
- }
- set {
- this.personalidentificationnumberField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("personal-identification-number")]
+ public string personalidentificationnumber {
+ get {
+ return this.personalidentificationnumberField;
+ }
+ set {
+ this.personalidentificationnumberField = value;
}
+ }
- ///
- [XmlElement("xades-url")]
- public string xadesurl {
- get {
- return this.xadesurlField;
- }
- set {
- this.xadesurlField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("xades-url")]
+ public string xadesurl {
+ get {
+ return this.xadesurlField;
+ }
+ set {
+ this.xadesurlField = value;
}
}
+}
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Xml.Serialization.XmlTypeAttribute(TypeName="signature-status", Namespace="http://signering.posten.no/schema/v1")]
+public enum signaturestatus {
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [XmlType(TypeName="signature-status", Namespace="http://signering.posten.no/schema/v1")]
- public enum signaturestatus {
+ WAITING,
- ///
- WAITING,
+ ///
+ REJECTED,
- ///
- REJECTED,
+ ///
+ CANCELLED,
- ///
- CANCELLED,
+ ///
+ EXPIRED,
- ///
- SIGNED,
- }
-
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(Namespace="http://signering.posten.no/schema/v1")]
- public partial class signatures {
+ SIGNED,
+}
+
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://signering.posten.no/schema/v1")]
+public partial class signatures {
- private signature[] signatureField;
+ private signature[] signatureField;
- private string padesurlField;
+ private string padesurlField;
- ///
- [XmlElement("signature")]
- public signature[] signature {
- get {
- return this.signatureField;
- }
- set {
- this.signatureField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("signature")]
+ public signature[] signature {
+ get {
+ return this.signatureField;
}
-
- ///
- [XmlElement("pades-url")]
- public string padesurl {
- get {
- return this.padesurlField;
- }
- set {
- this.padesurlField = value;
- }
+ set {
+ this.signatureField = value;
}
}
-
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(Namespace="http://signering.posten.no/schema/v1")]
- public partial class availability {
-
- private System.DateTime activationtimeField;
-
- private bool activationtimeFieldSpecified;
-
- private System.DateTime expirationtimeField;
-
- private bool expirationtimeFieldSpecified;
-
- ///
- [XmlElement("activation-time")]
- public System.DateTime activationtime {
- get {
- return this.activationtimeField;
- }
- set {
- this.activationtimeField = value;
- }
- }
-
- ///
- [XmlIgnore()]
- public bool activationtimeSpecified {
- get {
- return this.activationtimeFieldSpecified;
- }
- set {
- this.activationtimeFieldSpecified = value;
- }
- }
-
- ///
- [XmlElement("expiration-time")]
- public System.DateTime expirationtime {
- get {
- return this.expirationtimeField;
- }
- set {
- this.expirationtimeField = value;
- }
- }
-
- ///
- [XmlIgnore()]
- public bool expirationtimeSpecified {
- get {
- return this.expirationtimeFieldSpecified;
- }
- set {
- this.expirationtimeFieldSpecified = value;
- }
+ [System.Xml.Serialization.XmlElementAttribute("pades-url")]
+ public string padesurl {
+ get {
+ return this.padesurlField;
+ }
+ set {
+ this.padesurlField = value;
}
}
+}
- ///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(Namespace="http://signering.posten.no/schema/v1")]
- public partial class document {
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://signering.posten.no/schema/v1")]
+public partial class availability {
- private string titleField;
+ private System.DateTime activationtimeField;
- private string descriptionField;
+ private bool activationtimeFieldSpecified;
- private string hrefField;
+ private long availablesecondsField;
- private string mimeField;
+ private bool availablesecondsFieldSpecified;
- ///
- public string title {
- get {
- return this.titleField;
- }
- set {
- this.titleField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("activation-time")]
+ public System.DateTime activationtime {
+ get {
+ return this.activationtimeField;
+ }
+ set {
+ this.activationtimeField = value;
}
+ }
- ///
- public string description {
- get {
- return this.descriptionField;
- }
- set {
- this.descriptionField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool activationtimeSpecified {
+ get {
+ return this.activationtimeFieldSpecified;
+ }
+ set {
+ this.activationtimeFieldSpecified = value;
}
+ }
- ///
- [XmlAttribute()]
- public string href {
- get {
- return this.hrefField;
- }
- set {
- this.hrefField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("available-seconds")]
+ public long availableseconds {
+ get {
+ return this.availablesecondsField;
+ }
+ set {
+ this.availablesecondsField = value;
}
+ }
- ///
- [XmlAttribute()]
- public string mime {
- get {
- return this.mimeField;
- }
- set {
- this.mimeField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool availablesecondsSpecified {
+ get {
+ return this.availablesecondsFieldSpecified;
+ }
+ set {
+ this.availablesecondsFieldSpecified = value;
}
}
+}
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://signering.posten.no/schema/v1")]
+public partial class document {
+
+ private string titleField;
+
+ private string descriptionField;
+
+ private string hrefField;
+
+ private string mimeField;
+
+ ///
+ public string title {
+ get {
+ return this.titleField;
+ }
+ set {
+ this.titleField = value;
+ }
+ }
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(Namespace="http://signering.posten.no/schema/v1")]
- public partial class sender {
+ public string description {
+ get {
+ return this.descriptionField;
+ }
+ set {
+ this.descriptionField = value;
+ }
+ }
- private string organizationnumberField;
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string href {
+ get {
+ return this.hrefField;
+ }
+ set {
+ this.hrefField = value;
+ }
+ }
- ///
- [XmlElement("organization-number")]
- public string organizationnumber {
- get {
- return this.organizationnumberField;
- }
- set {
- this.organizationnumberField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string mime {
+ get {
+ return this.mimeField;
+ }
+ set {
+ this.mimeField = value;
}
}
+}
- ///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(Namespace="http://signering.posten.no/schema/v1")]
- public partial class signer {
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://signering.posten.no/schema/v1")]
+public partial class sender {
- private string personalidentificationnumberField;
+ private string organizationnumberField;
- ///
- [XmlElement("personal-identification-number")]
- public string personalidentificationnumber {
- get {
- return this.personalidentificationnumberField;
- }
- set {
- this.personalidentificationnumberField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("organization-number")]
+ public string organizationnumber {
+ get {
+ return this.organizationnumberField;
+ }
+ set {
+ this.organizationnumberField = value;
}
}
+}
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://signering.posten.no/schema/v1")]
+public partial class signer {
+
+ private string personalidentificationnumberField;
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(TypeName="exit-urls", Namespace="http://signering.posten.no/schema/v1")]
- public partial class exiturls {
+ [System.Xml.Serialization.XmlElementAttribute("personal-identification-number")]
+ public string personalidentificationnumber {
+ get {
+ return this.personalidentificationnumberField;
+ }
+ set {
+ this.personalidentificationnumberField = value;
+ }
+ }
+}
+
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(TypeName="exit-urls", Namespace="http://signering.posten.no/schema/v1")]
+public partial class exiturls {
- private string completionurlField;
+ private string completionurlField;
- private string cancellationurlField;
+ private string rejectionurlField;
- private string errorurlField;
+ private string errorurlField;
- ///
- [XmlElement("completion-url")]
- public string completionurl {
- get {
- return this.completionurlField;
- }
- set {
- this.completionurlField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("completion-url")]
+ public string completionurl {
+ get {
+ return this.completionurlField;
+ }
+ set {
+ this.completionurlField = value;
}
+ }
- ///
- [XmlElement("cancellation-url")]
- public string cancellationurl {
- get {
- return this.cancellationurlField;
- }
- set {
- this.cancellationurlField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("rejection-url")]
+ public string rejectionurl {
+ get {
+ return this.rejectionurlField;
+ }
+ set {
+ this.rejectionurlField = value;
}
+ }
- ///
- [XmlElement("error-url")]
- public string errorurl {
- get {
- return this.errorurlField;
- }
- set {
- this.errorurlField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("error-url")]
+ public string errorurl {
+ get {
+ return this.errorurlField;
+ }
+ set {
+ this.errorurlField = value;
}
}
+}
- ///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
- [XmlRoot("direct-signature-job-request", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
- public partial class directsignaturejobrequest {
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
+[System.Xml.Serialization.XmlRootAttribute("direct-signature-job-request", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
+public partial class directsignaturejobrequest {
- private string referenceField;
+ private string referenceField;
- private exiturls exiturlsField;
+ private exiturls exiturlsField;
- ///
- public string reference {
- get {
- return this.referenceField;
- }
- set {
- this.referenceField = value;
- }
+ ///
+ public string reference {
+ get {
+ return this.referenceField;
+ }
+ set {
+ this.referenceField = value;
}
+ }
- ///
- [XmlElement("exit-urls")]
- public exiturls exiturls {
- get {
- return this.exiturlsField;
- }
- set {
- this.exiturlsField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("exit-urls")]
+ public exiturls exiturls {
+ get {
+ return this.exiturlsField;
+ }
+ set {
+ this.exiturlsField = value;
}
}
+}
- ///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
- [XmlRoot("direct-signature-job-manifest", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
- public partial class directsignaturejobmanifest {
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
+[System.Xml.Serialization.XmlRootAttribute("direct-signature-job-manifest", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
+public partial class directsignaturejobmanifest {
- private signer signerField;
+ private signer signerField;
- private sender senderField;
+ private sender senderField;
- private document documentField;
+ private document documentField;
- ///
- public signer signer {
- get {
- return this.signerField;
- }
- set {
- this.signerField = value;
- }
+ ///
+ public signer signer {
+ get {
+ return this.signerField;
+ }
+ set {
+ this.signerField = value;
}
+ }
- ///
- public sender sender {
- get {
- return this.senderField;
- }
- set {
- this.senderField = value;
- }
+ ///
+ public sender sender {
+ get {
+ return this.senderField;
+ }
+ set {
+ this.senderField = value;
}
+ }
- ///
- public document document {
- get {
- return this.documentField;
- }
- set {
- this.documentField = value;
- }
+ ///
+ public document document {
+ get {
+ return this.documentField;
+ }
+ set {
+ this.documentField = value;
}
}
+}
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
+[System.Xml.Serialization.XmlRootAttribute("direct-signature-job-response", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
+public partial class directsignaturejobresponse {
+
+ private long signaturejobidField;
+
+ private string redirecturlField;
+
+ private string statusurlField;
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
- [XmlRoot("direct-signature-job-response", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
- public partial class directsignaturejobresponse {
-
- private long signaturejobidField;
-
- private string redirecturlField;
-
- private string statusurlField;
-
- ///
- [XmlElement("signature-job-id")]
- public long signaturejobid {
- get {
- return this.signaturejobidField;
- }
- set {
- this.signaturejobidField = value;
- }
- }
-
- ///
- [XmlElement("redirect-url")]
- public string redirecturl {
- get {
- return this.redirecturlField;
- }
- set {
- this.redirecturlField = value;
- }
- }
-
- ///
- [XmlElement("status-url")]
- public string statusurl {
- get {
- return this.statusurlField;
- }
- set {
- this.statusurlField = value;
- }
+ [System.Xml.Serialization.XmlElementAttribute("signature-job-id")]
+ public long signaturejobid {
+ get {
+ return this.signaturejobidField;
+ }
+ set {
+ this.signaturejobidField = value;
}
}
-
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("redirect-url")]
+ public string redirecturl {
+ get {
+ return this.redirecturlField;
+ }
+ set {
+ this.redirecturlField = value;
+ }
+ }
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
- [XmlRoot("direct-signature-job-status-response", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
- public partial class directsignaturejobstatusresponse {
-
- private long signaturejobidField;
-
- private directsignaturejobstatus statusField;
-
- private string confirmationurlField;
-
- private string xadesurlField;
-
- private string padesurlField;
-
- ///
- [XmlElement("signature-job-id")]
- public long signaturejobid {
- get {
- return this.signaturejobidField;
- }
- set {
- this.signaturejobidField = value;
- }
- }
-
- ///
- public directsignaturejobstatus status {
- get {
- return this.statusField;
- }
- set {
- this.statusField = value;
- }
- }
-
- ///
- [XmlElement("confirmation-url")]
- public string confirmationurl {
- get {
- return this.confirmationurlField;
- }
- set {
- this.confirmationurlField = value;
- }
- }
-
- ///
- [XmlElement("xades-url")]
- public string xadesurl {
- get {
- return this.xadesurlField;
- }
- set {
- this.xadesurlField = value;
- }
- }
-
- ///
- [XmlElement("pades-url")]
- public string padesurl {
- get {
- return this.padesurlField;
- }
- set {
- this.padesurlField = value;
- }
+ [System.Xml.Serialization.XmlElementAttribute("status-url")]
+ public string statusurl {
+ get {
+ return this.statusurlField;
+ }
+ set {
+ this.statusurlField = value;
}
}
+}
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
+[System.Xml.Serialization.XmlRootAttribute("direct-signature-job-status-response", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
+public partial class directsignaturejobstatusresponse {
+
+ private long signaturejobidField;
+
+ private directsignaturejobstatus statusField;
+
+ private string confirmationurlField;
+
+ private string xadesurlField;
+
+ private string padesurlField;
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("signature-job-id")]
+ public long signaturejobid {
+ get {
+ return this.signaturejobidField;
+ }
+ set {
+ this.signaturejobidField = value;
+ }
+ }
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [XmlType(TypeName="direct-signature-job-status", Namespace="http://signering.posten.no/schema/v1")]
- public enum directsignaturejobstatus {
+ public directsignaturejobstatus status {
+ get {
+ return this.statusField;
+ }
+ set {
+ this.statusField = value;
+ }
+ }
- ///
- CREATED,
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("confirmation-url")]
+ public string confirmationurl {
+ get {
+ return this.confirmationurlField;
+ }
+ set {
+ this.confirmationurlField = value;
+ }
+ }
- ///
- SIGNED,
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("xades-url")]
+ public string xadesurl {
+ get {
+ return this.xadesurlField;
+ }
+ set {
+ this.xadesurlField = value;
+ }
+ }
- ///
- CANCELLED,
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("pades-url")]
+ public string padesurl {
+ get {
+ return this.padesurlField;
+ }
+ set {
+ this.padesurlField = value;
+ }
}
+}
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Xml.Serialization.XmlTypeAttribute(TypeName="direct-signature-job-status", Namespace="http://signering.posten.no/schema/v1")]
+public enum directsignaturejobstatus {
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
- [XmlRoot("portal-signature-job-request", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
- public partial class portalsignaturejobrequest {
+ SIGNED,
- private string referenceField;
+ ///
+ REJECTED,
+
+ ///
+ FAILED,
+}
+
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
+[System.Xml.Serialization.XmlRootAttribute("portal-signature-job-request", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
+public partial class portalsignaturejobrequest {
+
+ private string referenceField;
- ///
- public string reference {
- get {
- return this.referenceField;
- }
- set {
- this.referenceField = value;
- }
+ ///
+ public string reference {
+ get {
+ return this.referenceField;
+ }
+ set {
+ this.referenceField = value;
}
}
+}
- ///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
- [XmlRoot("portal-signature-job-manifest", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
- public partial class portalsignaturejobmanifest {
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
+[System.Xml.Serialization.XmlRootAttribute("portal-signature-job-manifest", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
+public partial class portalsignaturejobmanifest {
- private signer[] signersField;
+ private signer[] signersField;
- private sender senderField;
+ private sender senderField;
- private document documentField;
+ private document documentField;
- private availability availabilityField;
+ private availability availabilityField;
- ///
- [XmlArrayItem(IsNullable=false)]
- public signer[] signers {
- get {
- return this.signersField;
- }
- set {
- this.signersField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
+ public signer[] signers {
+ get {
+ return this.signersField;
}
+ set {
+ this.signersField = value;
+ }
+ }
- ///
- public sender sender {
- get {
- return this.senderField;
- }
- set {
- this.senderField = value;
- }
+ ///
+ public sender sender {
+ get {
+ return this.senderField;
}
+ set {
+ this.senderField = value;
+ }
+ }
- ///
- public document document {
- get {
- return this.documentField;
- }
- set {
- this.documentField = value;
- }
+ ///
+ public document document {
+ get {
+ return this.documentField;
}
+ set {
+ this.documentField = value;
+ }
+ }
- ///
- public availability availability {
- get {
- return this.availabilityField;
- }
- set {
- this.availabilityField = value;
- }
+ ///
+ public availability availability {
+ get {
+ return this.availabilityField;
+ }
+ set {
+ this.availabilityField = value;
}
}
+}
- ///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
- [XmlRoot("portal-signature-job-response", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
- public partial class portalsignaturejobresponse {
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
+[System.Xml.Serialization.XmlRootAttribute("portal-signature-job-response", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
+public partial class portalsignaturejobresponse {
- private long signaturejobidField;
+ private long signaturejobidField;
- private string cancellationurlField;
+ private string cancellationurlField;
- ///
- [XmlElement("signature-job-id")]
- public long signaturejobid {
- get {
- return this.signaturejobidField;
- }
- set {
- this.signaturejobidField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("signature-job-id")]
+ public long signaturejobid {
+ get {
+ return this.signaturejobidField;
}
+ set {
+ this.signaturejobidField = value;
+ }
+ }
- ///
- [XmlElement("cancellation-url")]
- public string cancellationurl {
- get {
- return this.cancellationurlField;
- }
- set {
- this.cancellationurlField = value;
- }
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("cancellation-url")]
+ public string cancellationurl {
+ get {
+ return this.cancellationurlField;
+ }
+ set {
+ this.cancellationurlField = value;
}
}
+}
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
+[System.Xml.Serialization.XmlRootAttribute("portal-signature-job-status-change-response", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
+public partial class portalsignaturejobstatuschangeresponse {
+
+ private long signaturejobidField;
+
+ private portalsignaturejobstatus statusField;
+
+ private string confirmationurlField;
+
+ private string cancellationurlField;
+
+ private signatures signaturesField;
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [XmlType(AnonymousType=true, Namespace="http://signering.posten.no/schema/v1")]
- [XmlRoot("portal-signature-job-status-change-response", Namespace="http://signering.posten.no/schema/v1", IsNullable=false)]
- public partial class portalsignaturejobstatuschangeresponse {
-
- private long signaturejobidField;
-
- private portalsignaturejobstatus statusField;
-
- private string confirmationurlField;
-
- private string cancellationurlField;
-
- private signatures signaturesField;
-
- ///
- [XmlElement("signature-job-id")]
- public long signaturejobid {
- get {
- return this.signaturejobidField;
- }
- set {
- this.signaturejobidField = value;
- }
- }
-
- ///
- public portalsignaturejobstatus status {
- get {
- return this.statusField;
- }
- set {
- this.statusField = value;
- }
- }
-
- ///
- [XmlElement("confirmation-url")]
- public string confirmationurl {
- get {
- return this.confirmationurlField;
- }
- set {
- this.confirmationurlField = value;
- }
- }
-
- ///
- [XmlElement("cancellation-url")]
- public string cancellationurl {
- get {
- return this.cancellationurlField;
- }
- set {
- this.cancellationurlField = value;
- }
- }
-
- ///
- public signatures signatures {
- get {
- return this.signaturesField;
- }
- set {
- this.signaturesField = value;
- }
+ [System.Xml.Serialization.XmlElementAttribute("signature-job-id")]
+ public long signaturejobid {
+ get {
+ return this.signaturejobidField;
+ }
+ set {
+ this.signaturejobidField = value;
}
}
-
+
+ ///
+ public portalsignaturejobstatus status {
+ get {
+ return this.statusField;
+ }
+ set {
+ this.statusField = value;
+ }
+ }
+
///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
- [System.SerializableAttribute()]
- [XmlType(TypeName="portal-signature-job-status", Namespace="http://signering.posten.no/schema/v1")]
- public enum portalsignaturejobstatus {
+ [System.Xml.Serialization.XmlElementAttribute("confirmation-url")]
+ public string confirmationurl {
+ get {
+ return this.confirmationurlField;
+ }
+ set {
+ this.confirmationurlField = value;
+ }
+ }
- ///
- PARTIALLY_COMPLETED,
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("cancellation-url")]
+ public string cancellationurl {
+ get {
+ return this.cancellationurlField;
+ }
+ set {
+ this.cancellationurlField = value;
+ }
+ }
- ///
- COMPLETED,
+ ///
+ public signatures signatures {
+ get {
+ return this.signaturesField;
+ }
+ set {
+ this.signaturesField = value;
+ }
}
-}
\ No newline at end of file
+}
+
+///
+[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+[System.SerializableAttribute()]
+[System.Xml.Serialization.XmlTypeAttribute(TypeName="portal-signature-job-status", Namespace="http://signering.posten.no/schema/v1")]
+public enum portalsignaturejobstatus {
+
+ ///
+ PARTIALLY_COMPLETED,
+
+ ///
+ COMPLETED,
+}
diff --git a/Digipost.Signature.Api.Client.Scripts/XsdToCode/Xsd/common.xsd b/Digipost.Signature.Api.Client.Scripts/XsdToCode/Xsd/common.xsd
index e572dab1..2b3df9b3 100755
--- a/Digipost.Signature.Api.Client.Scripts/XsdToCode/Xsd/common.xsd
+++ b/Digipost.Signature.Api.Client.Scripts/XsdToCode/Xsd/common.xsd
@@ -1,5 +1,4 @@
-
-
+