main
Paul Schneider 11 years ago
parent 7558e11bd6
commit 93c18633b9
28 changed files with 338 additions and 150 deletions

@ -7,6 +7,7 @@ using Yavsc.Model.WorkFlow;
using System.Web.Mvc; using System.Web.Mvc;
using System.Configuration.Provider; using System.Configuration.Provider;
using System.Collections.Generic; using System.Collections.Generic;
using Yavsc.Model.FrontOffice;
namespace WorkFlowProvider namespace WorkFlowProvider
{ {
@ -18,7 +19,7 @@ namespace WorkFlowProvider
using (NpgsqlConnection cnx = CreateConnection ()) { using (NpgsqlConnection cnx = CreateConnection ()) {
using (NpgsqlCommand cmd = cnx.CreateCommand ()) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = cmd.CommandText =
"insert into commandes (pref,creation) values (@pref,@creat) returning _id"; "insert into commandes (prdref,creation) values (@pref,@creat) returning id";
cmd.Parameters.Add ("@pref", com.ProdRef); cmd.Parameters.Add ("@pref", com.ProdRef);
cmd.Parameters.Add ("@creat", com.CreationDate); cmd.Parameters.Add ("@creat", com.CreationDate);
cnx.Open (); cnx.Open ();

@ -64,15 +64,5 @@ namespace Yavsc.ApiControllers
return wfmgr.GetEstimates ( return wfmgr.GetEstimates (
Membership.GetUser().UserName); Membership.GetUser().UserName);
} }
/// <summary>
/// Order the specified bi.
/// </summary>
/// <param name="bi">Bi.</param>
[HttpGet]
public object Order (BasketImpact bi)
{
return new { c="lmk,", message="Panier impacté", impactRef=bi.ProductRef, count=bi.Count};
}
} }
} }

@ -13,6 +13,7 @@ using Yavsc.Model.WorkFlow;
using WorkFlowProvider; using WorkFlowProvider;
using System.Web.Security; using System.Web.Security;
using System.Threading; using System.Threading;
using Yavsc.Model.FrontOffice;
namespace Yavsc.Controllers namespace Yavsc.Controllers
{ {
@ -26,6 +27,7 @@ namespace Yavsc.Controllers
/// The wfmgr. /// The wfmgr.
/// </summary> /// </summary>
protected WorkFlowManager wfmgr = null; protected WorkFlowManager wfmgr = null;
/// <summary> /// <summary>
/// Initialize the specified requestContext. /// Initialize the specified requestContext.
/// </summary> /// </summary>
@ -35,6 +37,7 @@ namespace Yavsc.Controllers
base.Initialize (requestContext); base.Initialize (requestContext);
wfmgr = new WorkFlowManager (); wfmgr = new WorkFlowManager ();
} }
/// <summary> /// <summary>
/// Index this instance. /// Index this instance.
/// </summary> /// </summary>
@ -42,6 +45,7 @@ namespace Yavsc.Controllers
{ {
return View (); return View ();
} }
/// <summary> /// <summary>
/// Estimates this instance. /// Estimates this instance.
/// </summary> /// </summary>
@ -50,15 +54,16 @@ namespace Yavsc.Controllers
{ {
string username = Membership.GetUser ().UserName; string username = Membership.GetUser ().UserName;
return View(wfmgr.GetEstimates (username)); return View (wfmgr.GetEstimates (username));
} }
/// <summary> /// <summary>
/// Estimate the specified model and submit. /// Estimate the specified model and submit.
/// </summary> /// </summary>
/// <param name="model">Model.</param> /// <param name="model">Model.</param>
/// <param name="submit">Submit.</param> /// <param name="submit">Submit.</param>
[Authorize] [Authorize]
public ActionResult Estimate(Estimate model,string submit) public ActionResult Estimate (Estimate model, string submit)
{ {
ViewData ["WebApiBase"] = "http://" + Request.Url.Authority + "/api"; ViewData ["WebApiBase"] = "http://" + Request.Url.Authority + "/api";
ViewData ["WABASEWF"] = ViewData ["WebApiBase"] + "/WorkFlow"; ViewData ["WABASEWF"] = ViewData ["WebApiBase"] + "/WorkFlow";
@ -80,7 +85,7 @@ namespace Yavsc.Controllers
} else { } else {
string username = HttpContext.User.Identity.Name; string username = HttpContext.User.Identity.Name;
if (model.Id == 0) { if (model.Id == 0) {
model.Responsible=username; model.Responsible = username;
ModelState.Clear (); ModelState.Clear ();
} }
if (ModelState.IsValid) { if (ModelState.IsValid) {
@ -98,12 +103,13 @@ namespace Yavsc.Controllers
} }
} }
} }
return View(model); return View (model);
} }
/// <summary> /// <summary>
/// Catalog this instance. /// Catalog this instance.
/// </summary> /// </summary>
[AcceptVerbs("GET")] [AcceptVerbs ("GET")]
public ActionResult Catalog () public ActionResult Catalog ()
{ {
return View ( return View (
@ -114,12 +120,12 @@ namespace Yavsc.Controllers
/// <summary> /// <summary>
/// Catalog this instance. /// Catalog this instance.
/// </summary> /// </summary>
[AcceptVerbs("GET")] [AcceptVerbs ("GET")]
public ActionResult Brand (string id) public ActionResult Brand (string id)
{ {
Catalog c = CatalogManager.GetCatalog (Request.Url.AbsolutePath); Catalog c = CatalogManager.GetCatalog (Request.Url.AbsolutePath);
ViewData ["BrandName"] = id; ViewData ["BrandName"] = id;
return View ( c.GetBrand (id) ); return View (c.GetBrand (id));
} }
/// <summary> /// <summary>
@ -128,7 +134,7 @@ namespace Yavsc.Controllers
/// <returns>The category object.</returns> /// <returns>The category object.</returns>
/// <param name="brandid">Brand id.</param> /// <param name="brandid">Brand id.</param>
/// <param name="pcid">Product category Id.</param> /// <param name="pcid">Product category Id.</param>
[AcceptVerbs("GET")] [AcceptVerbs ("GET")]
public ActionResult ProductCategory (string brandid, string pcid) public ActionResult ProductCategory (string brandid, string pcid)
{ {
ViewData ["BrandId"] = brandid; ViewData ["BrandId"] = brandid;
@ -137,13 +143,14 @@ namespace Yavsc.Controllers
CatalogManager.GetCatalog (Request.Url.AbsolutePath).GetBrand (brandid).GetProductCategory (pcid) CatalogManager.GetCatalog (Request.Url.AbsolutePath).GetBrand (brandid).GetProductCategory (pcid)
); );
} }
/// <summary> /// <summary>
/// Product the specified id, pc and pref. /// Product the specified id, pc and pref.
/// </summary> /// </summary>
/// <param name="id">Identifier.</param> /// <param name="id">Identifier.</param>
/// <param name="pc">Pc.</param> /// <param name="pc">Pc.</param>
/// <param name="pref">Preference.</param> /// <param name="pref">Preference.</param>
[AcceptVerbs("GET")] [AcceptVerbs ("GET")]
public ActionResult Product (string id, string pc, string pref) public ActionResult Product (string id, string pc, string pref)
{ {
Product p = null; Product p = null;
@ -168,62 +175,68 @@ namespace Yavsc.Controllers
} }
ViewData ["ProdCatName"] = pcat.Name; ViewData ["ProdCatName"] = pcat.Name;
p = pcat.GetProduct (pref); p = pcat.GetProduct (pref);
if (p.CommandForm==null) if (p.CommandForm == null)
p.CommandForm = b.DefaultForm; p.CommandForm = b.DefaultForm;
return View ((p is Service)?"Service":"Product", p); return View ((p is Service) ? "Service" : "Product", p);
} }
/// <summary> /// <summary>
/// Command this instance. /// Command this instance.
/// </summary> /// </summary>
public ActionResult Command() public ActionResult Command ()
{ {
return View (); return View ();
} }
private Basket GetBasket ()
{
if (Session ["Basket"] == null)
Session ["Basket"] = new Basket();
return Session ["Basket"] as Basket;
}
/// <summary> /// <summary>
/// Command the specified collection. /// Command the specified collection.
/// </summary> /// </summary>
/// <param name="collection">Collection.</param> /// <param name="collection">Collection.</param>
[HttpPost] [HttpPost]
[Authorize] [Authorize]
public ActionResult Command(FormCollection collection) public ActionResult Command (FormCollection collection)
{ {
try { try {
// get files from the request // get files from the request
string fnre = "[A-Za-z0-9~\\-.]+"; string fnre = "[A-Za-z0-9~\\-.]+";
HttpFileCollectionBase hfc = Request.Files; HttpFileCollectionBase hfc = Request.Files;
foreach (String h in hfc.AllKeys) foreach (String h in hfc.AllKeys) {
{ if (!Regex.Match (hfc [h].FileName, fnre).Success) {
if (!Regex.Match(hfc[h].FileName,fnre).Success)
{
ViewData ["Message"] = "File name refused"; ViewData ["Message"] = "File name refused";
ModelState.AddModelError( ModelState.AddModelError (
h, h,
string.Format( string.Format (
"The file name {0} dosn't match an acceptable file name {1}", "The file name {0} dosn't match an acceptable file name {1}",
hfc[h].FileName,fnre)) hfc [h].FileName, fnre));
; return View (collection);
return View(collection);
} }
} }
foreach (String h in hfc.AllKeys) foreach (String h in hfc.AllKeys) {
{
// TODO Limit with hfc[h].ContentLength // TODO Limit with hfc[h].ContentLength
hfc[h].SaveAs(Path.Combine(FileSystemController.BaseDir,hfc[h].FileName)); hfc [h].SaveAs (Path.Combine (FileSystemController.BaseDir, hfc [h].FileName));
} }
if (Session["Basket"]==null)
Session["Basket"]=new List<Commande>();
List<Commande> basket = Session["Basket"] as List<Commande>;
// Add specified product command to the basket, // Add specified product command to the basket,
basket.Add(Commande.Create(collection)); GetBasket().Add (Commande.Create (collection));
ViewData ["Message"] = LocalizedText.Item_added_to_basket;
return View (collection); return View (collection);
} catch (Exception e) } catch (Exception e) {
{ ViewData ["Message"] = "Exception:" + e.Message;
ViewData ["Message"] = "Exception:"+e.Message;
return View (collection); return View (collection);
} }
} }
ActionResult YourCommands ()
{
return View (GetBasket());
}
} }
} }

@ -30,11 +30,29 @@ using System.Net;
namespace Yavsc.Formatters namespace Yavsc.Formatters
{ {
/// <summary>
/// Formats a given error message to respond
/// in case of error, and in an html format
/// </summary>
public class ErrorHtmlFormatter:SimpleFormatter { public class ErrorHtmlFormatter:SimpleFormatter {
/// <summary>
/// Gets or sets the title.
/// </summary>
/// <value>The title.</value>
public string Title { get ; set; } public string Title { get ; set; }
/// <summary>
/// Gets or sets the error code.
/// </summary>
/// <value>The error code.</value>
public HttpStatusCode ErrorCode { get ; set; } public HttpStatusCode ErrorCode { get ; set; }
string doctype="<!DOCTYPE html>"; string doctype="<!DOCTYPE html>";
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.Formatters.ErrorHtmlFormatter"/> class.
/// </summary>
/// <param name="errorCode">Error code.</param>
/// <param name="title">Title.</param>
public ErrorHtmlFormatter public ErrorHtmlFormatter
(HttpStatusCode errorCode, string title):base("text/html") (HttpStatusCode errorCode, string title):base("text/html")
{ {
@ -42,7 +60,13 @@ namespace Yavsc.Formatters
Title = title; Title = title;
} }
/// <summary>
/// Writes to stream.
/// </summary>
/// <param name="type">Type.</param>
/// <param name="value">Value.</param>
/// <param name="stream">Stream.</param>
/// <param name="contentHeaders">Content headers.</param>
public override void WriteToStream (Type type, object value, Stream stream, HttpContentHeaders contentHeaders) public override void WriteToStream (Type type, object value, Stream stream, HttpContentHeaders contentHeaders)
{ {
// TODO create a type containing T4 parameters, and generate from them // TODO create a type containing T4 parameters, and generate from them

@ -32,18 +32,28 @@ using System.Text;
namespace Yavsc.Formatters namespace Yavsc.Formatters
{ {
/// <summary>
/// Rss feeds formatter.
/// </summary>
public class RssFeedsFormatter:SimpleFormatter public class RssFeedsFormatter:SimpleFormatter
{ {
string doctype = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; string doctype = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.Formatters.RssFeedsFormatter"/> class.
/// </summary>
public RssFeedsFormatter public RssFeedsFormatter
() : base ("application/rss+xml") () : base ("application/rss+xml")
{ {
} }
private const string dateformat = "ddd, dd MMM yyyy HH:mm:ss K"; private const string dateformat = "ddd, dd MMM yyyy HH:mm:ss K";
/// <summary>
/// Writes to stream.
/// </summary>
/// <param name="type">Type.</param>
/// <param name="value">Value.</param>
/// <param name="stream">Stream.</param>
/// <param name="contentHeaders">Content headers.</param>
public override void WriteToStream (Type type, object value, Stream stream, HttpContentHeaders contentHeaders) public override void WriteToStream (Type type, object value, Stream stream, HttpContentHeaders contentHeaders)
{ {
RssFeedsChannel feeds = value as RssFeedsChannel; RssFeedsChannel feeds = value as RssFeedsChannel;

@ -30,29 +30,48 @@ using Newtonsoft.Json;
namespace Yavsc.Helpers.Google namespace Yavsc.Helpers.Google
{ {
/// <summary>
/// Google base API client.
/// This class implements the identification values for a Google Api,
/// and provides some scope values.
/// </summary>
public class ApiClient public class ApiClient
{ {
/// <summary>
/// The CLIENT Id.
/// </summary>
protected static string CLIENT_ID = "325408689282-6bekh7p3guj4k0f3301a6frf025cnrk1.apps.googleusercontent.com"; protected static string CLIENT_ID = "325408689282-6bekh7p3guj4k0f3301a6frf025cnrk1.apps.googleusercontent.com";
/// <summary>
/// The CLIENt SECREt
/// </summary>
protected static string CLIENT_SECRET = "MaxYcvJJCs2gDGvaELZbzwfL"; protected static string CLIENT_SECRET = "MaxYcvJJCs2gDGvaELZbzwfL";
/// <summary>
/// The API KEY.
/// </summary>
protected static string API_KEY="AIzaSyBV_LQHb22nGgjNvFzZwnQHjao3Q7IewRw"; protected static string API_KEY="AIzaSyBV_LQHb22nGgjNvFzZwnQHjao3Q7IewRw";
/* // to use in descendence /* // to use in descendence
* *
protected static string getPeopleUri = "https://www.googleapis.com/plus/v1/people"; protected static string getPeopleUri = "https://www.googleapis.com/plus/v1/people";
private static string authUri = "https://accounts.google.com/o/oauth2/auth"; private static string authUri = "https://accounts.google.com/o/oauth2/auth";
*/ */
/// <summary>
/// The Map tracks scope .
/// </summary>
protected static string scopeTracks = "https://www.googleapis.com/auth/tracks"; protected static string scopeTracks = "https://www.googleapis.com/auth/tracks";
/// <summary>
/// The calendar scope.
/// </summary>
protected static string scopeCalendar = "https://www.googleapis.com/auth/calendar"; protected static string scopeCalendar = "https://www.googleapis.com/auth/calendar";
/// <summary>
/// The scope openid.
/// </summary>
protected static string[] scopeOpenid = { protected static string[] scopeOpenid = {
"openid", "openid",
"profile", "profile",
"email" "email"
}; };
// private static string dateFormat = "yyyy-MM-ddTHH:mm:ss";
} }
} }

@ -31,14 +31,36 @@ using System.Web;
namespace Yavsc.Helpers.Google namespace Yavsc.Helpers.Google
{ {
/// <summary>
/// Google Calendar API client.
/// </summary>
public class CalendarApi: ApiClient public class CalendarApi: ApiClient
{ {
/// <summary>
/// The get cal list URI.
/// </summary>
protected static string getCalListUri = "https://www.googleapis.com/calendar/v3/users/me/calendarList"; protected static string getCalListUri = "https://www.googleapis.com/calendar/v3/users/me/calendarList";
/// <summary>
/// The get cal entries URI.
/// </summary>
protected static string getCalEntriesUri = "https://www.googleapis.com/calendar/v3/calendars/{0}/events"; protected static string getCalEntriesUri = "https://www.googleapis.com/calendar/v3/calendars/{0}/events";
/// <summary>
/// The date format.
/// </summary>
private static string dateFormat = "yyyy-MM-ddTHH:mm:ss"; private static string dateFormat = "yyyy-MM-ddTHH:mm:ss";
/// <summary>
/// The time zone. TODO Fixme with machine time zone
/// </summary>
private string timeZone = "+01:00"; private string timeZone = "+01:00";
/// <summary>
/// Gets the calendar list.
/// </summary>
/// <returns>The calendars.</returns>
/// <param name="cred">Cred.</param>
/// <param name="json">Json.</param>
public CalendarList GetCalendars (string cred, out string json) public CalendarList GetCalendars (string cred, out string json)
{ {
CalendarList res = null; CalendarList res = null;
@ -59,6 +81,15 @@ namespace Yavsc.Helpers.Google
return res; return res;
} }
/// <summary>
/// Gets a calendar.
/// </summary>
/// <returns>The calendar.</returns>
/// <param name="calid">Calid.</param>
/// <param name="mindate">Mindate.</param>
/// <param name="maxdate">Maxdate.</param>
/// <param name="upr">Upr.</param>
/// <param name="responseStr">Response string.</param>
public CalendarEntryList GetCalendar (string calid, DateTime mindate, DateTime maxdate, ProfileBase upr, out string responseStr) public CalendarEntryList GetCalendar (string calid, DateTime mindate, DateTime maxdate, ProfileBase upr, out string responseStr)
{ {
string uri = string.Format ( string uri = string.Format (

@ -30,9 +30,17 @@ using Newtonsoft.Json;
namespace Yavsc.Helpers.Google namespace Yavsc.Helpers.Google
{ {
/// <summary>
/// Entity query.
/// </summary>
public class EntityQuery { public class EntityQuery {
/// <summary>
/// The entity identifiers.
/// </summary>
public string [] EntityIds; public string [] EntityIds;
/// <summary>
/// The minimum identifier.
/// </summary>
public string MinId; public string MinId;
} }
} }

@ -29,8 +29,14 @@ using Newtonsoft.Json;
namespace Yavsc.Helpers.Google namespace Yavsc.Helpers.Google
{ {
/// <summary>
/// Google Map tracks Api client.
/// </summary>
public class MapTracks:ApiClient { public class MapTracks:ApiClient {
/// <summary>
/// The google map tracks path (uri of the service).
/// </summary>
protected static string googleMapTracksPath = "https://www.googleapis.com/tracks/v1/"; protected static string googleMapTracksPath = "https://www.googleapis.com/tracks/v1/";
// entities/[create|list|delete] // entities/[create|list|delete]
// collections/[list|create|[add|remove]entities|delete] // collections/[list|create|[add|remove]entities|delete]
@ -41,8 +47,12 @@ namespace Yavsc.Helpers.Google
// collections/[list|create|[add|remove]entities|delete] // collections/[list|create|[add|remove]entities|delete]
// crumbs/[record|getrecent|gethistory|report|summarize|getlocationinfo|delete // crumbs/[record|getrecent|gethistory|report|summarize|getlocationinfo|delete
/// <summary>
static string [] CreateEntity( Entity[] entities ) { /// Creates the entity.
/// </summary>
/// <returns>The entity.</returns>
/// <param name="entities">Entities.</param>
public static string [] CreateEntity( Entity[] entities ) {
string [] ans = null; string [] ans = null;
using (SimpleJsonPostMethod< Entity[] ,string []> wr = using (SimpleJsonPostMethod< Entity[] ,string []> wr =
new SimpleJsonPostMethod< Entity[] ,string[]> (googleMapTracksPath + "entities/create")) new SimpleJsonPostMethod< Entity[] ,string[]> (googleMapTracksPath + "entities/create"))
@ -51,6 +61,12 @@ namespace Yavsc.Helpers.Google
} }
return ans; return ans;
} }
/// <summary>
/// Lists the entities.
/// </summary>
/// <returns>The entities.</returns>
/// <param name="eq">Eq.</param>
static Entity[] ListEntities (EntityQuery eq) static Entity[] ListEntities (EntityQuery eq)
{ {
Entity [] ans = null; Entity [] ans = null;

@ -30,11 +30,18 @@ using Yavsc.Model;
namespace Yavsc.Helpers.Google namespace Yavsc.Helpers.Google
{ {
/// <summary>
/// Google People API.
/// </summary>
public class PeopleApi: ApiClient public class PeopleApi: ApiClient
{ {
private static string getPeopleUri = "https://www.googleapis.com/plus/v1/people"; private static string getPeopleUri = "https://www.googleapis.com/plus/v1/people";
/// <summary>
/// Gets the People object associated to the given Google Access Token
/// </summary>
/// <returns>The me.</returns>
/// <param name="gat">The Google Access Token object <see cref="AuthToken"/> class.</param>
public static People GetMe (AuthToken gat) public static People GetMe (AuthToken gat)
{ {
People me; People me;
@ -57,13 +64,31 @@ namespace Yavsc.Helpers.Google
} }
} }
/// <summary>
/// Google O auth2 client.
/// </summary>
public class OAuth2:ApiClient public class OAuth2:ApiClient
{ {
/// <summary>
/// The URI used to get tokens.
/// </summary>
protected static string tokenUri = "https://accounts.google.com/o/oauth2/token"; protected static string tokenUri = "https://accounts.google.com/o/oauth2/token";
/// <summary>
/// The URI used to get authorized to.
/// </summary>
protected static string authUri = "https://accounts.google.com/o/oauth2/auth"; protected static string authUri = "https://accounts.google.com/o/oauth2/auth";
/// <summary>
/// Gets or sets the redirect URI sent to Google.
/// </summary>
/// <value>The redirect URI.</value>
public string RedirectUri { get; set; } public string RedirectUri { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.Helpers.Google.OAuth2"/> class.
/// </summary>
/// <param name="redirectUri">Redirect URI.</param>
public OAuth2 (string redirectUri) public OAuth2 (string redirectUri)
{ {
RedirectUri = redirectUri; RedirectUri = redirectUri;
@ -84,7 +109,11 @@ namespace Yavsc.Helpers.Google
CLIENT_ID, RedirectUri, scope, state); CLIENT_ID, RedirectUri, scope, state);
GetAuthResponse (bresp, prms); GetAuthResponse (bresp, prms);
} }
/// <summary>
/// Gets the cal authorization.
/// </summary>
/// <param name="bresp">Bresp.</param>
/// <param name="state">State.</param>
public void GetCalAuth (HttpResponseBase bresp, string state) public void GetCalAuth (HttpResponseBase bresp, string state)
{ {
string scope = string.Join ("%20", scopeOpenid); string scope = string.Join ("%20", scopeOpenid);
@ -130,7 +159,13 @@ namespace Yavsc.Helpers.Google
HttpUtility.UrlEncode (code)); HttpUtility.UrlEncode (code));
return postdata; return postdata;
} }
/// <summary>
/// Gets the Google Authorization token.
/// </summary>
/// <returns>The token.</returns>
/// <param name="rq">Rq.</param>
/// <param name="state">State.</param>
/// <param name="message">Message.</param>
public AuthToken GetToken (HttpRequestBase rq, string state, out string message) public AuthToken GetToken (HttpRequestBase rq, string state, out string message)
{ {
string code = OAuth2.GetCodeFromRequest (rq, state, out message); string code = OAuth2.GetCodeFromRequest (rq, state, out message);
@ -138,12 +173,6 @@ namespace Yavsc.Helpers.Google
return GetTokenPosting (postdata); return GetTokenPosting (postdata);
} }
[Obsolete ("Use GetToken instead.")]
public static AuthToken GetTokenFromBody (string postdata)
{
throw new NotImplementedException ();
}
internal static AuthToken GetTokenPosting (string postdata) internal static AuthToken GetTokenPosting (string postdata)
{ {
HttpWebRequest webreq = WebRequest.CreateHttp (tokenUri); HttpWebRequest webreq = WebRequest.CreateHttp (tokenUri);
@ -174,6 +203,13 @@ namespace Yavsc.Helpers.Google
return gat; return gat;
} }
/// <summary>
/// Gets the code from the Google request.
/// </summary>
/// <returns>The code from request.</returns>
/// <param name="rq">Rq.</param>
/// <param name="state">State.</param>
/// <param name="message">Message.</param>
public static string GetCodeFromRequest (HttpRequestBase rq, string state, out string message) public static string GetCodeFromRequest (HttpRequestBase rq, string state, out string message)
{ {
message = ""; message = "";
@ -194,6 +230,11 @@ namespace Yavsc.Helpers.Google
return code; return code;
} }
/// <summary>
/// Gets fresh google credential.
/// </summary>
/// <returns>The fresh google credential.</returns>
/// <param name="pr">Pr.</param>
public static string GetFreshGoogleCredential (ProfileBase pr) public static string GetFreshGoogleCredential (ProfileBase pr)
{ {
string token = (string)pr.GetPropertyValue ("gtoken"); string token = (string)pr.GetPropertyValue ("gtoken");

@ -97,14 +97,10 @@ namespace Yavsc.Helpers
} }
#region IDisposable implementation #region IDisposable implementation
/// <summary> /// <summary>
/// Releases all resource used by the <see cref="Yavsc.Helpers.SimpleJsonPostMethod`2"/> object. /// Releases all resource used by the Yavsc.Helpers.SimpleJsonPostMethod object.
/// </summary> /// </summary>
/// <remarks>Call <see cref="Dispose"/> when you are finished using the <see cref="Yavsc.Helpers.SimpleJsonPostMethod`2"/>. The
/// <see cref="Dispose"/> method leaves the <see cref="Yavsc.Helpers.SimpleJsonPostMethod`2"/> in an unusable state.
/// After calling <see cref="Dispose"/>, you must release all references to the
/// <see cref="Yavsc.Helpers.SimpleJsonPostMethod`2"/> so the garbage collector can reclaim the memory that the
/// <see cref="Yavsc.Helpers.SimpleJsonPostMethod`2"/> was occupying.</remarks>
public void Dispose () public void Dispose ()
{ {
if (Request != null) Request.Abort (); if (Request != null) Request.Abort ();

@ -23,12 +23,21 @@ using System.Configuration;
namespace Yavsc.Settings namespace Yavsc.Settings
{ {
/// <summary>
/// Module configuration element. (NOTUSED)
/// </summary>
public class ModuleConfigurationElement : ConfigurationElement public class ModuleConfigurationElement : ConfigurationElement
{ {
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.Settings.ModuleConfigurationElement"/> class.
/// </summary>
public ModuleConfigurationElement () public ModuleConfigurationElement ()
{ {
} }
/// <summary>
/// Gets or sets the name of the module.
/// </summary>
/// <value>The name.</value>
[ConfigurationProperty("name", IsKey=true, IsRequired=true)] [ConfigurationProperty("name", IsKey=true, IsRequired=true)]
public string Name { public string Name {
get { get {
@ -36,7 +45,10 @@ namespace Yavsc.Settings
} }
set { base ["name"] = value; } set { base ["name"] = value; }
} }
/// <summary>
/// Gets or sets the name of the class.
/// </summary>
/// <value>The name of the class.</value>
[ConfigurationProperty("name", IsKey=true, IsRequired=true)] [ConfigurationProperty("name", IsKey=true, IsRequired=true)]
public string ClassName { public string ClassName {
get { get {

@ -23,8 +23,15 @@ using System.Configuration;
namespace Yavsc.Settings namespace Yavsc.Settings
{ {
/// <summary>
/// Modules configuration section.
/// This class is not yet used ...
/// </summary>
public class ModulesConfigurationSection : ConfigurationSection public class ModulesConfigurationSection : ConfigurationSection
{ {
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.Settings.ModulesConfigurationSection"/> class.
/// </summary>
public ModulesConfigurationSection () public ModulesConfigurationSection ()
{ {
} }

@ -3,16 +3,35 @@ using System.Configuration;
namespace Yavsc namespace Yavsc
{ {
/// <summary>
/// Thanks configuration collection.
/// Imlements the configuration,
/// providing the thanks collection
/// </summary>
public class ThanksConfigurationCollection : ConfigurationElementCollection public class ThanksConfigurationCollection : ConfigurationElementCollection
{ {
/// <summary>
/// Gets the element key.
/// </summary>
/// <returns>The element key.</returns>
/// <param name="element">Element.</param>
protected override object GetElementKey (ConfigurationElement element) protected override object GetElementKey (ConfigurationElement element)
{ {
return ((ThanksConfigurationElement) element).Name; return ((ThanksConfigurationElement) element).Name;
} }
/// <summary>
/// Creates the new element.
/// </summary>
/// <returns>The new element.</returns>
protected override ConfigurationElement CreateNewElement () protected override ConfigurationElement CreateNewElement ()
{ {
return new ThanksConfigurationElement(); return new ThanksConfigurationElement();
} }
/// <summary>
/// Gets the element.
/// </summary>
/// <returns>The element.</returns>
/// <param name="name">Name.</param>
public ThanksConfigurationElement GetElement (string name) public ThanksConfigurationElement GetElement (string name)
{ {
return this.BaseGet(name) as ThanksConfigurationElement; return this.BaseGet(name) as ThanksConfigurationElement;

@ -4,8 +4,16 @@ using System.Collections.Generic;
namespace Yavsc namespace Yavsc
{ {
/// <summary>
/// Thanks helper.
/// </summary>
public static class ThanksHelper { public static class ThanksHelper {
static private ThanksConfigurationSection configurationSection=null; static private ThanksConfigurationSection configurationSection=null;
/// <summary>
/// Gets the configuration section.
/// </summary>
/// <value>The configuration section.</value>
static public ThanksConfigurationSection ConfigurationSection { static public ThanksConfigurationSection ConfigurationSection {
get { get {
if (configurationSection==null) if (configurationSection==null)
@ -13,7 +21,9 @@ namespace Yavsc
return configurationSection; return configurationSection;
} }
} }
/// <summary>
/// Html code for each entry
/// </summary>
public static string[] Links () public static string[] Links ()
{ {
List<string> result = new List<string>() ; List<string> result = new List<string>() ;

@ -1,4 +1,12 @@
<%@ Page Title="Commande" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<FormCollection>" %> <%@ Page Title="Commande" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<FormCollection>" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server"> <asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
rha
</asp:Content>
<asp:Content ID="MASContentContent" ContentPlaceHolderID="MASContent" runat="server">
<ul><li>
<%= Html.ActionLink("Catalog","Catalog" ) %>
</li><li>
<%= Html.ActionLink("Estimates","Estimates" ) %>
</li></ul>
</asp:Content> </asp:Content>

@ -24,6 +24,9 @@ namespace Yavsc.templates
{ {
public partial class Estim public partial class Estim
{ {
/// <summary>
/// Inits this instance.
/// </summary>
public void Init () public void Init ()
{ {
this.Initialize(); this.Initialize();

@ -0,0 +1,35 @@
//
// Basket.cs
//
// Author:
// Paul Schneider <paulschneider@free.fr>
//
// Copyright (c) 2015 Paul Schneider
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System;
using System.Collections.Generic;
using Yavsc.Model.WorkFlow;
namespace Yavsc.Model.FrontOffice
{
public class Basket: List<Commande>
{
public Basket ()
{
}
}
}

@ -3,9 +3,10 @@ using Yavsc;
using SalesCatalog; using SalesCatalog;
using SalesCatalog.Model; using SalesCatalog.Model;
using System.Collections.Specialized; using System.Collections.Specialized;
using Yavsc.Model.WorkFlow;
namespace Yavsc.Model.WorkFlow namespace Yavsc.Model.FrontOffice
{ {
public class Commande public class Commande
{ {
@ -19,7 +20,7 @@ namespace Yavsc.Model.WorkFlow
{ {
Commande cmd = new Commande (); Commande cmd = new Commande ();
// string catref=collection["catref"]; // Catalog Url from which formdata has been built // string catref=collection["catref"]; // Catalog Url from which formdata has been built
cmd.ProdRef=collection["prodref"]; // Required product reference cmd.ProdRef=collection["ref"]; // Required product reference
cmd.CreationDate = DateTime.Now; cmd.CreationDate = DateTime.Now;
WorkFlowManager wm = new WorkFlowManager (); WorkFlowManager wm = new WorkFlowManager ();
wm.RegisterCommand (cmd); // sets cmd.Id wm.RegisterCommand (cmd); // sets cmd.Id

@ -52,6 +52,12 @@ namespace Yavsc.Model {
} }
} }
public static string Item_added_to_basket {
get {
return ResourceManager.GetString("Item_added_to_basket", resourceCulture);
}
}
public static string Unitary_cost { public static string Unitary_cost {
get { get {
return ResourceManager.GetString("Unitary_cost", resourceCulture); return ResourceManager.GetString("Unitary_cost", resourceCulture);

@ -45,5 +45,5 @@
<data name="was_added_to_the_empty_role"><value>Il n'y avait pas 'utilisateur dans le rôle '{1}'. Vous ({0}) avez été ajouté au rôle '{1}'.</value></data> <data name="was_added_to_the_empty_role"><value>Il n'y avait pas 'utilisateur dans le rôle '{1}'. Vous ({0}) avez été ajouté au rôle '{1}'.</value></data>
<data name="younotadmin"><value>Vous n'êtes pas administrateur</value></data> <data name="younotadmin"><value>Vous n'êtes pas administrateur</value></data>
<data name="role_created"><value>Rôle créé</value></data> <data name="role_created"><value>Rôle créé</value></data>
<data name="Item_added_to_basket"><value>Article ajouté au panier</value></data>
</root> </root>

@ -45,4 +45,5 @@
<data name="was_added_to_the_empty_role"><value>There was no user in the '{1}' role. You ({0}) was just added as firt user in the '{1}' role.</value></data> <data name="was_added_to_the_empty_role"><value>There was no user in the '{1}' role. You ({0}) was just added as firt user in the '{1}' role.</value></data>
<data name="younotadmin"><value>You're not administrator</value></data> <data name="younotadmin"><value>You're not administrator</value></data>
<data name="role_created"><value>role created</value></data> <data name="role_created"><value>role created</value></data>
<data name="Item_added_to_basket"><value>Item added to basket</value></data>
</root> </root>

@ -1,16 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Yavsc.Model.WorkFlow
{
public class BasketImpact
{
public string ProductRef { get; set; }
public int Count { get; set; }
public string Message { get; set; }
}
}

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web.Mvc; using System.Web.Mvc;
using Yavsc.Model.FrontOffice;
namespace Yavsc.Model.WorkFlow namespace Yavsc.Model.WorkFlow
{ {

@ -1,25 +0,0 @@
using System;
using Yavsc.Model.WorkFlow;
using System.Web.Mvc;
namespace Yavsc.Model.WorkFlow
{
public interface IWFModule
{
/// <summary>
/// Gets the state for an order (assuming it was passed to <c>Handle</c>).
/// </summary>
/// <returns>The state.</returns>
/// <param name="c">C.</param>
int GetState (IWFOrder c);
/// <summary>
/// Handle the specified order and form input value collection.
/// </summary>
/// <param name="order">l'ordre</param>
/// <param name="collection">La collection de valeur de champs d'entée de formulaires.</param>
/// <returns>0 when the module accepts to handle the order, non null value otherwize<returns>
int Handle (IWFOrder order,FormCollection collection);
}
}

@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
namespace Yavsc.Model.WorkFlow
{
public interface IWFOrder
{
/// <summary>
/// Gets the unique Identifier for this order, in this application.
/// </summary>
/// <value>The unique I.</value>
long UniqueID {
get;
}
/// <summary>
/// Gets the actual status for this order.
/// </summary>
/// <returns>The status.</returns>
string GetStatus();
}
}

@ -4,6 +4,7 @@ using System.Configuration;
using Yavsc.Model.WorkFlow.Configuration; using Yavsc.Model.WorkFlow.Configuration;
using System.Collections.Specialized; using System.Collections.Specialized;
using SalesCatalog.Model; using SalesCatalog.Model;
using Yavsc.Model.FrontOffice;
namespace Yavsc.Model.WorkFlow namespace Yavsc.Model.WorkFlow
{ {

@ -58,10 +58,7 @@
<Compile Include="FileSystem\FileInfoCollection.cs" /> <Compile Include="FileSystem\FileInfoCollection.cs" />
<Compile Include="WorkFlow\Writting.cs" /> <Compile Include="WorkFlow\Writting.cs" />
<Compile Include="WorkFlow\Estimate.cs" /> <Compile Include="WorkFlow\Estimate.cs" />
<Compile Include="WorkFlow\WFOrder.cs" />
<Compile Include="WorkFlow\IContentProvider.cs" /> <Compile Include="WorkFlow\IContentProvider.cs" />
<Compile Include="WorkFlow\IWFModule.cs" />
<Compile Include="WorkFlow\IWFOrder.cs" />
<Compile Include="WorkFlow\OrderStatusChangedEventArgs.cs" /> <Compile Include="WorkFlow\OrderStatusChangedEventArgs.cs" />
<Compile Include="Blogs\BlogEntry.cs" /> <Compile Include="Blogs\BlogEntry.cs" />
<Compile Include="Blogs\Blog.cs" /> <Compile Include="Blogs\Blog.cs" />
@ -70,8 +67,6 @@
<Compile Include="Blogs\FindBlogEntryFlags.cs" /> <Compile Include="Blogs\FindBlogEntryFlags.cs" />
<Compile Include="WorkFlow\StatusChange.cs" /> <Compile Include="WorkFlow\StatusChange.cs" />
<Compile Include="IModule.cs" /> <Compile Include="IModule.cs" />
<Compile Include="WorkFlow\BasketImpact.cs" />
<Compile Include="WorkFlow\Commande.cs" />
<Compile Include="Blogs\BlogManager.cs" /> <Compile Include="Blogs\BlogManager.cs" />
<Compile Include="Blogs\BlogProvider.cs" /> <Compile Include="Blogs\BlogProvider.cs" />
<Compile Include="WorkFlow\WorkFlowManager.cs" /> <Compile Include="WorkFlow\WorkFlowManager.cs" />
@ -102,6 +97,8 @@
<Compile Include="ViewRenderer.cs" /> <Compile Include="ViewRenderer.cs" />
<Compile Include="Google\GoogleErrorMessage.cs" /> <Compile Include="Google\GoogleErrorMessage.cs" />
<Compile Include="RssFeeds.cs" /> <Compile Include="RssFeeds.cs" />
<Compile Include="FrontOffice\Commande.cs" />
<Compile Include="FrontOffice\Basket.cs" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup> <ItemGroup>
@ -111,6 +108,7 @@
<Folder Include="Admin\" /> <Folder Include="Admin\" />
<Folder Include="FileSystem\" /> <Folder Include="FileSystem\" />
<Folder Include="Google\" /> <Folder Include="Google\" />
<Folder Include="FrontOffice\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\SalesCatalog\SalesCatalog.csproj"> <ProjectReference Include="..\SalesCatalog\SalesCatalog.csproj">

Loading…