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`).
260 lines
7.2 KiB
C#
260 lines
7.2 KiB
C#
using System;
|
|
using Yavsc.Model.WorkFlow;
|
|
using System.Configuration;
|
|
using System.Collections.Specialized;
|
|
using Yavsc.Model.FrontOffice;
|
|
using System.Configuration.Provider;
|
|
using Yavsc.Model.FrontOffice.Catalog;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Yavsc.Model.WorkFlow
|
|
{
|
|
|
|
/// <summary>
|
|
/// Work flow manager.
|
|
/// It takes orders store them and raise some events for modules
|
|
/// It publishes estimates and invoices
|
|
/// </summary>
|
|
public static class WorkFlowManager
|
|
{
|
|
/// <summary>
|
|
/// Finds the performer.
|
|
/// </summary>
|
|
/// <returns>The performer.</returns>
|
|
/// <param name="MEACode">MEA code.</param>
|
|
public static PerformerProfile [] FindPerformer(string MEACode)
|
|
{
|
|
return DefaultProvider.FindPerformer (MEACode);
|
|
}
|
|
|
|
/// <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 static Activity[] FindActivity(string pattern = "%", bool exerted=true)
|
|
{
|
|
List<Activity> activities = new List<Activity> ();
|
|
foreach (var provider in Providers) {
|
|
foreach (var act in provider.FindActivity (pattern, exerted))
|
|
if (!activities.Contains(act))
|
|
activities.Add(act);
|
|
}
|
|
return activities.ToArray();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the activity.
|
|
/// </summary>
|
|
/// <returns>The activity.</returns>
|
|
/// <param name="meacode">MAE code.</param>
|
|
public static Activity GetActivity (string meacode)
|
|
{
|
|
return DefaultProvider.GetActivity (meacode);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the catalog.
|
|
/// </summary>
|
|
/// <value>The catalog.</value>
|
|
public static Catalog Catalog { get; set; }
|
|
|
|
/// <summary>
|
|
/// Registers the command.
|
|
/// </summary>
|
|
/// <returns>The command.</returns>
|
|
/// <param name="com">COM.</param>
|
|
public static long RegisterCommand(Command com)
|
|
{
|
|
return DefaultProvider.RegisterCommand (com);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Updates the estimate.
|
|
/// </summary>
|
|
/// <param name="estim">Estim.</param>
|
|
public static void UpdateEstimate (Estimate estim)
|
|
{
|
|
DefaultProvider.Update (estim);
|
|
}
|
|
/// <summary>
|
|
/// Gets the estimate.
|
|
/// </summary>
|
|
/// <returns>The estimate.</returns>
|
|
/// <param name="estid">Estid.</param>
|
|
public static Estimate GetEstimate (long estid)
|
|
{
|
|
return DefaultProvider.Get (estid);
|
|
}
|
|
/// <summary>
|
|
/// Gets the estimates, refering the
|
|
/// given client or username .
|
|
/// </summary>
|
|
/// <returns>The estimates.</returns>
|
|
/// <param name="responsible">Responsible.</param>
|
|
public static Estimate [] GetResponsibleEstimates (string responsible)
|
|
{
|
|
return DefaultProvider.GetEstimates (null, responsible);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the client estimates.
|
|
/// </summary>
|
|
/// <returns>The client estimates.</returns>
|
|
/// <param name="client">Client.</param>
|
|
public static Estimate [] GetClientEstimates (string client)
|
|
{
|
|
return DefaultProvider.GetEstimates (client, null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the user estimates.
|
|
/// </summary>
|
|
/// <returns>The user estimates.</returns>
|
|
/// <param name="username">Username.</param>
|
|
public static Estimate [] GetUserEstimates (string username)
|
|
{
|
|
return DefaultProvider.GetEstimates (username);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the stock for a given product reference.
|
|
/// </summary>
|
|
/// <returns>The stock status.</returns>
|
|
/// <param name="productReference">Product reference.</param>
|
|
public static StockStatus GetStock(string productReference)
|
|
{
|
|
return DefaultProvider.GetStockStatus (productReference);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Updates the writting.
|
|
/// </summary>
|
|
/// <param name="wr">Wr.</param>
|
|
public static void UpdateWritting (Writting wr)
|
|
{
|
|
DefaultProvider.UpdateWritting (wr);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Drops the writting.
|
|
/// </summary>
|
|
/// <param name="wrid">Wrid.</param>
|
|
public static void DropWritting (long wrid)
|
|
{
|
|
DefaultProvider.DropWritting (wrid);
|
|
}
|
|
/// <summary>
|
|
/// Drops the estimate.
|
|
/// </summary>
|
|
/// <param name="estid">Estid.</param>
|
|
public static void DropEstimate (long estid)
|
|
{
|
|
DefaultProvider.DropEstimate(estid);
|
|
}
|
|
|
|
static IContentProvider defaultProvider;
|
|
/// <summary>
|
|
/// Gets the content provider.
|
|
/// </summary>
|
|
/// <value>The content provider.</value>
|
|
public static IContentProvider DefaultProvider {
|
|
|
|
get {
|
|
if (defaultProvider == null)
|
|
defaultProvider = ManagerHelper.CreateDefaultProvider
|
|
("system.web/workflow") as IContentProvider;
|
|
return defaultProvider;
|
|
}
|
|
}
|
|
|
|
public static void DropWrittingTag (long wrid, string tag)
|
|
{
|
|
throw new NotImplementedException ();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the providers.
|
|
/// </summary>
|
|
/// <value>The providers.</value>
|
|
public static IContentProvider [] Providers {
|
|
|
|
get {
|
|
if (providers == null) {
|
|
var pbs = ManagerHelper.CreateProviders
|
|
("system.web/workflow");
|
|
providers = new IContentProvider [pbs.Length];
|
|
for (var i=0;i<pbs.Length;i++)
|
|
providers[i] = pbs[i] as IContentProvider;
|
|
}
|
|
return providers;
|
|
}
|
|
}
|
|
|
|
private static IContentProvider [] providers = null;
|
|
|
|
/// <summary>
|
|
/// Creates the estimate.
|
|
/// </summary>
|
|
/// <returns>The estimate.</returns>
|
|
/// <param name="responsible">Responsible.</param>
|
|
/// <param name="client">Client.</param>
|
|
/// <param name="title">Title.</param>
|
|
/// <param name="description">Description.</param>
|
|
public static Estimate CreateEstimate(string responsible, string client, string title, string description)
|
|
{
|
|
Estimate created = DefaultProvider.CreateEstimate (responsible, client, title, description);
|
|
return created;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Write the specified estid, desc, ucost, count and productid.
|
|
/// </summary>
|
|
/// <param name="estid">Estid.</param>
|
|
/// <param name="desc">Desc.</param>
|
|
/// <param name="ucost">Ucost.</param>
|
|
/// <param name="count">Count.</param>
|
|
/// <param name="productid">Productid.</param>
|
|
public static long Write(long estid, string desc, decimal ucost, int count, string productid)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(productid)) {
|
|
if (Catalog == null)
|
|
Catalog = CatalogManager.GetCatalog ();
|
|
if (Catalog == null)
|
|
throw new Exception ("No catalog");
|
|
Product p = Catalog.FindProduct (productid);
|
|
if (p == null)
|
|
throw new Exception ("Product not found");
|
|
// TODO new EstimateChange Event
|
|
}
|
|
return DefaultProvider.Write(estid, desc, ucost, count, productid);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Sets the estimate status.
|
|
/// </summary>
|
|
/// <param name="estid">Estid.</param>
|
|
/// <param name="status">Status.</param>
|
|
/// <param name="username">Username.</param>
|
|
public static void SetEstimateStatus(long estid, int status, string username)
|
|
{
|
|
DefaultProvider.SetEstimateStatus (estid, status, username);
|
|
}
|
|
/// <summary>
|
|
/// Gets the commands.
|
|
/// </summary>
|
|
/// <returns>The commands.</returns>
|
|
/// <param name="username">Username.</param>
|
|
public static CommandSet GetCommands(string username)
|
|
{
|
|
return DefaultProvider.GetCommands (username);
|
|
}
|
|
|
|
public static void RegisterActivity (string activityName, string meacode, string comment)
|
|
{
|
|
DefaultProvider.RegisterActivity (activityName, meacode, comment);
|
|
}
|
|
}
|
|
}
|
|
|