OBJECT Codeunit 60000 REST WS Management { OBJECT-PROPERTIES { Date=26-11-15; Time=07:00:00; Modified=Yes; Version List=WebService-Example; } PROPERTIES { OnRun=BEGIN END; } CODE { [TryFunction] PROCEDURE CallRESTWebService@1000000002(BaseUrl@1000000000 : Text;Method@1000000001 : Text;RestMethod@1000000004 : Text;VAR HttpContent@1000000005 : DotNet "'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Net.Http.HttpContent";VAR HttpResponseMessage@1000000006 : DotNet "'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Net.Http.HttpResponseMessage"); VAR HttpClient@1000000003 : DotNet "'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Net.Http.HttpClient"; Uri@1000000002 : DotNet "'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Uri"; BEGIN HttpClient := HttpClient.HttpClient(); HttpClient.BaseAddress := Uri.Uri(BaseUrl); CASE RestMethod OF 'GET': HttpResponseMessage := HttpClient.GetAsync(Method).Result; 'POST': HttpResponseMessage := HttpClient.PostAsync(Method,HttpContent).Result; 'PUT': HttpResponseMessage := HttpClient.PutAsync(Method,HttpContent).Result; 'DELETE': HttpResponseMessage := HttpClient.DeleteAsync(Method).Result; END; HttpResponseMessage.EnsureSuccessStatusCode(); // Throws an error when no success END; BEGIN END. } } OBJECT Codeunit 60002 Verify Email Address WS { OBJECT-PROPERTIES { Date=26-11-15; Time=07:00:00; Modified=Yes; Version List=WebService-Example; } PROPERTIES { OnRun=BEGIN END; } CODE { [EventSubscriber(Table,5050,OnBeforeValidateEvent,"E-Mail")] LOCAL PROCEDURE OnBeforeValidateContactEmailAddress@5(VAR Rec@1000 : Record 5050;VAR xRec@1001 : Record 5050;CurrFieldNo@1002 : Integer); BEGIN IF Rec."E-Mail" = '' THEN EXIT; ValidateEmailAddress(Rec."E-Mail"); END; [EventSubscriber(Table,18,OnBeforeValidateEvent,"E-Mail")] LOCAL PROCEDURE OnBeforeValidateCustomerEmailAddress@6(VAR Rec@1000 : Record 18;VAR xRec@1001 : Record 18;CurrFieldNo@1002 : Integer); BEGIN IF Rec."E-Mail" = '' THEN EXIT; ValidateEmailAddress(Rec."E-Mail"); END; [EventSubscriber(Table,23,OnBeforeValidateEvent,"E-Mail")] LOCAL PROCEDURE OnBeforeValidateVendorEmailAddress@7(VAR Rec@1000 : Record 23;VAR xRec@1001 : Record 23;CurrFieldNo@1002 : Integer); BEGIN IF Rec."E-Mail" = '' THEN EXIT; ValidateEmailAddress(Rec."E-Mail"); END; PROCEDURE ValidateEmailAddress@1(Email@1005 : Text); VAR result@1013 : Text; APIResult@1000000002 : DotNet "'EmailValidatorResult, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.EmailValidatorResult.Rootobject"; RESTWSManagement@1004 : Codeunit 60000; HttpResponseMessage@1003 : DotNet "'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Net.Http.HttpResponseMessage"; JsonConvert@1002 : DotNet "'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'.Newtonsoft.Json.JsonConvert"; stringContent@1008 : DotNet "'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Net.Http.StringContent"; null@1001 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Object"; details@1012 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.String"; detailsArray@1007 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Array"; detail@1016 : Text; messageText@1014 : Text; Environment@1015 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Environment"; separator@1006 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.String"; Window@1000 : Dialog; data@1009 : Text; BEGIN Window.OPEN('Verifying E-mail Address...'); RESTWSManagement.CallRESTWebService('http://api.email-validator.net/', STRSUBSTNO('api/verify?EmailAddress=%1&APIKey=%2',Email,APIKey), 'GET', null, HttpResponseMessage); result := HttpResponseMessage.Content.ReadAsStringAsync.Result; APIResult := JsonConvert.DeserializeObject(result,GETDOTNETTYPE(APIResult)); Window.CLOSE(); IF NOT (APIResult.status IN [200,207,215]) THEN BEGIN messageText := 'Verifying E-mail Address...' + Environment.NewLine + Environment.NewLine; messageText += 'Info: ' + APIResult.info + Environment.NewLine + Environment.NewLine; messageText += 'Details:' + Environment.NewLine; separator := '.'; details := APIResult.details; detailsArray := details.Split(separator.ToCharArray()); FOREACH detail IN detailsArray DO BEGIN messageText += detail + Environment.NewLine; END; MESSAGE(messageText); END; END; BEGIN { http://api.email-validator.net/api/verify?EmailAddress=ajk@cronus.company&APIKey=ev-8915975538904936e89c6e9416666c01 } END. } }