Files
yavsc/yavscclient/MyClass.cs
Paul Schneider 3c6c3f19aa Refactoring: moving
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:
2015-01-28 15:04:07 +01:00

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;
}
}
}
}
}