11using System . Net . Mail ;
2- using Bond ;
2+ using Google . Protobuf ;
33using LanguageExt ;
44using LanguageExt . Common ;
55using static LanguageExt . Prelude ;
6+ using static TIKSN . Licensing . LicenseParty ;
67
78namespace TIKSN . Licensing ;
89
@@ -40,19 +41,19 @@ internal static Validation<Error, DateTimeOffset> ConvertToDate(long dateTicks)
4041 private static readonly Seq < Ulid > InvalidSerialNumbers =
4142 Seq ( Ulid . Empty , Ulid . MinValue , Ulid . MaxValue ) ;
4243
43- internal static Validation < Error , ArraySegment < byte > > ConvertFromUlid ( Ulid serialNumber )
44+ internal static Validation < Error , ByteString > ConvertFromUlid ( Ulid serialNumber )
4445 {
4546 if ( InvalidSerialNumbers . Contains ( serialNumber ) )
4647 {
4748 return Error . New ( 877535586 , "Invalid serial number" ) ;
4849 }
4950
50- return new ArraySegment < byte > ( serialNumber . ToByteArray ( ) ) ;
51+ return ByteString . CopyFrom ( serialNumber . ToByteArray ( ) ) ;
5152 }
5253
53- internal static Validation < Error , Ulid > ConvertToUlid ( ArraySegment < byte > serialNumberBytes )
54+ internal static Validation < Error , Ulid > ConvertToUlid ( ByteString serialNumberBytes )
5455 {
55- var serialNumber = new Ulid ( serialNumberBytes ) ;
56+ var serialNumber = new Ulid ( serialNumberBytes . ToByteArray ( ) ) ;
5657
5758 if ( InvalidSerialNumbers . Contains ( serialNumber ) )
5859 {
@@ -129,34 +130,31 @@ internal static Validation<Error, MailAddress> ConvertToMailAddress(string addre
129130
130131 #region Party
131132
132- internal static Validation < Error , IBonded < LicenseParty > > ConvertFromParty ( Party party ) => party switch
133+ internal static Validation < Error , LicenseParty > ConvertFromParty ( Party party ) => party switch
133134 {
134- IndividualParty individualParty => ConvertFromIndividual ( individualParty ) . Map < IBonded < LicenseParty > > ( x => new Bonded < LicenseIndividualParty > ( x ) ) ,
135- OrganizationParty organizationParty => ConvertFromOrganization ( organizationParty ) . Map < IBonded < LicenseParty > > ( x => new Bonded < LicenseOrganizationParty > ( x ) ) ,
135+ IndividualParty individualParty => ConvertFromIndividual ( individualParty ) ,
136+ OrganizationParty organizationParty => ConvertFromOrganization ( organizationParty ) ,
136137 _ => Error . New ( 2143629281 , "Invalid party type" ) ,
137138 } ;
138139
139- internal static Validation < Error , Party > ConvertToParty ( IBonded < LicenseParty > licenseParty )
140- {
141- var licensePartyBase = licenseParty . Deserialize ( ) ;
142- return licensePartyBase . Kind switch
140+ internal static Validation < Error , Party > ConvertToParty ( LicenseParty licenseParty ) =>
141+ licenseParty . PartyKindCase switch
143142 {
144- LicensePartyKind . Unknown => Error . New ( 2084794372 , "Unknown party type" ) ,
145- LicensePartyKind . Individual => ConvertToIndividual ( licenseParty . Deserialize < LicenseIndividualParty > ( ) ) . Map < Party > ( x => x ) ,
146- LicensePartyKind . Organization => ConvertToOrganization ( licenseParty . Deserialize < LicenseOrganizationParty > ( ) ) . Map < Party > ( x => x ) ,
143+ PartyKindOneofCase . None => Error . New ( 2084794372 , "Unknown or No party type" ) ,
144+ PartyKindOneofCase . IndividualParty => ConvertToIndividual ( licenseParty ) . Map < Party > ( x => x ) ,
145+ PartyKindOneofCase . OrganizationParty => ConvertToOrganization ( licenseParty ) . Map < Party > ( x => x ) ,
147146 _ => Error . New ( 103216125 , "Invalid party type" ) ,
148147 } ;
149- }
150148
151- private static Validation < Error , LicenseIndividualParty > ConvertFromIndividual (
149+ private static Validation < Error , LicenseParty > ConvertFromIndividual (
152150 IndividualParty individualParty )
153151 {
154152 ArgumentNullException . ThrowIfNull ( individualParty ) ;
155153
156154 var errors = new List < Error > ( ) ;
157- var result = new LicenseIndividualParty
155+ var result = new LicenseParty
158156 {
159- Kind = LicensePartyKind . Individual ,
157+ IndividualParty = new LicenseIndividualParty ( )
160158 } ;
161159
162160 if ( string . IsNullOrWhiteSpace ( individualParty . FirstName ) )
@@ -165,7 +163,7 @@ private static Validation<Error, LicenseIndividualParty> ConvertFromIndividual(
165163 }
166164 else
167165 {
168- result . FirstName = individualParty . FirstName ;
166+ result . IndividualParty . FirstName = individualParty . FirstName ;
169167 }
170168
171169 if ( string . IsNullOrWhiteSpace ( individualParty . LastName ) )
@@ -174,16 +172,16 @@ private static Validation<Error, LicenseIndividualParty> ConvertFromIndividual(
174172 }
175173 else
176174 {
177- result . LastName = individualParty . LastName ;
175+ result . IndividualParty . LastName = individualParty . LastName ;
178176 }
179177
180178 if ( string . IsNullOrWhiteSpace ( individualParty . FullName ) )
181179 {
182- result . FullName = $ "{ individualParty . FirstName } { individualParty . LastName } ";
180+ result . IndividualParty . FullName = $ "{ individualParty . FirstName } { individualParty . LastName } ";
183181 }
184182 else
185183 {
186- result . FullName = individualParty . FullName ;
184+ result . IndividualParty . FullName = individualParty . FullName ;
187185 }
188186
189187 SetBasePartyProperties ( individualParty , errors , result ) ;
@@ -196,15 +194,15 @@ private static Validation<Error, LicenseIndividualParty> ConvertFromIndividual(
196194 return result ;
197195 }
198196
199- private static Validation < Error , LicenseOrganizationParty > ConvertFromOrganization (
197+ private static Validation < Error , LicenseParty > ConvertFromOrganization (
200198 OrganizationParty organizationParty )
201199 {
202200 ArgumentNullException . ThrowIfNull ( organizationParty ) ;
203201
204202 var errors = new List < Error > ( ) ;
205- var result = new LicenseOrganizationParty
203+ var result = new LicenseParty
206204 {
207- Kind = LicensePartyKind . Organization ,
205+ OrganizationParty = new LicenseOrganizationParty ( )
208206 } ;
209207
210208 if ( string . IsNullOrWhiteSpace ( organizationParty . LongName ) )
@@ -213,7 +211,7 @@ private static Validation<Error, LicenseOrganizationParty> ConvertFromOrganizati
213211 }
214212 else
215213 {
216- result . LongName = organizationParty . LongName ;
214+ result . OrganizationParty . LongName = organizationParty . LongName ;
217215 }
218216
219217 if ( string . IsNullOrWhiteSpace ( organizationParty . ShortName ) )
@@ -222,7 +220,7 @@ private static Validation<Error, LicenseOrganizationParty> ConvertFromOrganizati
222220 }
223221 else
224222 {
225- result . ShortName = organizationParty . ShortName ;
223+ result . OrganizationParty . ShortName = organizationParty . ShortName ;
226224 }
227225
228226 SetBasePartyProperties ( organizationParty , errors , result ) ;
@@ -236,27 +234,27 @@ private static Validation<Error, LicenseOrganizationParty> ConvertFromOrganizati
236234 }
237235
238236 private static Validation < Error , IndividualParty > ConvertToIndividual (
239- LicenseIndividualParty licenseIndividualParty )
237+ LicenseParty licenseParty )
240238 {
241- ArgumentNullException . ThrowIfNull ( licenseIndividualParty ) ;
239+ ArgumentNullException . ThrowIfNull ( licenseParty ) ;
242240
243241 var errors = new List < Error > ( ) ;
244242
245- if ( string . IsNullOrWhiteSpace ( licenseIndividualParty . FirstName ) )
243+ if ( string . IsNullOrWhiteSpace ( licenseParty . IndividualParty . FirstName ) )
246244 {
247245 errors . Add ( Error . New ( 1348133387 , "First Name is missing" ) ) ;
248246 }
249247
250- if ( string . IsNullOrWhiteSpace ( licenseIndividualParty . LastName ) )
248+ if ( string . IsNullOrWhiteSpace ( licenseParty . IndividualParty . LastName ) )
251249 {
252250 errors . Add ( Error . New ( 946047972 , "Last Name is missing" ) ) ;
253251 }
254252
255- var fullName = string . IsNullOrWhiteSpace ( licenseIndividualParty . FullName )
256- ? $ "{ licenseIndividualParty . FirstName } { licenseIndividualParty . LastName } "
257- : licenseIndividualParty . FullName ;
253+ var fullName = string . IsNullOrWhiteSpace ( licenseParty . IndividualParty . FullName )
254+ ? $ "{ licenseParty . IndividualParty . FirstName } { licenseParty . IndividualParty . LastName } "
255+ : licenseParty . IndividualParty . FullName ;
258256
259- var basePartyProperties = GetBasePartyProperties ( licenseIndividualParty ) ;
257+ var basePartyProperties = GetBasePartyProperties ( licenseParty ) ;
260258
261259 if ( errors . Count != 0 )
262260 {
@@ -265,31 +263,31 @@ private static Validation<Error, IndividualParty> ConvertToIndividual(
265263
266264 return basePartyProperties
267265 . Map ( x => new IndividualParty (
268- licenseIndividualParty . FirstName ,
269- licenseIndividualParty . LastName ,
266+ licenseParty . IndividualParty . FirstName ,
267+ licenseParty . IndividualParty . LastName ,
270268 fullName ,
271269 x . email ,
272270 x . website ) ) ;
273271 }
274272
275273 private static Validation < Error , OrganizationParty > ConvertToOrganization (
276- LicenseOrganizationParty licenseOrganizationParty )
274+ LicenseParty licenseParty )
277275 {
278- ArgumentNullException . ThrowIfNull ( licenseOrganizationParty ) ;
276+ ArgumentNullException . ThrowIfNull ( licenseParty ) ;
279277
280278 var errors = new List < Error > ( ) ;
281279
282- if ( string . IsNullOrWhiteSpace ( licenseOrganizationParty . LongName ) )
280+ if ( string . IsNullOrWhiteSpace ( licenseParty . OrganizationParty . LongName ) )
283281 {
284282 errors . Add ( Error . New ( 1625517012 , "Long Name is missing" ) ) ;
285283 }
286284
287- if ( string . IsNullOrWhiteSpace ( licenseOrganizationParty . ShortName ) )
285+ if ( string . IsNullOrWhiteSpace ( licenseParty . OrganizationParty . ShortName ) )
288286 {
289287 errors . Add ( Error . New ( 280436811 , "Short Name is missing" ) ) ;
290288 }
291289
292- var basePartyProperties = GetBasePartyProperties ( licenseOrganizationParty ) ;
290+ var basePartyProperties = GetBasePartyProperties ( licenseParty ) ;
293291
294292 if ( errors . Count != 0 )
295293 {
@@ -298,8 +296,8 @@ private static Validation<Error, OrganizationParty> ConvertToOrganization(
298296
299297 return basePartyProperties
300298 . Map ( x => new OrganizationParty (
301- licenseOrganizationParty . LongName ,
302- licenseOrganizationParty . ShortName ,
299+ licenseParty . OrganizationParty . LongName ,
300+ licenseParty . OrganizationParty . ShortName ,
303301 x . email ,
304302 x . website ) ) ;
305303 }
0 commit comments