using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello Motherfuckers!");
var svc = new LexisNexisService();
var result = new OFACSearchResult();
result = svc.SearchOFAC("");
OutputResult("Only Name",result);
result = svc.SearchOFAC("",new Id());
OutputResult("Name and Id",result);
result = svc.SearchOFAC("",new Address());
OutputResult("Name and Address",result);
result = svc.SearchOFAC("",null,null);
OutputResult("Name, Id, and Address",result);
Console.WriteLine("That's all folks!");
public static void OutputResult(string title, OFACSearchResult result)
Console.WriteLine($"**** {title} ****");
Console.WriteLine($"Operation Result: {result.OperationResult}");
Console.WriteLine($"Error Message: {result?.ErrorMessages[0]}");
Console.WriteLine($"Result: {result.Result}");
Console.WriteLine($"Details: {result.Details}");
Console.WriteLine("**** END *****");
public class LexisNexisService
private OFACSearchResult PerformSearch (string Name, Id id=null, Address address=null, )
var errorMessages = new List<string>();
if (string.IsNullOrEmpty(Name))
errorMessages.Add("Name is required");
if (string.IsNullOrEmpty(id.Value))
errorMessages.Add("Id value is required");
if (string.IsNullOrEmpty(id.Type))
errorMessages.Add("Id type is required");
if (string.IsNullOrEmpty(address.Country))
errorMessages.Add("Country is required");
if (string.IsNullOrEmpty(address.Type))
errorMessages.Add("Address type is required");
return new OFACSearchResult{OperationResult="Error", ErrorMessages = errorMessages.ToArray()};
return new OFACSearchResult{OperationResult="Success", Result = new { Matches= "un chingo", AddittionalInformation="Ninguna" }};
public OFACSearchResult SearchOFAC(string name)
return PerformSearch(name,null,null);
public OFACSearchResult SearchOFAC(string name, Id id)
return new OFACSearchResult{OperationResult="Error", ErrorMessages = new string[] {"Id is required"}};
return PerformSearch(name,id,null);
public OFACSearchResult SearchOFAC(string name, Address address)
return new OFACSearchResult{OperationResult="Error", ErrorMessages = new string[] {"address is required"}};
return PerformSearch(name,null,address);
public OFACSearchResult SearchOFAC(string name, Id id, Address address)
return new OFACSearchResult{OperationResult="Error", ErrorMessages = new string[] {"Id is required"}};
return new OFACSearchResult{OperationResult="Error", ErrorMessages = new string[] {"address is required"}};
return PerformSearch(name,id,address);
public class OFACSearchResult
public string OperationResult { get; set;}
public string[] ErrorMessages {get; set;}
public object Result {get; set;}
public Exception Details {get; set;}
public string Street1 {get; set;}
public string Street2 {get; set;}
public string City {get; set;}
public string StateProvinceDistrict {get; set;}
public string PostalCode {get; set;}
public string Country {get; set;}
public string Type {get; set;}
public string Value {get; set;}
public string Type {get; set;}