* input.css: refabrication des feuilles de style : la feuille des champs de formulaire. * CircleMember.cs: un membre de cercle est un nom d'utilisateur associé au cercle d'un autre utilisateur. * ICircle.cs: Définit l'interface d'un cercle: un cercle est identifié par un entier long, il a un possesseur. * Makefile: utilise le fichier de conf généré pour débugger. * NpgsqlContentProvider.cs: bug fix * README.md: maj priorités * AccountController.cs: implémente une méthode de l'API pour ajouter un utilisateur au cercle * links.css: Corrige la couleur du boutton de validation des formulaire de classe `ActionLink` * style.css: refabrication: importe la nouvelle feuille de style des champs de formulaires * style.css: nettoyage du thème sombre * style.css: nettoyage + section principale (`main`) centré * FrontOfficeController.cs: Repositionne la route vers le devis à do/Estimate * YavscHelpers.cs: corrige ma ré-écriture des helpers html ActionLink * App.master: formattage du code source * AppAdmin.master: synchronisation avec la page maître, beaucoup de changements dans cette page maître pour les administrateurs: * prend en charge les côtes d'article * utilise les fontes de caractère de la page pour les lien action * prend en charge les zones de formulaire masquable. * NoLogin.master: synchronisation avec la page maître * Performer.ascx: WIP permet d'ajouter un préstataire à un de ses cercles. * YourEstimates.aspx: corrige un lien cassé * Yavsc.csproj: mise à niveau Npgsql, renommage Estimate * packages.config: mise à niveau de la bibliothèque Npgsql (pilote d'accès à la base de donnée) * CircleBase.cs: un objet cercle basique implémente l'interface d'un cercle. * PerformerProfile.cs: s'assure que le nom d'utilisateur utilisé n'est pas vide. * IIdentified.cs: doc xml * UserNameBase.cs: l'objet base de type "nom d'utilisateur" implémente l'interface générique d'un identifié, par une chaine de caractère. * YavscModel.csproj: reference les nouvelles definitions : * un membre de cercle * l'interface d'un cercle * MainClass.cs: format du code * YavscClient.csproj: * Estimate.aspx: refabrication
95 lines
2.6 KiB
C#
95 lines
2.6 KiB
C#
using System;
|
|
using System.Net.Http;
|
|
using System.Threading.Tasks;
|
|
using System.Net.Http.Headers;
|
|
using System.Collections.Generic;
|
|
using Yavsc.Model.FrontOffice;
|
|
using Yavsc.Model.FrontOffice.Catalog;
|
|
using System.Net.Http.Formatting;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Yavsc
|
|
{
|
|
/// <summary>
|
|
/// Main class.
|
|
/// </summary>
|
|
public class MainClass
|
|
{
|
|
/// <summary>
|
|
/// Gets or sets the service URL.
|
|
/// </summary>
|
|
/// <value>The service URL.</value>
|
|
public static string ServiceUrl{ get; set; }
|
|
|
|
/// <summary>
|
|
/// The entry point of the program, where the program control starts and ends.
|
|
/// </summary>
|
|
/// <param name="args">The command-line arguments.</param>
|
|
public static void Main(string [] args)
|
|
{
|
|
foreach (string s in args) {
|
|
if (Uri.IsWellFormedUriString (s,UriKind.Absolute)) {
|
|
// TODO create command usage
|
|
ServiceUrl = s;
|
|
break;
|
|
}
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// Ups the load.
|
|
/// </summary>
|
|
/// <param name="fileName">File name.</param>
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|