See More

using Microsoft.Extensions.Configuration; using NetoDotNET.Entities; using NetoDotNET.Resources.Products; using NetoDotNET.Resources.Categories; using System; using System.IO; using NetoDotNET.Resources.Customers; using NetoDotNET.Entities.Customers.CustomerLog; using NetoDotNET.Resources.Orders; using NetoDotNET.Resources.Contents; using NetoDotNET.Resources.RMA; using System.Collections.Generic; using NetoDotNET.Resources.Warehouses; using NetoDotNET.Resources.Payments; using NetoDotNET.Resources.Shippings; using NetoDotNET.Resources.Supplier; namespace NetoDotNET.Examples { class Program { static void Main(string[] args) { // Load from configuration var configBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", true, true); var config = configBuilder.Build(); Console.WriteLine($"Loaded Configuration:" + Environment.NewLine + $"Neto Store Url: {config.GetSection("NETO_STORE_URL").Value}" + Environment.NewLine + $"Neto API Key: {config.GetSection("NETO_API_KEY").Value}" + Environment.NewLine + $"Neto Username: {config.GetSection("NETO_USERNAME").Value}"); var neto = new StoreManager(config.GetSection("NETO_STORE_URL").Value, config.GetSection("NETO_API_KEY").Value, config.GetSection("NETO_USERNAME").Value); #region Products //GetItems(neto); //GetItemsFromDate(neto); //AddItems(neto); AddVariableItems(neto); //UpdateItems(neto); #endregion #region Categories //GetCategories(neto); //AddCategory(neto); //UpdateCategory(neto); #endregion #region Customers //GetCustomers(neto); //AddCustomers(neto); //UpdateCustomer(neto); //AddCustomerLog(neto); //UpdateCustomerLog(neto); #endregion #region Orders //GetOrders(neto); //AddOrders(neto); //UpdateOrder(neto); #endregion #region Content //GetContent(neto); //AddContent(neto); //UpdateContent(neto); #endregion #region RMA //GetRMA(neto); #endregion #region Warehouses //GetWarehouse(neto); //UpdateWarehouse(neto); //AddWarehouse(neto); #endregion #region Payments //GetPayment(neto); //AddPayment(neto); //GetPaymentMethods(neto); #endregion #region Currency //GetCurrenctSettings(neto); //UpdateCurrencySettings(neto); #endregion #region Shipping //GetShippingMethods(neto); //GetShippingQuote(neto); #endregion #region Suppliers //GetSuppliers(neto); //UpdateSupplier(neto); //AddSupplier(neto); #endregion } static void AddSupplier(StoreManager neto) { Suppliers[] supplier = new Suppliers[] { new Suppliers { SupplierCompany = "Google", LeadTime1 = 2, LeadTime2 = 3, SupplierReference = 12345 } }; var result = neto.Suppliers.AddSupplier(supplier); switch (result.Ack) { case Ack.Success: foreach (var i in result.Supplier) { Console.WriteLine($"Updated ID:{i.SupplierID} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void UpdateSupplier(StoreManager neto) { Suppliers[] supplier = new Suppliers[] { new Suppliers { SupplierID = "124", SupplierNotes = "Test - Updated", LeadTime1 = 2, LeadTime2 = 3, SupplierReference = 1234 } }; var result = neto.Suppliers.UpdateSupplier(supplier); switch (result.Ack) { case Ack.Success: foreach (var i in result.Supplier) { Console.WriteLine($"Updated ID:{i.SupplierID} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void GetSuppliers(StoreManager neto) { var filter = new GetSupplierFilter(new string[] { "124" }); List result = neto.Suppliers.GetSupplier(filter); foreach (Suppliers i in result) { Console.WriteLine($"{i.SupplierID}"); } } static void GetShippingQuote(StoreManager neto) { var quote = new GetShippingQuoteFilter { ShipPostCode = "", ShipCountry = "", ShipCity = "", ShipState = "", ShipPOBox = false }; var result = neto.Shipping.GetShippingQuote(quote); foreach (ShippingQuotes i in result) { Console.WriteLine($"{i.ShippingCost}"); } } static void GetShippingMethods(StoreManager neto) { var result = neto.Shipping.GetShippingMethods(); foreach (ShippingMethod i in result.ShippingMethod) { Console.WriteLine($"{i.ID} - {i.Name}"); } } static void UpdateCurrencySettings(StoreManager neto) { UpdateCurrencySettings settings = new UpdateCurrencySettings { DefaultCountry = new string[] { "AU" }, DefaultCurrency = new string[] { "AUD" } }; var result = neto.Currency.UpdateCurrencySettings(settings); switch (result.Ack) { case Ack.Success: Console.WriteLine($"Updated currency settings"); break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void GetCurrenctSettings(StoreManager neto) { var result = neto.Currency.GetCurrencySettings(); foreach (CurrencySettings i in result) { Console.WriteLine($"{i.DefaultCountry} - {i.DefaultCurrency}"); } } static void GetPaymentMethods(StoreManager neto) { var result = neto.Payment.GetPaymentMethods(); foreach (PaymentMethod i in result.PaymentMethod) { Console.WriteLine($"{i.ID} - {i.Name}"); } } static void AddPayment(StoreManager neto) { AddPayment[] payment = new AddPayment[] { new AddPayment { OrderID = "DEMO15-9", CardAuthorisation = "1234", AmountPaid = 0.1M } }; var result = neto.Payment.AddPayment(payment); switch (result.Ack) { case Ack.Success: foreach (var i in result.Payment) { Console.WriteLine($"Created ID:{i.PaymentID} PaymentMethodName: {i.PaymentMethodName} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void GetPayment(StoreManager neto) { var filter = new GetPaymentFilter(); filter.DatePaidFrom = DateTime.Now.Add(-TimeSpan.FromDays(5)); var result = neto.Payment.GetPayment(filter); foreach (Payment i in result) { Console.WriteLine($"{i.PaymentID} - {i.PaymentMethodName}"); } } static void AddWarehouse(StoreManager neto) { Warehouse[] warehouse = new Warehouse[] { new Warehouse { WarehouseName = "A New Warehouse 4", WarehouseReference = "W4", IsPrimary = true } }; var result = neto.Warehouses.AddWarehouse(warehouse); switch (result.Ack) { case Ack.Success: foreach (var i in result.Warehouse) { Console.WriteLine($"Created ID:{i.WarehouseID} WarehouseReference: {i.WarehouseReference} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void UpdateWarehouse(StoreManager neto) { Warehouse[] warehouse = new Warehouse[] { new Warehouse { WarehouseID = 1, WarehouseName = "NetoDotNET - Updated" } }; var result = neto.Warehouses.UpdateWarehouse(warehouse); switch (result.Ack) { case Ack.Success: foreach (var i in result.Warehouse) { Console.WriteLine($"Updated ID:{i.WarehouseID} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void GetWarehouse(StoreManager neto) { var filter = new GetWarehouseFilter(1); var result = neto.Warehouses.GetWarehouse(filter); foreach (Warehouse i in result) { Console.WriteLine($"{i.WarehouseID} - {i.WarehouseName}"); } } static void GetRMA(StoreManager neto) { var filter = new GetRMAFilter(1); var result = neto.RMA.GetRMA(filter); foreach (Rma i in result) { Console.WriteLine($"{i.RmaID}"); } } static void UpdateContent(StoreManager neto) { var updateContent = new Content[] { new Content { ContentID = 105, ContentName = "Clothing Updated" } }; var result = neto.Content.UpdateContent(updateContent); switch (result.Ack) { case Ack.Success: foreach (var i in result.Content) { Console.WriteLine($"Updated ID: {i.ContentID}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void AddContent(StoreManager neto) { Content[] content = new Content[] { new Content { ContentName = "New content category", ContentType = "Category" } }; var result = neto.Content.AddContent(content); switch (result.Ack) { case Ack.Success: foreach (var i in result.Content) { Console.WriteLine($"Created ID:{i.ContentID} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void GetContent(StoreManager neto) { var filter = new GetContentFilter(new string[] { "105", "129", "128" }); Content[] result = neto.Content.GetContent(filter); foreach (Content i in result) { Console.WriteLine($"{i.ContentID} - {i.ContentName}"); } } static void UpdateOrder(StoreManager neto) { Order[] order = new Order[] { new Order { OrderID = "DEMO12-16", InternalOrderNotes = "Updated" } }; var result = neto.Orders.UpdateOrder(order); switch (result.Ack) { case Ack.Success: foreach (var i in result.Order) { Console.WriteLine($"Updated ID:{i.OrderID} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void AddOrders(StoreManager neto) { AddOrder[] addOrder = new AddOrder[] { new AddOrder { Username = "test", ShippingMethod = "Test", ShipStreet1 = "123 test street", ShipState = "ST", ShipCity = "City", BillState = "ST", ShipCountry = "AU", ShipFirstName = "Test", ShipLastName = "Order", BillPostCode = "1234", BillStreet1 = "123 test street", ShipPostCode = "1234", BillCity = "City", BillFirstName ="Test", BillLastName = "Order" } }; var result = neto.Orders.AddOrder(addOrder); switch (result.Ack) { case Ack.Success: foreach (var i in result.Order) { Console.WriteLine($"Created ID:{i.OrderID} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void GetOrders(StoreManager neto) { var filter = new GetOrderFilter("DEMO13-7"); Order[] result = neto.Orders.GetOrder(filter); foreach (Order i in result) { Console.WriteLine($"{i.OrderID} - {i.GrandTotal}"); } } static void UpdateCustomerLog(StoreManager neto) { Entities.Customers.CustomerLog.CustomerLogs customerLogs = new Entities.Customers.CustomerLog.CustomerLogs { CustomerLog = new CustomerLog[] { new CustomerLog { LogID = 1, Username = "test", DateRequiredFollowUp = DateTime.Now.AddDays(21), Notes = "Example customer log updated", Status = Status.RequireRecontact } } }; var result = neto.Customers.UpdateCustomerLog(customerLogs); switch (result.Ack) { case Ack.Success: Console.WriteLine($"Updated Customer log at {result.CurrentTime}"); break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void AddCustomerLog(StoreManager neto) { Entities.Customers.CustomerLog.CustomerLogs customerLogs = new Entities.Customers.CustomerLog.CustomerLogs { CustomerLog = new CustomerLog[] { new CustomerLog { Username = "test", DateRequiredFollowUp = DateTime.Now.AddDays(14), Notes = "Example customer log", Status = Status.RequireRecontact } } }; var result = neto.Customers.AddCustomerLog(customerLogs); switch (result.Ack) { case Ack.Success: foreach (var i in result.CustomerLog) { Console.WriteLine($"Created LogId:{i.LogID} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void UpdateCustomer(StoreManager neto) { Customer[] customer = new Customer[] { new Customer { Username = "test", BillingAddress = new BillingAddress { BillFirstName = "Test Updated" } } }; var result = neto.Customers.UpdateCustomer(customer); switch (result.Ack) { case Ack.Success: foreach (var i in result.Item) { Console.WriteLine($"Updated Username:{i.Username} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void AddCustomers(StoreManager neto) { Customer[] customer = new Customer[] { new Customer { Username = "test", EmailAddress = "[email protected]", ABN = "123412341234", BillingAddress = new BillingAddress { BillFirstName = "Test", BillLastName = "Customer" } } }; var result = neto.Customers.AddCustomer(customer); switch (result.Ack) { case Ack.Success: foreach (var i in result.Customer) { Console.WriteLine($"Created Username:{i.Username} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void GetCustomers(StoreManager neto) { var filter = new GetCustomerFilter("SAMPLE_John"); Customer[] result = neto.Customers.GetCustomer(filter); foreach (Customer i in result) { Console.WriteLine($"{i.ID} - {i.Username}"); } } static void UpdateCategory(StoreManager neto) { var updateCategory = new Category[] { new Category { CategoryID = 105, CategoryName = "Clothing Updated" } }; var result = neto.Categories.UpdateCategory(updateCategory); switch (result.Ack) { case Ack.Success: foreach (var i in result.Category) { Console.WriteLine($"Updated ID: {i.CategoryID}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void AddCategory(StoreManager neto) { var newCategory = new Category[] { new Category { CategoryName = "Clothing" } }; var result = neto.Categories.AddCategory(newCategory); switch (result.Ack) { case Ack.Success: foreach (var i in result.Category) { Console.WriteLine($"Created ID: {i.CategoryID}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void GetCategories(StoreManager neto) { var filter = new GetCategoryFilter(new int[] { 98, 99, 100, 101 }); Category[] result = neto.Categories.GetCategory(filter); foreach (Category i in result) { Console.WriteLine($"{i.CategoryID} - {i.CategoryName}"); } } static void UpdateItems(StoreManager neto) { Item[] item = new Item[] { new Item { Name = "My New Item - Updated", SKU = "1234" } }; var result = neto.Products.UpdateItem(item); switch (result.Ack) { case Ack.Success: foreach (var i in result.Item) { Console.WriteLine($"Updated SKU: {i.SKU} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void AddItems(StoreManager neto) { NewItem[] item = new NewItem[] { new NewItem { Name = "Price test", SKU = "1111", DefaultPrice = 1.00m, IsActive = false, Approved = false } }; var result = neto.Products.AddItem(item); switch (result.Ack) { case Ack.Success: foreach (var i in result.Item) { Console.WriteLine($"Created ID:{i.InventoryID} SKU: {i.SKU} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void AddVariableItems(StoreManager neto) { NewItem[] variableProduct = new NewItem[] { new NewItem { Name = "Variable Item", SKU = "VAR", DefaultPrice = 1.00m }, new NewItem { Name = "Variable Item", SKU = "VAR1", DefaultPrice = 1.00m, ParentSKU = "VAR", ItemSpecifics = new List { new ItemSpecifics { ItemSpecific = new List { new ItemSpecific() { Name = "Size", Value = "1" }, new ItemSpecific() { Name = "Colour", Value = "RED" } } } } }, new NewItem { Name = "Variable Item", SKU = "VAR2", DefaultPrice = 1.00m, ParentSKU = "VAR", ItemSpecifics = new List { new ItemSpecifics { ItemSpecific = new List { new ItemSpecific() { Name = "Size", Value = "2" }, new ItemSpecific() { Name = "Colour", Value = "RED" } } } } } }; var result = neto.Products.AddItem(variableProduct); switch (result.Ack) { case Ack.Success: foreach (var i in result.Item) { Console.WriteLine($"Created ID:{i.InventoryID} SKU: {i.SKU} at {result.CurrentTime}"); } break; case Ack.Warning: foreach (var warn in result.Messages.Warning) { Console.WriteLine($"Warning: {warn.Message}"); } break; } } static void GetItems(StoreManager neto) { var filter = new GetItemFilter(new int[] { 15107 }); Item[] result = neto.Products.GetItem(filter); foreach (Item i in result) { Console.WriteLine($"{i.ID} - {i.Name}"); } } static void GetItemsFromDate(StoreManager neto) { var filter = new GetItemFilter(); filter.DateAddedFrom = DateTime.Now.Add(-TimeSpan.FromDays(100)); filter.Limit = 2; Item[] result = neto.Products.GetItem(filter); foreach (Item i in result) { Console.WriteLine($"{i.ID} - {i.Name}"); } } } }