Skip to content

Commit af63647

Browse files
committed
Support Request for Registration
RfR er is method for delivery where you can wait some time for the user to register and receive documents when they do. If they decide to opt out there is an option for the sender to have the document printed and sent by physical mail. Generate code from new changes to xsd for request-for-registration
1 parent 9a94439 commit af63647

File tree

14 files changed

+261
-9
lines changed

14 files changed

+261
-9
lines changed

Digipost.Api.Client.Common/DataTransferObjectConverter.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Digipost.Api.Client.Common.Print;
88
using Digipost.Api.Client.Common.Recipient;
99
using Digipost.Api.Client.Common.Search;
10+
using Digipost.Api.Client.Send;
1011
using V8;
1112
using Identification = V8.Identification;
1213
using Link = Digipost.Api.Client.Common.Entrypoint.Link;
@@ -187,7 +188,7 @@ private static Message_Recipient RecipientDataTransferObjectFromRecipientByNameA
187188
};
188189
}
189190

190-
public static Print_Details ToDataTransferObject(IPrintDetails printDetails)
191+
internal static Print_Details ToDataTransferObject(this IPrintDetails printDetails)
191192
{
192193
if (printDetails == null)
193194
return null;
@@ -241,6 +242,17 @@ public static Print_If_Unread ToDataTransferObject(IPrintIfUnread printIfUnread)
241242
return printIfUnreadDataTransferObject;
242243
}
243244

245+
internal static Request_For_Registration ToDataTransferObject(this RequestForRegistration requestForRegistration)
246+
{
247+
return new Request_For_Registration
248+
{
249+
Registration_Deadline = requestForRegistration.RegistrationDeadline,
250+
Phone_Number = requestForRegistration.PhoneNumber,
251+
Email_Address = requestForRegistration.EmailAddress,
252+
Print_Details = requestForRegistration.PrintDetails.ToDataTransferObject()
253+
};
254+
}
255+
244256
private static Print_Recipient ToDataTransferObject(IPrint recipient)
245257
{
246258
var printRecipientDto = new Print_Recipient

Digipost.Api.Client.Common/Enums/DeliveryMethod.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ public enum DeliveryMethod
2020
/// <summary>
2121
/// Delivered to email
2222
/// </summary>
23-
EPOST
23+
EPOST,
24+
25+
/// <summary>
26+
/// Pending delivery
27+
/// </summary>
28+
PENDING
2429
}
2530
}

Digipost.Api.Client.Common/Extensions/EnumExtensions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ public static DeliveryMethod ToDeliveryMethod(this V8.Channel deliveryMethod)
7272
return DeliveryMethod.PEPPOL;
7373
case V8.Channel.EPOST:
7474
return DeliveryMethod.EPOST;
75+
case V8.Channel.PENDING:
76+
return DeliveryMethod.PENDING;
7577
default:
7678
throw new ArgumentOutOfRangeException(nameof(deliveryMethod), deliveryMethod, null);
7779
}

Digipost.Api.Client.Common/Generated/Apidomain/V8.cs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1244,6 +1244,8 @@ public enum Channel
12441244
PEPPOL,
12451245

12461246
EPOST,
1247+
1248+
PENDING,
12471249
}
12481250

12491251
[System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.0.594.0")]
@@ -1722,6 +1724,9 @@ public Message()
17221724
[System.Xml.Serialization.XmlElementAttribute("print-if-unread")]
17231725
public Print_If_Unread Print_If_Unread { get; set; }
17241726

1727+
[System.Xml.Serialization.XmlElementAttribute("request-for-registration")]
1728+
public Request_For_Registration Request_For_Registration { get; set; }
1729+
17251730
[System.Xml.Serialization.XmlElementAttribute("batch")]
17261731
public Batch Batch { get; set; }
17271732
}
@@ -1774,6 +1779,28 @@ public partial class Print_If_Unread
17741779
public Print_Details Print_Details { get; set; }
17751780
}
17761781

1782+
[System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.0.594.0")]
1783+
[System.SerializableAttribute()]
1784+
[System.Xml.Serialization.XmlTypeAttribute("request-for-registration", Namespace="http://api.digipost.no/schema/v8")]
1785+
[System.Diagnostics.DebuggerStepThroughAttribute()]
1786+
[System.ComponentModel.DesignerCategoryAttribute("code")]
1787+
public partial class Request_For_Registration
1788+
{
1789+
1790+
[System.ComponentModel.DataAnnotations.RequiredAttribute()]
1791+
[System.Xml.Serialization.XmlElementAttribute("registration-deadline", DataType="dateTime")]
1792+
public System.DateTime Registration_Deadline { get; set; }
1793+
1794+
[System.Xml.Serialization.XmlElementAttribute("phone-number")]
1795+
public string Phone_Number { get; set; }
1796+
1797+
[System.Xml.Serialization.XmlElementAttribute("email-address")]
1798+
public string Email_Address { get; set; }
1799+
1800+
[System.Xml.Serialization.XmlElementAttribute("print-details")]
1801+
public Print_Details Print_Details { get; set; }
1802+
}
1803+
17771804
[System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.0.594.0")]
17781805
[System.SerializableAttribute()]
17791806
[System.Xml.Serialization.XmlTypeAttribute("batch", Namespace="http://api.digipost.no/schema/v8")]
@@ -2339,6 +2366,7 @@ public partial class Event
23392366
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Failed_Print_Metadata))]
23402367
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Move_Files_From_Public_Sector_Metadata))]
23412368
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Postmarked_Metadata))]
2369+
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Request_For_Registration_Expired_Metadata))]
23422370
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Sms_Notification_Failed_Metadata))]
23432371
public abstract partial class Event_Metadata
23442372
{
@@ -2371,6 +2399,12 @@ public enum Event_Type
23712399
PEPPOL_DELIVERED,
23722400

23732401
PEPPOL_FAILED,
2402+
2403+
REQUEST_FOR_REGISTRATION_EXPIRED,
2404+
2405+
REQUEST_FOR_REGISTRATION_DELIVERED_DIGIPOST,
2406+
2407+
REQUEST_FOR_REGISTRATION_FAILED,
23742408
}
23752409

23762410
[System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.0.594.0")]
@@ -2584,6 +2618,18 @@ public partial class Postmarked_Metadata : Event_Metadata
25842618
public System.DateTime Postmarked_Date { get; set; }
25852619
}
25862620

2621+
[System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.0.594.0")]
2622+
[System.SerializableAttribute()]
2623+
[System.Xml.Serialization.XmlTypeAttribute("request-for-registration-expired-metadata", Namespace="http://api.digipost.no/schema/v8")]
2624+
[System.Diagnostics.DebuggerStepThroughAttribute()]
2625+
[System.ComponentModel.DesignerCategoryAttribute("code")]
2626+
public partial class Request_For_Registration_Expired_Metadata : Event_Metadata
2627+
{
2628+
2629+
[System.Xml.Serialization.XmlAttributeAttribute("fallback-channel")]
2630+
public string Fallback_Channel { get; set; }
2631+
}
2632+
25872633
[System.CodeDom.Compiler.GeneratedCodeAttribute("XmlSchemaClassGenerator", "2.0.594.0")]
25882634
[System.SerializableAttribute()]
25892635
[System.Xml.Serialization.XmlTypeAttribute("inbox", Namespace="http://api.digipost.no/schema/v8")]
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System;
2+
using Digipost.Api.Client.Common.Print;
3+
4+
namespace Digipost.Api.Client.Send
5+
{
6+
public class RequestForRegistration
7+
{
8+
public RequestForRegistration(
9+
DateTime registrationDeadline,
10+
String phoneNumber,
11+
String emailAddress,
12+
IPrintDetails printDetails
13+
)
14+
{
15+
RegistrationDeadline = registrationDeadline;
16+
PhoneNumber = phoneNumber;
17+
EmailAddress = emailAddress;
18+
PrintDetails = printDetails;
19+
}
20+
21+
public DateTime RegistrationDeadline { get; }
22+
23+
public string PhoneNumber { get; }
24+
25+
public string EmailAddress { get; }
26+
27+
public IPrintDetails PrintDetails { get; }
28+
}
29+
}

Digipost.Api.Client.Docs/SendExamples.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,35 @@ public void SendLetterWithPrintIfUnread()
181181
var result = client.SendMessage(messageWithPrintIfUnread);
182182
}
183183

184+
public void SendLetterWithRequestForRegistration()
185+
{
186+
var recipient = new RecipientById(identificationType: IdentificationType.PersonalIdentificationNumber, id: "311084xxxx");
187+
188+
var requestForRegistration = new RequestForRegistration(
189+
DateTime.Now.AddDays(3),
190+
"+4711223344",
191+
null,
192+
new PrintDetails(
193+
printRecipient: new PrintRecipient(
194+
"Ola Nordmann",
195+
new NorwegianAddress("0460", "Oslo", "Prinsensveien 123")),
196+
printReturnRecipient: new PrintReturnRecipient(
197+
"Kari Nordmann",
198+
new NorwegianAddress("0400", "Oslo", "Akers Àle 2"))
199+
)
200+
);
201+
202+
var primaryDocument = new Document(subject: "document subject", fileType: "pdf", path: @"c:\...\document.pdf");
203+
204+
var messageWithPrintIfUnread = new Message(sender, recipient, primaryDocument)
205+
{
206+
Id = "Reg-12345",
207+
RequestForRegistration = requestForRegistration
208+
};
209+
210+
var result = client.SendMessage(messageWithPrintIfUnread);
211+
}
212+
184213
public void SendLetterWithHigherSecurityLevel()
185214
{
186215
var primaryDocument = new Document(subject: "Primary document", fileType: "pdf", path: @"c:\...\document.pdf")
@@ -256,6 +285,7 @@ public void SendInvoice()
256285

257286
var result = client.SendMessage(message);
258287
}
288+
259289
public void SendInkasso()
260290
{
261291
var inkasso = new Inkasso();

Digipost.Api.Client.Inbox.Tests/DataTransferObjectConverterTests.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ public class FromDataTransferObject : DataTransferObjectConverterTests
1515
public void InboxDocument()
1616
{
1717
const string contentType = "txt";
18-
const string content = "http://contenturi.no";
19-
const string deleteUri = "http://deletecontenturi.no";
2018
var firstAccessed = DateTime.Today.AddDays(2);
2119
var deliveryTime = DateTime.Today;
2220
const int id = 123456789;

Digipost.Api.Client.Resources/Xsd/Data/api_v8.xsd

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,7 @@
722722
<xsd:element name="primary-document" type="document" minOccurs="1" maxOccurs="1" nillable="false"/>
723723
<xsd:element name="attachment" type="document" minOccurs="0" maxOccurs="201" nillable="false"/>
724724
<xsd:element name="print-if-unread" type="print-if-unread" minOccurs="0"/>
725+
<xsd:element name="request-for-registration" type="request-for-registration" minOccurs="0"/>
725726
<xsd:element name="batch" type="batch" minOccurs="0" maxOccurs="1"/>
726727
</xsd:sequence>
727728
</xsd:complexType>
@@ -964,6 +965,7 @@
964965
<xsd:enumeration value="DIGIPOST" />
965966
<xsd:enumeration value="PEPPOL" />
966967
<xsd:enumeration value="EPOST" />
968+
<xsd:enumeration value="PENDING" />
967969
</xsd:restriction>
968970
</xsd:simpleType>
969971

@@ -1084,6 +1086,14 @@
10841086
</xsd:complexContent>
10851087
</xsd:complexType>
10861088

1089+
<xsd:complexType name="request-for-registration-expired-metadata">
1090+
<xsd:complexContent>
1091+
<xsd:extension base="event-metadata">
1092+
<xsd:attribute name="fallback-channel" type="xsd:string" />
1093+
</xsd:extension>
1094+
</xsd:complexContent>
1095+
</xsd:complexType>
1096+
10871097
<xsd:complexType name="document-metadata">
10881098
<xsd:sequence>
10891099
<xsd:element name="link" type="link" minOccurs="0" maxOccurs="unbounded" />
@@ -1105,6 +1115,9 @@
11051115
<xsd:enumeration value="SHREDDED" />
11061116
<xsd:enumeration value="PEPPOL_DELIVERED" />
11071117
<xsd:enumeration value="PEPPOL_FAILED" />
1118+
<xsd:enumeration value="REQUEST_FOR_REGISTRATION_EXPIRED" />
1119+
<xsd:enumeration value="REQUEST_FOR_REGISTRATION_DELIVERED_DIGIPOST" />
1120+
<xsd:enumeration value="REQUEST_FOR_REGISTRATION_FAILED" />
11081121
</xsd:restriction>
11091122
</xsd:simpleType>
11101123

@@ -1214,6 +1227,15 @@
12141227
</xsd:sequence>
12151228
</xsd:complexType>
12161229

1230+
<xsd:complexType name="request-for-registration">
1231+
<xsd:sequence>
1232+
<xsd:element name="registration-deadline" type="xsd:dateTime"/>
1233+
<xsd:element name="phone-number" type="xsd:string" minOccurs="0" maxOccurs="1" />
1234+
<xsd:element name="email-address" type="xsd:string" minOccurs="0" maxOccurs="1" />
1235+
<xsd:element name="print-details" type="print-details" minOccurs="0" maxOccurs="1" />
1236+
</xsd:sequence>
1237+
</xsd:complexType>
1238+
12171239
<xsd:element name="archives" type="archives" />
12181240

12191241
<xsd:complexType name="archives">

Digipost.Api.Client.Send/IMessage.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,29 @@ public interface IMessage : IRequestContent
5555
/// then fallback to print will start.
5656
/// </summary>
5757
IPrintDetails PrintDetails { get; set; }
58-
58+
5959
/// <summary>
6060
/// Specifies print-if-unread-after deadline for the current message. If the message is not read within the
6161
/// deadline, it is sent to print with the contained printdetails.
6262
/// </summary>
6363
IPrintIfUnread PrintIfUnread { get; set; }
64-
64+
6565
/// <summary>
6666
/// True if print-if-unread-after is specified for the message. Otherwise false.
6767
/// </summary>
6868
bool PrintIfUnreadAfterSpecified { get; }
69+
70+
/// <summary>
71+
/// Specifies request-for-registraton. If the receiver is not registrered user of Digipost
72+
/// they will be notified that a waiting document is being processed. They can, within the specified
73+
/// deadline, register and receive the document in Digipost. They dont register, the document CAN
74+
/// be sent to Print.
75+
/// </summary>
76+
RequestForRegistration RequestForRegistration { get; set; }
77+
78+
/// <summary>
79+
/// true request-for-registraton is specified for the message. Otherwise false.
80+
/// </summary>
81+
bool RequestForRegistrationSpecified { get; }
6982
}
7083
}

Digipost.Api.Client.Send/Message.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ public Message(Sender sender, IDigipostRecipient digipostRecipient, IDocument pr
3838

3939
public bool PrintIfUnreadAfterSpecified => PrintIfUnread != null;
4040

41+
public RequestForRegistration RequestForRegistration { get; set; }
42+
43+
public bool RequestForRegistrationSpecified => RequestForRegistration != null;
44+
4145
public Sender Sender { get; set; }
4246

4347
public DateTime? DeliveryTime { get; set; }

0 commit comments

Comments
 (0)