using System; using System.Collections.Generic; using System.Linq; using System.Text; using vendor.LACVendorAPI; namespace VendorAPIExample { class Program { // Please adjust this to the credentials given by X-Formation support static string LACLogin = "login"; static string LACPassword = "pass"; // Please adjust this to existing Product / Product template names static string ProductName = "Product Name"; static string ProductTemplateName = "Template Name"; static void Main(string[] args) { // Creating Port Client vendor.LACVendorAPI.LAC_VendorPortClient Client = new vendor.LACVendorAPI.LAC_VendorPortClient(); // Log in to LAC vendor.LACVendorAPI.Soap_Response_Login LoginResponse = Client.Login(LACLogin, LACPassword); // Verifying Login Response if (LoginResponse.result_code != 0) { Console.WriteLine("Result code: " + LoginResponse.result_code + "\nResult string: " + LoginResponse.result_string + "\n"); return; } // Creating new Customer object vendor.LACVendorAPI.Soap_Customer NewCustomer = new vendor.LACVendorAPI.Soap_Customer(); NewCustomer.name = "Jimmy Doe"; NewCustomer.phone_number = "00811243242"; NewCustomer.street = "Example Street"; NewCustomer.vat_number = "12394839"; NewCustomer.zip_code = "45"; NewCustomer.country = "UK"; vendor.LACVendorAPI.Soap_Contact[] NewContacts = new vendor.LACVendorAPI.Soap_Contact[1]; NewContacts[0] = new vendor.LACVendorAPI.Soap_Contact(); NewContacts[0].email = "john.smith@company.com"; NewContacts[0].name = NewCustomer.name; NewCustomer.Contacts = NewContacts; // Adding new Customer vendor.LACVendorAPI.Soap_Response Response = Client.AddCustomer(LoginResponse.token, NewCustomer); // Verifying Response if (Response.result_code != 0) { if (Response.result_code == 108) { Console.WriteLine("The user '" + NewCustomer.name + "' is already created, ignored this step."); } else { Console.WriteLine("Result code: " + Response.result_code + "\nResult string: " + Response.result_string + "\n"); Client.Logout(LoginResponse.token); return; } } // Iterating customers list to get the new Customer's id for (int i = 0; ; i += 100) { vendor.LACVendorAPI.Soap_Response_List_Customer CustomersList = Client.GetCustomerList(LoginResponse.token, i); if (CustomersList.result_array.Length == 0) break; foreach (vendor.LACVendorAPI.Soap_Customer Customer in CustomersList.result_array) if (Customer.name.Equals(NewCustomer.name)) { NewCustomer = Customer; break; } if (NewCustomer.id.HasValue) break; } // Creating empty License Order vendor.LACVendorAPI.Soap_LicenseOrder NewLicenseOrder = new vendor.LACVendorAPI.Soap_LicenseOrder(); // Iterating Products list to get License Order template for (int i = 0; ; i += 100) { vendor.LACVendorAPI.Soap_Response_List_Product ProductsList = Client.GetProductList(LoginResponse.token, i); if (ProductsList.result_array.Length == 0) break; foreach (vendor.LACVendorAPI.Soap_Product Product in ProductsList.result_array) if (Product.name.Equals(ProductName)) foreach (vendor.LACVendorAPI.Soap_ProductTemplate Template in Product.ProductTemplates.ToList()) if (Template.name.Equals(ProductTemplateName) && Template.id.HasValue && NewCustomer.id.HasValue) { vendor.LACVendorAPI.Soap_Response_LicenseOrder GetLicenseOrderTemplateResponse = Client.GetLicenseOrderTemplate(LoginResponse.token, Template.id.Value); if (GetLicenseOrderTemplateResponse.result_code != 0) { Console.WriteLine("Result code: " + Response.result_code + "\nResult string: " + Response.result_string + "\n"); Client.Logout(LoginResponse.token); return; } NewLicenseOrder = GetLicenseOrderTemplateResponse.result_object; NewLicenseOrder.customer_id = NewCustomer.id.Value; break; } if (NewLicenseOrder.customer_id.HasValue) break; } // Adding new License Order Response = Client.AddLicenseOrder(LoginResponse.token, NewLicenseOrder); Client.Logout(LoginResponse.token); // Verifying that License Order was added successfully if (Response.result_code != 0) { Console.ReadKey(true); return; } } } }