|
|
|
using System;
|
|
|
|
using System.Xml.Serialization;
|
|
|
|
using System.Configuration;
|
|
|
|
using System.IO;
|
|
|
|
using System.Xml;
|
|
|
|
using System.Web;
|
|
|
|
using Yavsc.Model.FrontOffice.Catalog;
|
|
|
|
|
|
|
|
namespace SalesCatalog.XmlImplementation
|
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
/// Xml catalog provider.
|
|
|
|
/// In charge of getting the catalog data,
|
|
|
|
/// returning a Catalog object from GetCatalog
|
|
|
|
/// </summary>
|
|
|
|
public class XmlCatalogProvider: CatalogProvider
|
|
|
|
{
|
Implémente un formulaire simple
de réservation d'un préstataire
* p8-av4.xxs.jpg:
* p8-av4.xxs.png: inutile
* NoLogin.master:
* Entity.cs:
* OAuth2.cs:
* ApiClient.cs:
* PeopleApi.cs:
* MapTracks.cs:
* SkillManager.cs:
* Skills.aspx:
* EntityQuery.cs:
* CalendarApi.cs:
* SimpleJsonPostMethod.cs:
* GoogleHelpers.cs:
* EventPub.aspx:
* GoogleController.cs:
* Notification.cs:
* UserSkills.aspx:
* BackOfficeController.cs:
* BackOfficeController.cs:
* Notification.cs:
* MessageWithPayLoad.cs:
* MessageWithPayloadResponse.cs: refabrication
* IContentProvider.cs:
* NpgsqlBlogProvider.cs: xml doc
* NpgsqlContentProvider.cs: implemente un listing des prestataire du
code APE en base.
* NpgsqlSkillProvider.cs: implemente un listing des domaines de
compétence du préstataire en base.
* XmlCatalogProvider.cs: Le catalogue de vente implémente mainenant
l'interface d'un fournisseur de donnée comme les autres.
Il pourrait par exemple vouloir définir des activité et des
compétences.
Pour l'instant, il n'est pas activé par la configuration, et reste le
fournisseur du catalogue legacy (voir </FrontOffice/Catalog> ).
* FrontOfficeController.cs: format du code
* Global.asax.cs: Une route customisée pour le Front Office : /do
(genre, ici, ça bouge.)
* activity.sql: implémente en base de donnée le modèle des activités
et compétences,
ajoute aussi deux activités : l'edition logicielle et "Artiste"
* style.css: changement de mes images de fond ... tombées du camion de
Xavier et onlinehome.us
* p8-av4.s.jpg: changement de taille
* AccountController.cs: Met le code MEA à "none" quand il est spécifié
non disponible.
* BlogsController.cs: fixe un bug de l'edition d'un billet
* FrontOfficeController.cs: implemente le contrôle booking simple
* HomeController.cs: ajoute l'assemblage du catalog dans le listing
dédié
* YavscAjaxHelper.cs: Implemente un outil de representation JSon des
objets côté serveur
* parallax.js: deux fois plus de mouvement autout de x dans le
parallax
* yavsc.rate.js: imlemente un callback JS pour le rating
* Activities.aspx: Des labels au formulaire de déclaration des
activités
* Activity.ascx: un panneau activité descent
* Booking.aspx: implemente l'UI web du booking simple.
* EavyBooking.aspx: refabrication du booking lourd
* Index.aspx: supprime le panneau du tag Accueil, affiche les
activités en cours du site (avec au moins un préstataire valide pour
cette activité)
* Web.config: Implemente une cote utilisateur, par une nouvelle valeur
de son profile (Rate).
* Yavsc.csproj: refabrique du code API Google, qui part dans le model.
* MarkdownDeep.dll: le tag <p> ne convenait pas, le remplacer par le
tag <span> non plus.
Maintenant ça devrait être correct, c'est un div, mais que en cas de
tag englobant non défini.
* BookingQuery.cs: Le booking lourd devient une commande basée sur des
activités concernée par l'intervention
* ChangeLog: nettoyage
* CatalogProvider.cs: implemente l'interface d'un fournissseur de
contenu
* PerformerProfile.cs: implemente le profile prestataire
* SimpleBookingQuery.cs: Les besoin sont exprimé sous forme d'un
tableau de valeur du parametrage de la commande
* LocalizedText.resx:
* LocalizedText.fr.resx:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs: internationalisation
* Profile.cs: implemente un accès à l'id d'enregistrement Google GCM
* SkillEntity.cs: La compétence appartient à un domaine d'activité, on
lui associe un et un seul code APE
* SkillProvider.cs: Fait chercher les compétences à partir d'un code
activité
* WorkFlowManager.cs: implemente l'accès à la liste des préstataires
de telle activité
* YavscModel.csproj: refabrications
* Skills.sql: vient de passer dans activity.Sql
* T.cs: la traduction est faite plus simple à appeler (sans cast vers
`string`).
9 years ago
|
|
|
#region implemented abstract members of CatalogProvider
|
|
|
|
|
Implémente un formulaire simple
de réservation d'un préstataire
* p8-av4.xxs.jpg:
* p8-av4.xxs.png: inutile
* NoLogin.master:
* Entity.cs:
* OAuth2.cs:
* ApiClient.cs:
* PeopleApi.cs:
* MapTracks.cs:
* SkillManager.cs:
* Skills.aspx:
* EntityQuery.cs:
* CalendarApi.cs:
* SimpleJsonPostMethod.cs:
* GoogleHelpers.cs:
* EventPub.aspx:
* GoogleController.cs:
* Notification.cs:
* UserSkills.aspx:
* BackOfficeController.cs:
* BackOfficeController.cs:
* Notification.cs:
* MessageWithPayLoad.cs:
* MessageWithPayloadResponse.cs: refabrication
* IContentProvider.cs:
* NpgsqlBlogProvider.cs: xml doc
* NpgsqlContentProvider.cs: implemente un listing des prestataire du
code APE en base.
* NpgsqlSkillProvider.cs: implemente un listing des domaines de
compétence du préstataire en base.
* XmlCatalogProvider.cs: Le catalogue de vente implémente mainenant
l'interface d'un fournisseur de donnée comme les autres.
Il pourrait par exemple vouloir définir des activité et des
compétences.
Pour l'instant, il n'est pas activé par la configuration, et reste le
fournisseur du catalogue legacy (voir </FrontOffice/Catalog> ).
* FrontOfficeController.cs: format du code
* Global.asax.cs: Une route customisée pour le Front Office : /do
(genre, ici, ça bouge.)
* activity.sql: implémente en base de donnée le modèle des activités
et compétences,
ajoute aussi deux activités : l'edition logicielle et "Artiste"
* style.css: changement de mes images de fond ... tombées du camion de
Xavier et onlinehome.us
* p8-av4.s.jpg: changement de taille
* AccountController.cs: Met le code MEA à "none" quand il est spécifié
non disponible.
* BlogsController.cs: fixe un bug de l'edition d'un billet
* FrontOfficeController.cs: implemente le contrôle booking simple
* HomeController.cs: ajoute l'assemblage du catalog dans le listing
dédié
* YavscAjaxHelper.cs: Implemente un outil de representation JSon des
objets côté serveur
* parallax.js: deux fois plus de mouvement autout de x dans le
parallax
* yavsc.rate.js: imlemente un callback JS pour le rating
* Activities.aspx: Des labels au formulaire de déclaration des
activités
* Activity.ascx: un panneau activité descent
* Booking.aspx: implemente l'UI web du booking simple.
* EavyBooking.aspx: refabrication du booking lourd
* Index.aspx: supprime le panneau du tag Accueil, affiche les
activités en cours du site (avec au moins un préstataire valide pour
cette activité)
* Web.config: Implemente une cote utilisateur, par une nouvelle valeur
de son profile (Rate).
* Yavsc.csproj: refabrique du code API Google, qui part dans le model.
* MarkdownDeep.dll: le tag <p> ne convenait pas, le remplacer par le
tag <span> non plus.
Maintenant ça devrait être correct, c'est un div, mais que en cas de
tag englobant non défini.
* BookingQuery.cs: Le booking lourd devient une commande basée sur des
activités concernée par l'intervention
* ChangeLog: nettoyage
* CatalogProvider.cs: implemente l'interface d'un fournissseur de
contenu
* PerformerProfile.cs: implemente le profile prestataire
* SimpleBookingQuery.cs: Les besoin sont exprimé sous forme d'un
tableau de valeur du parametrage de la commande
* LocalizedText.resx:
* LocalizedText.fr.resx:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs: internationalisation
* Profile.cs: implemente un accès à l'id d'enregistrement Google GCM
* SkillEntity.cs: La compétence appartient à un domaine d'activité, on
lui associe un et un seul code APE
* SkillProvider.cs: Fait chercher les compétences à partir d'un code
activité
* WorkFlowManager.cs: implemente l'accès à la liste des préstataires
de telle activité
* YavscModel.csproj: refabrications
* Skills.sql: vient de passer dans activity.Sql
* T.cs: la traduction est faite plus simple à appeler (sans cast vers
`string`).
9 years ago
|
|
|
/// <summary>
|
|
|
|
/// Gets the activity.
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>The activity.</returns>
|
|
|
|
/// <param name="MEACode">MAE code.</param>
|
|
|
|
public override Yavsc.Model.FrontOffice.Activity GetActivity (string MEACode)
|
|
|
|
{
|
|
|
|
throw new NotImplementedException ();
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
|
|
/// Registers the activity.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="activityName">Activity name.</param>
|
|
|
|
/// <param name="meacode">Meacode.</param>
|
|
|
|
/// <param name="comment">Comment.</param>
|
|
|
|
public override void RegisterActivity (string activityName, string meacode, string comment)
|
|
|
|
{
|
|
|
|
throw new NotImplementedException ();
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
|
|
/// Finds the activity.
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>The activity.</returns>
|
|
|
|
/// <param name="pattern">Pattern.</param>
|
|
|
|
/// <param name="exerted">If set to <c>true</c> exerted.</param>
|
|
|
|
public override Yavsc.Model.FrontOffice.Activity[] FindActivity (string pattern, bool exerted)
|
|
|
|
{
|
|
|
|
throw new NotImplementedException ();
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
|
|
/// Finds the performer.
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>The performer.</returns>
|
|
|
|
/// <param name="MEACode">MEA code.</param>
|
|
|
|
public override Yavsc.Model.FrontOffice.PerformerProfile[] FindPerformer (string MEACode)
|
|
|
|
{
|
|
|
|
throw new NotImplementedException ();
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
|
|
/// Gets the catalog, loading it from
|
|
|
|
/// the file system at a first call,
|
|
|
|
/// and when its last write time has changed.
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>The catalog.</returns>
|
|
|
|
public override Catalog GetCatalog ()
|
|
|
|
{
|
|
|
|
// Assert fileName != null
|
|
|
|
FileInfo fi = new FileInfo (fileName);
|
|
|
|
if (!fi.Exists)
|
|
|
|
throw new ConfigurationErrorsException(
|
|
|
|
string.Format("No catalog found ({0})",fileName));
|
|
|
|
if (fi.LastWriteTime > lastModification)
|
|
|
|
LoadCatalog ();
|
|
|
|
return catInstance;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
|
|
/// The catalog instance.
|
|
|
|
/// </summary>
|
|
|
|
protected XmlCatalog catInstance = null;
|
|
|
|
/// <summary>
|
|
|
|
/// The last modification date of the file loaded.
|
|
|
|
/// </summary>
|
|
|
|
protected DateTime lastModification = new DateTime(0);
|
|
|
|
/// <summary>
|
|
|
|
/// The name of the file loaded.
|
|
|
|
/// </summary>
|
|
|
|
protected string fileName = null;
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
|
|
/// Initialize the catalog
|
|
|
|
/// using the specified name and config.
|
|
|
|
/// The config object contains under the key
|
|
|
|
/// <c>connection</c> the path to the Xml Catalog file
|
|
|
|
/// at server side.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="name">Name.</param>
|
|
|
|
/// <param name="config">Config.</param>
|
|
|
|
public override void Initialize (string name, System.Collections.Specialized.NameValueCollection config)
|
|
|
|
{
|
|
|
|
if (config ["connection"] == null)
|
|
|
|
throw new Exception ("the 'connection' parameter is null " +
|
|
|
|
"(it should be the absolute path to the xml catalog)");
|
|
|
|
string cnx = (string) config ["connection"];
|
|
|
|
fileName = HttpContext.Current.Server.MapPath(cnx);
|
|
|
|
LoadCatalog ();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void LoadCatalog ()
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
FileInfo fi = new FileInfo (fileName);
|
|
|
|
if (!fi.Exists)
|
|
|
|
throw new Exception (
|
|
|
|
string.Format ("Le fichier Xml decrivant le catalogue n'existe pas ({0})", fi.FullName));
|
|
|
|
XmlSerializer xsr = new XmlSerializer (typeof(XmlCatalog),new Type[]{
|
|
|
|
typeof(Service),
|
|
|
|
typeof(PhysicalProduct),
|
|
|
|
typeof(Euro),
|
|
|
|
typeof(Text),
|
|
|
|
typeof(TextInput),
|
|
|
|
typeof(SelectInput)});
|
|
|
|
|
|
|
|
using (FileStream fs = fi.OpenRead()) {
|
|
|
|
catInstance = (XmlCatalog) xsr.Deserialize (fs);
|
|
|
|
}
|
|
|
|
fileName = fi.FullName;
|
|
|
|
lastModification = fi.LastWriteTime;
|
|
|
|
}
|
|
|
|
catch (Exception e) {
|
|
|
|
lastModification = new DateTime (0);
|
|
|
|
throw e;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|