
the Catalog manager and model into the Yavsc.Model.FrontOffice namespace * Web.config: * Catalog.xml: * MyClass.cs: * Note.cs: * Euro.cs: * Unit.cs: * Text.cs: * Link.cs: * Price.cs: * Label.cs: * Brand.cs: * Scalar.cs: * Option.cs: * Period.cs: * YavscModel.csproj: * Catalog.cs: * Service.cs: * Product.cs: * YavscClient.csproj: * CatalogManager.cs: * Currency.cs: * CheckBox.cs: * SaleForm.cs: * FormInput.cs: * CatalogProvider.cs: * TextInput.cs: * SelectItem.cs: * SalesCatalog.csproj: * FilesInput.cs: * FormElement.cs: * SelectInput.cs: * IValueProvider.cs: * StockStatus.cs: * RadioButton.cs: * Commande.cs: * ProductImage.cs: * WebCatalogExtensions.cs: * TemplateException.cs: * ProductCategory.cs: * PhysicalProduct.cs: * Note.cs: * Link.cs: * Text.cs: * Euro.cs: * Unit.cs: * WorkFlowManager.cs: * Brand.cs: * Label.cs: * Price.cs: * Scalar.cs: * FrontOfficeController.cs: * Period.cs: * Option.cs: * Product.cs: * Service.cs: * Catalog.cs: * SaleForm.cs: * Currency.cs: * CheckBox.cs: * TextInput.cs: * FrontOfficeApiController.cs: * FormInput.cs: * SelectItem.cs: * FilesInput.cs: * XmlCatalog.cs: * FormElement.cs: * SelectInput.cs: * RadioButton.cs: * StockStatus.cs: * ProductImage.cs: * CatalogHelper.cs: * CatalogManager.cs: * CatalogProvider.cs: * ProductCategory.cs: * PhysicalProduct.cs: * XmlCatalogProvider.cs: * CatalogProviderConfigurationElement.cs: * CatalogProvidersConfigurationSection.cs: * CatalogProvidersConfigurationCollection.cs: * CatalogProviderConfigurationElement.cs: * CatalogProvidersConfigurationSection.cs: * CatalogProvidersConfigurationCollection.cs: * CatalogHelper.cs:
79 lines
2.1 KiB
C#
79 lines
2.1 KiB
C#
using System;
|
|
using System.Net.Http;
|
|
using System.Threading.Tasks;
|
|
using System.Net.Http.Headers;
|
|
using System.Collections.Generic;
|
|
using System.Net.Http.Formatting;
|
|
using Newtonsoft.Json;
|
|
using Yavsc.Model.FrontOffice;
|
|
|
|
namespace Yavsc
|
|
{
|
|
public class MainClass
|
|
{
|
|
public static string ServiceUrl{ get; set; }
|
|
|
|
public static void Main(string [] args)
|
|
{
|
|
foreach (string s in args) {
|
|
if (Uri.IsWellFormedUriString (s,UriKind.Absolute)) {
|
|
// TODO create a client
|
|
}
|
|
GetCatalog ();
|
|
}
|
|
}
|
|
static HttpClient GetClient()
|
|
{
|
|
HttpClient client = new HttpClient ();
|
|
|
|
client.BaseAddress = new Uri (ServiceUrl);
|
|
|
|
// Add an Accept header for JSON format.
|
|
client.DefaultRequestHeaders.Accept.Add (
|
|
new MediaTypeWithQualityHeaderValue ("application/json"));
|
|
return client;
|
|
}
|
|
|
|
static void GetCatalog() {
|
|
HttpClient client = GetClient ();
|
|
|
|
HttpResponseMessage response = client.GetAsync("api/FrontOffice/Catalog").Result; // Blocking call!
|
|
if (response.IsSuccessStatusCode)
|
|
{
|
|
|
|
var jsonFormatter = new JsonMediaTypeFormatter();
|
|
jsonFormatter.SerializerSettings.TypeNameHandling = TypeNameHandling.Auto;
|
|
jsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
|
|
// Parse the response body. Blocking!
|
|
Catalog cat = response.Content.ReadAsAsync<Catalog>(new List<MediaTypeFormatter>{jsonFormatter},null).Result;
|
|
foreach (var p in cat.Brands)
|
|
{
|
|
Console.WriteLine("{0}\t{1};\t{2}", p.Name, p.Categories.Length, p.Slogan);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
|
|
}
|
|
}
|
|
|
|
public void UpLoad(string fileName)
|
|
{
|
|
using (var client = GetClient())
|
|
{
|
|
using (var content = new MultipartFormDataContent())
|
|
{
|
|
var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(fileName));//();
|
|
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
|
|
{
|
|
FileName = fileName
|
|
};
|
|
content.Add(fileContent);
|
|
var result = client.PostAsync(ServiceUrl, content).Result;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|