From a99232ba2b3782842dd939d45bd1fcafa3e5ef94 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sat, 28 Nov 2015 18:34:52 +0100 Subject: [PATCH] =?UTF-8?q?Impl=C3=A9mente=20un=20formulaire=20simple=20de?= =?UTF-8?q?=20r=C3=A9servation=20d'un=20pr=C3=A9stataire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 ). * 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

ne convenait pas, le remplacer par le tag 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`). --- NpgsqlBlogProvider/ChangeLog | 4 + NpgsqlBlogProvider/NpgsqlBlogProvider.cs | 5 +- NpgsqlContentProvider/ChangeLog | 8 + .../NpgsqlContentProvider.cs | 44 ++- NpgsqlContentProvider/NpgsqlSkillProvider.cs | 161 +++++++---- SalesCatalog/ChangeLog | 12 + .../XmlImplementation/XmlCatalogProvider.cs | 40 ++- web/ApiControllers/BackOfficeController.cs | 3 +- web/ApiControllers/FrontOfficeController.cs | 2 - web/App_Code/Global.asax.cs | 7 + web/App_Code/Sql/Skills.sql | 68 ----- web/App_Code/Sql/activity.sql | 120 +++++++- web/App_Themes/dark/style.css | 10 +- web/App_Themes/images/p8-av4.s.jpg | Bin 37093 -> 20555 bytes web/App_Themes/images/p8-av4.xxs.jpg | Bin 22553 -> 0 bytes web/App_Themes/images/p8-av4.xxs.png | Bin 135540 -> 0 bytes web/ChangeLog | 88 ++++++ web/Controllers/AccountController.cs | 3 +- web/Controllers/BackOfficeController.cs | 2 +- web/Controllers/BlogsController.cs | 2 +- web/Controllers/FrontOfficeController.cs | 189 ++++++++++-- web/Controllers/GoogleController.cs | 45 +-- web/Controllers/HomeController.cs | 7 +- web/Helpers/Google/ApiClient.cs | 78 ----- web/Helpers/Google/CalendarApi.cs | 134 --------- web/Helpers/Google/Entity.cs | 56 ---- web/Helpers/Google/EntityQuery.cs | 46 --- web/Helpers/Google/GoogleHelpers.cs | 137 --------- web/Helpers/Google/MapTracks.cs | 81 ------ web/Helpers/Google/OAuth2.cs | 252 ---------------- web/Helpers/Google/PeopleApi.cs | 68 ----- web/Helpers/SimpleJsonPostMethod.cs | 108 ------- web/Helpers/T.cs | 4 +- web/Helpers/YavscAjaxHelper.cs | 33 ++- web/Models/NoLogin.master | 2 +- web/Scripts/parallax.js | 2 +- web/Scripts/yavsc.rate.js | 9 +- web/Views/FrontOffice/Activities.aspx | 9 +- web/Views/FrontOffice/Activity.ascx | 13 +- web/Views/FrontOffice/Booking.aspx | 44 ++- web/Views/FrontOffice/EavyBooking.aspx | 6 +- web/Views/FrontOffice/EventPub.aspx | 2 +- web/Views/FrontOffice/Skills.aspx | 2 +- web/Views/FrontOffice/UserSkills.aspx | 2 +- web/Views/Home/Index.aspx | 10 +- web/Web.config | 1 + web/Yavsc.csproj | 35 +-- web/lib/MarkdownDeep.dll | Bin 55296 -> 55296 bytes yavscModel/Calendar/BookingQuery.cs | 2 +- yavscModel/ChangeLog | 84 ++++++ .../FrontOffice/Catalog/CatalogProvider.cs | 269 +++++++++++++++++- yavscModel/FrontOffice/PerformerProfile.cs | 39 ++- yavscModel/FrontOffice/SimpleBookingQuery.cs | 23 +- .../Google/Messaging/MessageWithPayLoad.cs | 98 ------- .../Messaging/MessageWithPayloadResponse.cs | 71 ----- yavscModel/Google/Messaging/Notification.cs | 62 ---- yavscModel/LocalizedText.Designer.cs | 100 ++++++- yavscModel/LocalizedText.fr.Designer.cs | 110 +++++-- yavscModel/LocalizedText.fr.resx | 15 +- yavscModel/LocalizedText.resx | 13 + yavscModel/Messaging/Notification.cs | 2 +- yavscModel/RolesAndMembers/Profile.cs | 9 +- yavscModel/Skill/SkillEntity.cs | 7 + yavscModel/Skill/SkillManager.cs | 24 +- yavscModel/Skill/SkillProvider.cs | 2 +- yavscModel/WorkFlow/IContentProvider.cs | 6 + yavscModel/WorkFlow/WorkFlowManager.cs | 21 ++ yavscModel/YavscModel.csproj | 25 +- 68 files changed, 1402 insertions(+), 1534 deletions(-) delete mode 100644 web/App_Code/Sql/Skills.sql delete mode 100644 web/App_Themes/images/p8-av4.xxs.jpg delete mode 100644 web/App_Themes/images/p8-av4.xxs.png delete mode 100644 web/Helpers/Google/ApiClient.cs delete mode 100644 web/Helpers/Google/CalendarApi.cs delete mode 100644 web/Helpers/Google/Entity.cs delete mode 100644 web/Helpers/Google/EntityQuery.cs delete mode 100644 web/Helpers/Google/GoogleHelpers.cs delete mode 100644 web/Helpers/Google/MapTracks.cs delete mode 100644 web/Helpers/Google/OAuth2.cs delete mode 100644 web/Helpers/Google/PeopleApi.cs delete mode 100644 web/Helpers/SimpleJsonPostMethod.cs delete mode 100644 yavscModel/Google/Messaging/MessageWithPayLoad.cs delete mode 100644 yavscModel/Google/Messaging/MessageWithPayloadResponse.cs delete mode 100644 yavscModel/Google/Messaging/Notification.cs diff --git a/NpgsqlBlogProvider/ChangeLog b/NpgsqlBlogProvider/ChangeLog index 8765f36b..e154e49b 100644 --- a/NpgsqlBlogProvider/ChangeLog +++ b/NpgsqlBlogProvider/ChangeLog @@ -1,3 +1,7 @@ +2015-11-28 Paul Schneider + + * NpgsqlBlogProvider.cs: xml doc + 2015-11-26 Paul Schneider * NpgsqlBlogProvider.csproj: nouvelles configurations de diff --git a/NpgsqlBlogProvider/NpgsqlBlogProvider.cs b/NpgsqlBlogProvider/NpgsqlBlogProvider.cs index 53f9fb78..91ae6611 100644 --- a/NpgsqlBlogProvider/NpgsqlBlogProvider.cs +++ b/NpgsqlBlogProvider/NpgsqlBlogProvider.cs @@ -20,7 +20,10 @@ namespace Npgsql.Web.Blog string connectionString; #region implemented abstract members of BlogProvider - + ///

+ /// Updates the post. + /// + /// Be. public override void UpdatePost (BlogEntry be) { // TODO Tags and rate should not be ignored diff --git a/NpgsqlContentProvider/ChangeLog b/NpgsqlContentProvider/ChangeLog index 05dad7d5..bed69b58 100644 --- a/NpgsqlContentProvider/ChangeLog +++ b/NpgsqlContentProvider/ChangeLog @@ -1,3 +1,11 @@ +2015-11-28 Paul Schneider + + * 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. + 2015-11-26 Paul Schneider * NpgsqlContentProvider.csproj: nouvelles configurations de diff --git a/NpgsqlContentProvider/NpgsqlContentProvider.cs b/NpgsqlContentProvider/NpgsqlContentProvider.cs index 793fde44..2ee8fd71 100644 --- a/NpgsqlContentProvider/NpgsqlContentProvider.cs +++ b/NpgsqlContentProvider/NpgsqlContentProvider.cs @@ -21,6 +21,48 @@ namespace Yavsc /// public class NpgsqlContentProvider: ProviderBase, IContentProvider { + /// + /// Finds the performer. + /// + /// The performer. + /// MEA code. + public PerformerProfile[] FindPerformer (string MEACode) + { + var result = new List (); + + using (NpgsqlConnection cnx = CreateConnection ()) { + cnx.Open (); + + using (NpgsqlCommand cmd = cnx.CreateCommand ()) { + cmd.CommandText = @"SELECT d.uniqueid, u.username, u.email, d.rate + FROM profiledata d, profiles p, users u + WHERE u.username = p.username + AND u.applicationname = p.applicationname + AND p.uniqueid = d.uniqueid + AND u.isapproved = TRUE + AND u.islockedout = FALSE + AND d.meacode = :mea + AND u.applicationname = :app + ORDER BY u.username "; + cmd.Parameters.AddWithValue ("mea", NpgsqlTypes.NpgsqlDbType.Varchar, MEACode); + cmd.Parameters.AddWithValue ("app", NpgsqlTypes.NpgsqlDbType.Varchar, applicationName); + + using (var rdr = cmd.ExecuteReader ()) { + if (rdr.HasRows) { + while (rdr.Read ()) { + var profile = new PerformerProfile (); + profile.Id = rdr.GetInt64 (0); + profile.UserName = rdr.GetString (1); + profile.EMail = rdr.GetString (2); + result.Add (profile); + } + } + } + } + } + return result.ToArray (); + } + /// /// Gets the activity. /// @@ -32,7 +74,7 @@ namespace Yavsc using (NpgsqlConnection cnx = CreateConnection ()) { cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand ()) { - cmd.CommandText = @"select meacode, title, cmnt, photo + cmd.CommandText = @"select distinct meacode, title, cmnt, photo from activity where meacode = :code and applicationname = :app"; cmd.Parameters.AddWithValue ("code", MEACode); cmd.Parameters.AddWithValue ("app", applicationName); diff --git a/NpgsqlContentProvider/NpgsqlSkillProvider.cs b/NpgsqlContentProvider/NpgsqlSkillProvider.cs index 8bc236ae..4447d582 100644 --- a/NpgsqlContentProvider/NpgsqlSkillProvider.cs +++ b/NpgsqlContentProvider/NpgsqlSkillProvider.cs @@ -41,6 +41,7 @@ namespace WorkFlowProvider { } + string connectionString = null; string applicationName = null; @@ -59,6 +60,7 @@ namespace WorkFlowProvider } #region implemented abstract members of SkillProvider + /// /// Gets the user skills. /// @@ -66,30 +68,31 @@ namespace WorkFlowProvider /// Username. public override PerformerProfile GetUserSkills (string username) { - var skills = new List (); + var skills = new List (); var profile = new PerformerProfile (username); - using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) { + using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = " select u._id, u.skillid, s.name, " + - " u.comment, u.rate from userskills u, " + - " skill s " + - " where u.skillid = s._id and " + - " u.username = :uname " + - " and applicationname = :app " + - " order by u.rate desc"; + " u.comment, u.rate from userskills u, " + + " skill s " + + " where u.skillid = s._id and " + + " u.username = :uname " + + " and applicationname = :app " + + " order by u.rate desc"; cmd.Parameters.AddWithValue ("uname", NpgsqlTypes.NpgsqlDbType.Varchar, username); cmd.Parameters.AddWithValue ("app", NpgsqlTypes.NpgsqlDbType.Varchar, applicationName); cmd.Prepare (); using (var rdr = cmd.ExecuteReader ()) { - if (rdr.HasRows) while (rdr.Read ()) { + if (rdr.HasRows) + while (rdr.Read ()) { skills.Add (new UserSkill () { Id = rdr.GetInt64 (0), SkillId = rdr.GetInt64 (1), SkillName = rdr.GetString (2), Comment = rdr.GetString (3), - Rate = rdr.GetInt32(4) + Rate = rdr.GetInt32 (4) }); } profile.Skills = skills.ToArray (); @@ -97,10 +100,17 @@ namespace WorkFlowProvider } using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = - "select uniqueid from profiles where username = :user and applicationname = :app"; + "select p.uniqueid, d.rate from profiles p, profiledata d where " + + " username = :user and applicationname = :app " + + " and p.uniqueid = d.uniqueid "; cmd.Parameters.AddWithValue ("user", NpgsqlTypes.NpgsqlDbType.Varchar, username); cmd.Parameters.AddWithValue ("app", NpgsqlTypes.NpgsqlDbType.Varchar, applicationName); - profile.Id = (long) cmd.ExecuteScalar (); + + using (var rdr = cmd.ExecuteReader ()) { + rdr.Read (); + profile.Id = rdr.GetInt64 (0); + profile.Rate = rdr.GetInt32 (1); + } } cnx.Close (); } @@ -114,14 +124,18 @@ namespace WorkFlowProvider public override long Declare (SkillEntity skill) { long res = 0; - using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) { + using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { cnx.Open (); if (skill.Id == 0) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) { - cmd.CommandText = "insert into skill (name,rate) values (:name,:rate) returning _id"; + cmd.CommandText = "insert into skill (name,meacode,rate,applicationname) " + + " values (:name,:mea,:rate,:app) " + + " returning _id "; cmd.Parameters.AddWithValue ("name", NpgsqlTypes.NpgsqlDbType.Varchar, skill.Name); + cmd.Parameters.AddWithValue ("mea", NpgsqlTypes.NpgsqlDbType.Varchar, skill.MEACode); cmd.Parameters.AddWithValue ("rate", NpgsqlTypes.NpgsqlDbType.Integer, skill.Rate); + cmd.Parameters.AddWithValue ("app", NpgsqlTypes.NpgsqlDbType.Varchar, applicationName); res = (long)cmd.ExecuteScalar (); } } else { @@ -145,8 +159,8 @@ namespace WorkFlowProvider /// userskill. public override long Declare (UserSkillDeclaration userskill) { - long res=0; - using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) { + long res = 0; + using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { cnx.Open (); if (userskill.Id == 0) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) { @@ -198,23 +212,23 @@ namespace WorkFlowProvider // and a client rating that goes into the // `statisfaction` table. long usid = 0; - using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) { + using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand ()) { if (userSkill.Id == 0) { cmd.CommandText = "insert into userskills " + - " ( skillid, rate, username, applicationname ) " + - " values ( :sid, :rate, :uname, :app ) " + - " returning _id "; + " ( skillid, rate, username, applicationname ) " + + " values ( :sid, :rate, :uname, :app ) " + + " returning _id "; cmd.Parameters.AddWithValue ("sid", NpgsqlDbType.Bigint, userSkill.Id); cmd.Parameters.AddWithValue ("rate", NpgsqlDbType.Integer, userSkill.Rate); cmd.Parameters.AddWithValue ("uname", NpgsqlDbType.Varchar, userSkill.Performer); cmd.Parameters.AddWithValue ("app", NpgsqlDbType.Varchar, applicationName); - usid = (long) cmd.ExecuteScalar (); + usid = (long)cmd.ExecuteScalar (); } else { cmd.CommandText = "update userskills " + - " set rate = :rate " + - " where _id = :usid "; + " set rate = :rate " + + " where _id = :usid "; cmd.Parameters.AddWithValue ("rate", NpgsqlDbType.Integer, userSkill.Rate); cmd.Parameters.AddWithValue ("usid", NpgsqlDbType.Bigint, userSkill.Id); cmd.ExecuteNonQuery (); @@ -243,7 +257,7 @@ namespace WorkFlowProvider // it's concerning a rating on a need of the Author // if not, it's a need of the site - using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) { + using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = "update skill set rate = :rate where _id = :sid"; @@ -254,28 +268,43 @@ namespace WorkFlowProvider cnx.Close (); } } + /// - /// Finds the skill identifier. + /// Finds the skills. /// /// The skill identifier. /// Pattern. - public override SkillEntity[] FindSkill (string pattern) + /// MEA Code. + public override SkillEntity[] FindSkill (string pattern, string MEACode) { List skills = new List (); - using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) { + using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand ()) { - cmd.CommandText = "select _id, name, rate from skill where name like :name order by rate desc"; + + cmd.CommandText = "select _id, name, rate, meacode " + + " from skill " + + " where name like :name "; + if (MEACode != null) + cmd.CommandText += + " and meacode = :mea "; + cmd.CommandText += " and applicationname = :app " + + " order by rate desc"; cmd.Parameters.AddWithValue ("name", NpgsqlTypes.NpgsqlDbType.Varchar, pattern); + if (MEACode != null) + cmd.Parameters.AddWithValue ("mea", NpgsqlTypes.NpgsqlDbType.Varchar, MEACode); + cmd.Parameters.AddWithValue ("app", NpgsqlTypes.NpgsqlDbType.Varchar, applicationName); cmd.Prepare (); using (var rdr = cmd.ExecuteReader ()) { - if (rdr.HasRows) while (rdr.Read ()) { - skills.Add (new SkillEntity () { - Id = (long)rdr.GetInt64 (0), - Name = (string)rdr.GetString (1), - Rate = (int) rdr.GetInt32(2) - }); - } + if (rdr.HasRows) + while (rdr.Read ()) { + skills.Add (new SkillEntity () { + Id = (long)rdr.GetInt64 (0), + Name = (string)rdr.GetString (1), + Rate = (int)rdr.GetInt32 (2), + MEACode = (string)rdr.GetString (3), + }); + } } } cnx.Close (); @@ -292,25 +321,57 @@ namespace WorkFlowProvider { var res = new List (); - using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) { + using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand ()) { - cmd.CommandText = " select username from userskills " + - " where skillid = :sid " + - " order by rate desc "; + cmd.CommandText = " select u.username " + + " from userskills s, profiledata p, profile q, users u " + + " where s.username = u.username " + + " and s.applicationname = u.applicationanme " + + " and s.skillid = :sid " + + " and u.username = q.username " + + " and u.applicationname = q.applicationanme " + + " and p.uniqueid = q.uniqueid " + + " and u.applicationanme = :app " + + " and u.islockedout = FALSE " + + " and u.isapproved = TRUE " + + " order by s.rate desc "; + + cmd.Parameters.AddWithValue ("sid", NpgsqlDbType.Bigint, 0); cmd.Prepare (); - foreach ( long sid in skillIds ) - { + foreach (long sid in skillIds) { cmd.Parameters ["sid"].Value = sid; using (var rdr = cmd.ExecuteReader ()) { string uname = rdr.GetString (0); - if (!res.Contains(uname)) + if (!res.Contains (uname)) res.Add (uname); } } + // TODO implement a configuration parameter + if (res.Count < 10) { + cmd.CommandText = " select u.username " + + " from skill s, profiledata p , profile q, users u " + + " where u.username = q.username " + + " and u.applicationname = q.applicationanme " + + " and p.uniqueid = q.uniqueid " + + " and p.meacode = s.meacode " + + " and s._id = :sid " + + " and u.applicationanme = :app " + + " and u.islockedout = FALSE " + + " and u.isapproved = TRUE" + + " order by s.rate desc " ; + foreach (long sid in skillIds) { + cmd.Parameters ["sid"].Value = sid; + using (var rdr = cmd.ExecuteReader ()) { + string uname = rdr.GetString (0); + if (!res.Contains (uname)) + res.Add (uname); + } + } + } } cnx.Close (); } @@ -323,12 +384,12 @@ namespace WorkFlowProvider /// Skill identifier. public override void DeleteSkill (long skillId) { - using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) { + using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = " delete from skill " + - " where _id = :sid "; - cmd.Parameters.AddWithValue ("sid", NpgsqlTypes.NpgsqlDbType.Bigint,skillId); + " where _id = :sid "; + cmd.Parameters.AddWithValue ("sid", NpgsqlTypes.NpgsqlDbType.Bigint, skillId); cmd.ExecuteNonQuery (); } cnx.Close (); @@ -339,18 +400,20 @@ namespace WorkFlowProvider /// Deletes the user skill. /// /// User skill identifier. - public override void DeleteUserSkill(long userSkillId) { - using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) { + public override void DeleteUserSkill (long userSkillId) + { + using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = " delete from userskills " + - " where _id = :usid "; - cmd.Parameters.AddWithValue ("usid", NpgsqlTypes.NpgsqlDbType.Bigint,userSkillId); + " where _id = :usid "; + cmd.Parameters.AddWithValue ("usid", NpgsqlTypes.NpgsqlDbType.Bigint, userSkillId); cmd.ExecuteNonQuery (); } cnx.Close (); } } + #endregion } } diff --git a/SalesCatalog/ChangeLog b/SalesCatalog/ChangeLog index 30937a6c..2a88d965 100644 --- a/SalesCatalog/ChangeLog +++ b/SalesCatalog/ChangeLog @@ -1,3 +1,15 @@ +2015-11-28 Paul Schneider + + * 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 + ). + + 2015-11-26 Paul Schneider * SalesCatalog.csproj: nouvelles configurations de déploiement diff --git a/SalesCatalog/XmlImplementation/XmlCatalogProvider.cs b/SalesCatalog/XmlImplementation/XmlCatalogProvider.cs index ea6eb00b..19bd35f5 100644 --- a/SalesCatalog/XmlImplementation/XmlCatalogProvider.cs +++ b/SalesCatalog/XmlImplementation/XmlCatalogProvider.cs @@ -15,8 +15,46 @@ namespace SalesCatalog.XmlImplementation /// public class XmlCatalogProvider: CatalogProvider { + #region implemented abstract members of CatalogProvider - #region implemented abstract members of SalesCatalog.CatalogProvider + /// + /// Gets the activity. + /// + /// The activity. + /// MAE code. + public override Yavsc.Model.FrontOffice.Activity GetActivity (string MEACode) + { + throw new NotImplementedException (); + } + /// + /// Registers the activity. + /// + /// Activity name. + /// Meacode. + /// Comment. + public override void RegisterActivity (string activityName, string meacode, string comment) + { + throw new NotImplementedException (); + } + /// + /// Finds the activity. + /// + /// The activity. + /// Pattern. + /// If set to true exerted. + public override Yavsc.Model.FrontOffice.Activity[] FindActivity (string pattern, bool exerted) + { + throw new NotImplementedException (); + } + /// + /// Finds the performer. + /// + /// The performer. + /// MEA code. + public override Yavsc.Model.FrontOffice.PerformerProfile[] FindPerformer (string MEACode) + { + throw new NotImplementedException (); + } /// /// Gets the catalog, loading it from /// the file system at a first call, diff --git a/web/ApiControllers/BackOfficeController.cs b/web/ApiControllers/BackOfficeController.cs index 37fcf075..a535c1b3 100644 --- a/web/ApiControllers/BackOfficeController.cs +++ b/web/ApiControllers/BackOfficeController.cs @@ -25,8 +25,9 @@ using Yavsc.Helpers; using Yavsc.Model.Circles; using System.Collections.Generic; using System.Web.Profile; -using Yavsc.Helpers.Google; using System.Web.Security; +using Yavsc.Model.Google.Api; +using Yavsc.Model.Google.Api.Messaging; namespace Yavsc.ApiControllers { diff --git a/web/ApiControllers/FrontOfficeController.cs b/web/ApiControllers/FrontOfficeController.cs index 7560c639..082cd526 100644 --- a/web/ApiControllers/FrontOfficeController.cs +++ b/web/ApiControllers/FrontOfficeController.cs @@ -205,8 +205,6 @@ namespace Yavsc.ApiControllers public void RateSkill (SkillRating rate) { throw new NotImplementedException (); } - - } } diff --git a/web/App_Code/Global.asax.cs b/web/App_Code/Global.asax.cs index b159a86c..1687c6ee 100644 --- a/web/App_Code/Global.asax.cs +++ b/web/App_Code/Global.asax.cs @@ -40,6 +40,13 @@ namespace Yavsc routes.IgnoreRoute ("favicon.ico"); // favorite icon routes.IgnoreRoute ("favicon.png"); // favorite icon routes.IgnoreRoute ("robots.txt"); // for search engine robots + + routes.MapRoute ( + "FrontOffice", + "do/{action}/{MEACode}/{Id}", + new { controller = "FrontOffice", action = "Index", MEACode = UrlParameter.Optional, Id = UrlParameter.Optional } + ); + routes.MapRoute ( "Titles", "title/{title}", diff --git a/web/App_Code/Sql/Skills.sql b/web/App_Code/Sql/Skills.sql deleted file mode 100644 index 17a152a7..00000000 --- a/web/App_Code/Sql/Skills.sql +++ /dev/null @@ -1,68 +0,0 @@ - --- Table: skill - --- DROP TABLE skill; - -CREATE TABLE skill -( - _id bigserial NOT NULL, - name character varying(2024) NOT NULL, - rate integer NOT NULL DEFAULT 50, - CONSTRAINT skill_pkey PRIMARY KEY (_id), - CONSTRAINT skill_name_key UNIQUE (name) -) -WITH ( - OIDS=FALSE -); - - --- Table: userskills - --- DROP TABLE userskills; - -CREATE TABLE userskills -( - applicationname character varying(512) NOT NULL, - username character varying(512) NOT NULL, - comment character varying, - skillid bigint NOT NULL, -- Skill identifier - rate integer NOT NULL, - _id bigserial NOT NULL, -- The id ... - CONSTRAINT userskills_pkey PRIMARY KEY (applicationname, username, skillid), - CONSTRAINT userskills_applicationname_fkey FOREIGN KEY (applicationname, username) - REFERENCES users (applicationname, username) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE CASCADE, - CONSTRAINT userskills_skillid_fkey FOREIGN KEY (skillid) - REFERENCES skill (_id) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE CASCADE, - CONSTRAINT userskills__id_key UNIQUE (_id) -) -WITH ( - OIDS=FALSE -); -COMMENT ON COLUMN userskills.skillid IS 'Skill identifier'; -COMMENT ON COLUMN userskills._id IS 'The id ...'; - --- Table: satisfaction - --- DROP TABLE satisfaction; - -CREATE TABLE satisfaction -( - _id bigserial NOT NULL, - userskillid bigint, -- the user's skill reference - rate integer, -- The satisfaction rating associated by a client to an user's skill - comnt character varying(8192), -- The satisfaction textual comment associated by a client to an user's skill, it could be formatted ala Markdown - CONSTRAINT satisfaction_pkey PRIMARY KEY (_id), - CONSTRAINT satisfaction_userskillid_fkey FOREIGN KEY (userskillid) - REFERENCES userskills (_id) MATCH SIMPLE - ON UPDATE CASCADE ON DELETE CASCADE -) -WITH ( - OIDS=FALSE -); -COMMENT ON COLUMN satisfaction.userskillid IS 'the user''s skill reference'; -COMMENT ON COLUMN satisfaction.rate IS 'The satisfaction rating associated by a client to an user''s skill'; -COMMENT ON COLUMN satisfaction.comnt IS 'The satisfaction textual comment associated by a client to an user''s skill, it could be formatted ala Markdown'; - - diff --git a/web/App_Code/Sql/activity.sql b/web/App_Code/Sql/activity.sql index c07008eb..58db0be4 100644 --- a/web/App_Code/Sql/activity.sql +++ b/web/App_Code/Sql/activity.sql @@ -1,6 +1,9 @@ --- Table: activity +DROP TABLE satisfaction; +DROP TABLE userskills; +DROP TABLE skill; +DROP TABLE activity; + --- DROP TABLE activity; CREATE TABLE activity ( @@ -8,7 +11,8 @@ CREATE TABLE activity applicationname character varying(255) NOT NULL, cmnt character varying, -- a long description for this activity meacode character varying(512) NOT NULL, -- Identifiant de l'activité, à terme, il faudrait ajouter un champ à cette id: le code pays.... - photo character varying(512) -- a photo url, as a front image for this activity + photo character varying(512) NOT NULL DEFAULT 'none'::character varying, -- a photo url, as a front image for this activity + CONSTRAINT activity_pkey PRIMARY KEY (meacode, applicationname) ) WITH ( OIDS=FALSE @@ -27,3 +31,113 @@ Exemple: ''71.12B'' => "Ingénierie, études techniques" '; COMMENT ON COLUMN activity.photo IS 'a photo url, as a front image for this activity'; + +INSERT INTO activity( + title, applicationname, cmnt, meacode, photo) + VALUES ( +'Édition de logiciels applicatifs', +'/', +'Vente d''applications logicielles', +'6829C', +'http://www.janua.fr/wp-content/uploads/2014/02/born2code-xavier-niel-developpeurs-formation.jpg' +); + +INSERT INTO activity( + title, applicationname, cmnt, meacode, photo) + VALUES ( +'Artiste', +'/', +'Anime votre mariage, un anniversaire ou autre événnement.', +'Artiste', +'http://www.dancefair.tv/wp-content/uploads/2015/05/How-to-secure-DJ-gig.jpg' +); + + +-- Table: skill + +-- DROP TABLE skill; + +CREATE TABLE skill +( + _id bigserial NOT NULL, + name character varying(2024) NOT NULL, + rate integer NOT NULL DEFAULT 50, + meacode character varying(256) NOT NULL, + applicationname character varying(255), + CONSTRAINT skill_pkey PRIMARY KEY (_id), + CONSTRAINT skill_app FOREIGN KEY (applicationname, meacode) + REFERENCES activity (applicationname, meacode) MATCH SIMPLE + ON UPDATE CASCADE ON DELETE CASCADE, + CONSTRAINT skill_name_meacode_applicationname_key UNIQUE (name, meacode, applicationname) +) +WITH ( + OIDS=FALSE +); + +-- Index: fki_skill_app + +-- DROP INDEX fki_skill_app; + +CREATE INDEX fki_skill_app + ON skill + USING btree + (applicationname COLLATE pg_catalog."default", meacode COLLATE pg_catalog."default"); + + + +-- Table: userskills + +-- DROP TABLE userskills; + +CREATE TABLE userskills +( + applicationname character varying(512) NOT NULL, + username character varying(512) NOT NULL, + comment character varying, + skillid bigint NOT NULL, -- Skill identifier + rate integer NOT NULL, + _id bigserial NOT NULL, -- The id ... + CONSTRAINT userskills_pkey PRIMARY KEY (applicationname, username, skillid), + CONSTRAINT userskills_applicationname_fkey FOREIGN KEY (applicationname, username) + REFERENCES users (applicationname, username) MATCH SIMPLE + ON UPDATE CASCADE ON DELETE CASCADE, + CONSTRAINT userskills_skillid_fkey FOREIGN KEY (skillid) + REFERENCES skill (_id) MATCH SIMPLE + ON UPDATE CASCADE ON DELETE CASCADE, + CONSTRAINT userskills__id_key UNIQUE (_id) +) +WITH ( + OIDS=FALSE +); +COMMENT ON COLUMN userskills.skillid IS 'Skill identifier'; +COMMENT ON COLUMN userskills._id IS 'The id ...'; + +-- Table: satisfaction + +-- DROP TABLE satisfaction; + +CREATE TABLE satisfaction +( + _id bigserial NOT NULL, + userskillid bigint, -- the user's skill reference + rate integer, -- The satisfaction rating associated by a client to an user's skill + comnt character varying(8192), -- The satisfaction textual comment associated by a client to an user's skill, it could be formatted ala Markdown + CONSTRAINT satisfaction_pkey PRIMARY KEY (_id), + CONSTRAINT satisfaction_userskillid_fkey FOREIGN KEY (userskillid) + REFERENCES userskills (_id) MATCH SIMPLE + ON UPDATE CASCADE ON DELETE CASCADE +) +WITH ( + OIDS=FALSE +); + +COMMENT ON COLUMN satisfaction.userskillid IS 'the user''s skill reference'; +COMMENT ON COLUMN satisfaction.rate IS 'The satisfaction rating associated by a client to an user''s skill'; +COMMENT ON COLUMN satisfaction.comnt IS 'The satisfaction textual comment associated by a client to an user''s skill, it could be formatted ala Markdown'; + +ALTER TABLE satisfaction OWNER TO lua; +ALTER TABLE userskills OWNER TO lua; +ALTER TABLE skill OWNER TO lua; +ALTER TABLE activity OWNER TO lua; + + diff --git a/web/App_Themes/dark/style.css b/web/App_Themes/dark/style.css index 32f2bfff..3a45b06a 100644 --- a/web/App_Themes/dark/style.css +++ b/web/App_Themes/dark/style.css @@ -26,7 +26,7 @@ input, textarea, checkbox { } header { - background: url("/App_Themes/images/star-939235_1280.jpg") -3em -3em no-repeat fixed; + background: url("http://s448140597.onlinehome.us/wp-content/uploads/2014/12/project-management1.jpg") -20em -20em repeat fixed; } header h1, header a { @@ -38,7 +38,7 @@ nav { } main { - background: url("/App_Themes/images/p8-av4.png") 50% 20em no-repeat fixed ; + background: url("/App_Themes/images/p8-av4.l.jpg") 50% 50% no-repeat fixed ; } footer { @@ -138,7 +138,6 @@ input:hover, textarea:hover { header { padding-top:1em; padding-bottom:1em; - background: url("/App_Themes/images/star-939235_1280.s.jpg") 0 0 no-repeat fixed; } #avatar { @@ -155,7 +154,7 @@ header h1, header a , .actionlink, .menuitem, a { padding:.5em;} main { margin: 1em; padding: 1em; - background: url("/App_Themes/images/p8-av4.s.jpg") 50% 20em no-repeat fixed ; + background: url("/App_Themes/images/p8-av4.jpg") 50% 50% no-repeat fixed ; } footer { background: url("/App_Themes/images/helix-nebula-1400x1400.s.jpg") 50% 90% repeat fixed ; @@ -194,7 +193,6 @@ header h1, header a , .actionlink, .menuitem, a { padding:.5em;} header { padding-top:.5em; padding-bottom:.5em; - background: url("/App_Themes/images/star-939235_1280.xxs.jpg") 0 0 no-repeat fixed; } header h1, header a { padding:.2em;} @@ -207,7 +205,7 @@ header h1, header a { padding:.2em;} main { margin: .5em; padding: .5em; - background: url("/App_Themes/images/p8-av4.xxs.jpg") 50% 20em repeat fixed ; + background: url("/App_Themes/images/p8-av4.s.jpg") 50% 50% no-repeat fixed ; } footer { background: url("/App_Themes/images/helix-nebula-1400x1400.xxs.jpg") 50% 10% repeat fixed ; diff --git a/web/App_Themes/images/p8-av4.s.jpg b/web/App_Themes/images/p8-av4.s.jpg index dadca053af3eedacb78b9129a13cecd16d397fa9..ac0463057083d441be679d93f6558c44e7b5e2bf 100644 GIT binary patch literal 20555 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 A(EtDd literal 37093 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 P-RI)dpZ@^G{{a8l9*oG% diff --git a/web/App_Themes/images/p8-av4.xxs.png b/web/App_Themes/images/p8-av4.xxs.png deleted file mode 100644 index 629f7bcdd552dbae3a37e6ea33bb69cc5486f168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135540 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

384_%0D+Rf}z)0~QqNe8+(m6sU7wUYpc9+{Hi z8{(4>=T;)yDlYUbi8VAV1Wxc9Gcmxl$c3_4RiqOEl8Wr>p7xq*P-{&Hh*v5y^|fzwS%Xibbx-1gu>joL_W$nzj=sC9G zSZq$k0owLdL^^hq_4P6nBb~P#<_`q|DyplB(ulHb+p7OBnEk%hR5Jbc?~O|G_e`4b zFKT|Tsc1vq&{dF@9F2D6Q?0!hzS2|o=XA%v*RyObHTl(BUFahZ!tY0xH4Lq21xD=^ zjg;Ny(y@P#^K5Lmv!|)5<0xP-du~P#ql~#5hdljP=4(g4Q~1f_X(dHJx)v##(9jj7 zE<3U+v7>6mbCFWeAG~rXcI*pFUgreP?j(+oAQzD~x#-u)_Cx1=I6 zYp8=&=Vnr-#h!U_rm{F|PD`TZp{Ab5A|l`035tRT@~-WqUC^$TlvH5^2>G?IGiuS@ zQ2D$8SZ|IAx|66&v@vbfV=c>y8e(lrR>bMVO4Fg8TfOfjoU0p-o$UYKo)5kM1n0y2 z@0?llmIF+BL*bpshJ29TL^_!>?@~`}I+aNvHlt_Rp=)^s&m8Jo)YZ4*+B0YB;d%YC z)<=o}Be{0~VeV?xZ73-#iWEIbN2qEl%Bn8#+!wCK5LKg3o?uEb&}!Dq`$kbYc-~2M z-v?eo&ca1p)k#fP-*XSt9gjtC2S#khQD&#c{eN4>tWK!9Y&meIX4@mNV|D9t$}UZb za4u&>-`=fj*tf6DopHAnOjk)mnqr6ltwB$^{SrxN)9V89^+OS>Zv)Gw-n?xZ)7W5X&ia; zlfyUWHm?lZPl2|-`)6v_6cyzaeW&YlC;Bczt?<%(Mp$XYgvo@mbJT6BYI&iZe%7f_ zu}m~grrB51wez$Ot~L z=Qva;d(O>`RV>$hu52V{UJmcH-fw+n2?dL$ z-tojPJPS>g%aG6~x01jsab_Q{JaylaLZ(S`yB$%uRm9jgpYH2~Y2TVLfyn1-3MM=Z zTDOb-P1XPMtFhldHK}CaaoE>Zh_e2B6}lvY`5PI^Vd$n8-WkI+?R)IG6D=hto_OIf zIDihS>CdiM7s=Z+K*hFwf6`4A^hSt_qcnakXWqH1c8kIzr>tWloYrcFg7t3^;Ct7V zNyVQzV2+fP-h&3*yDQ*rqb;U7;oQ{@R*ZPK`s@U;3 zZJO+-an8qHB@Z1+tXTA;rjkV?d8k)3WfV^zX?zU{8usE#Z;HwYSTulB1eQAtnSxpkAK0>}8KeHTUm`~C1N?m5oT&i2*AGboyN zYQ}+^X{($KEj>du%W`TNMV7xA!1u08Qz}2Re!`qBB^}pZ=o&cBu>8I5H}jeFFPD+9 zj7%#!H=i~%2F@&GXz^o@d}iH5Aoyg{v9`QOWX8FiH8sz5^{iw(@TmneDUxvkFWmQ; zM`@CgQ&vm6hW}vFz;9gNf)wo8R8Hv!J}jc{_L@lNLVikoO*sXpw?psrJTS`L7{Db( z2PRGVCj8x!88w5HJq2U#G(L*p9{s4IE}MzQu0xmB}qXsQvtS9F=fusg_H1SBABjWcTf;!x$9f^HOnBcg%%HO4F(D>@5 zpZ3GGgUyd#bMOyX2*mH7g!H#6_AIF7Ogcu{j9qm-k;J)s z>352?Olw)rJcSvA4we}vEw6rd=(LY z#7!4on6+p%6(qkY4xgrc#GBfdtlLuXk7=W(=Y4 zL;vCXuy;AjTK?TPD%Mkzmm6z@Gy`$g_zCHzyPv!^meqD`7LofdT}vEhxcZ*m>gk@n zVQ1Svv+;{8TC?p}{>iV${$){7te0^jH$04qg1VfZAGJkpN%b2&mQ$0y42k}3V74Rb& zz!BYgA@yK&BZ<9Hj8P2ZLa#pLO+Tt+JshNxEuXue{yA0^oAyr@U8jn0`-&MFCob$+ z2))x+uU^p#4>#5|XUl?;I5VuD`2X3v@8(F7D_iitNC_ko39VI$?rO5hQ5?Rv&)$By z{cgKvZ|&{OaE4^-?o!YiNTe1K`$syWB2lWzDYW3Um$g{~ND<-Te*KDb *@A5_gb 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 diff --git a/web/ChangeLog b/web/ChangeLog index 2a7ab94b..efacd404 100644 --- a/web/ChangeLog +++ b/web/ChangeLog @@ -1,3 +1,91 @@ +2015-11-28 Paul Schneider + + * p8-av4.xxs.jpg: + * p8-av4.xxs.png: inutile + + * NoLogin.master: + * Entity.cs: + * OAuth2.cs: + * ApiClient.cs: + * PeopleApi.cs: + * MapTracks.cs: + * Skills.aspx: + * CalendarApi.cs: + * EntityQuery.cs: + * GoogleHelpers.cs: + * EventPub.aspx: + * GoogleController.cs: + * SimpleJsonPostMethod.cs: + * UserSkills.aspx: + * BackOfficeController.cs: + * BackOfficeController.cs: refabrication + + * 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

ne convenait pas, le remplacer + par le tag non plus. + Maintenant ça devrait être correct, c'est un div, mais que en + cas de tag englobant non défini. + + * Skills.sql: vient de passer dans activity.Sql + + * T.cs: la traduction est faite plus simple à appeler (sans + cast vers `string`). + 2015-11-26 Paul Schneider * Yavsc.csproj: nouvelles configurations de diff --git a/web/Controllers/AccountController.cs b/web/Controllers/AccountController.cs index 69bd7815..20beca03 100644 --- a/web/Controllers/AccountController.cs +++ b/web/Controllers/AccountController.cs @@ -262,7 +262,7 @@ namespace Yavsc.Controllers private void SetMEACodeViewData(Profile model) { var activities = WorkFlowManager.FindActivity ("%", false); var items = new List (); - items.Add (new SelectListItem () { Selected = model.MEACode == null, Text = LocalizedText.DoNotPublishMyActivity, Value=null }); + items.Add (new SelectListItem () { Selected = model.MEACode == null, Text = LocalizedText.DoNotPublishMyActivity, Value="none" }); foreach (var a in activities) { items.Add(new SelectListItem() { Selected = model.MEACode == a.Id, Text = string.Format("{1} : {0}",a.Title,a.Id), @@ -271,7 +271,6 @@ namespace Yavsc.Controllers ViewData ["MEACode"] = items; } - ///

/// Profile the specified id, model and AvatarFile. /// diff --git a/web/Controllers/BackOfficeController.cs b/web/Controllers/BackOfficeController.cs index e390c4f7..e028d3a9 100644 --- a/web/Controllers/BackOfficeController.cs +++ b/web/Controllers/BackOfficeController.cs @@ -5,9 +5,9 @@ using System.Web; using System.Web.Mvc; using Yavsc.Admin; using Yavsc.Model.Calendar; -using Yavsc.Helpers.Google; using Yavsc.Model.Circles; using System.Web.Security; +using Yavsc.Model.Google.Api; namespace Yavsc.Controllers diff --git a/web/Controllers/BlogsController.cs b/web/Controllers/BlogsController.cs index 8d52a1c0..c13b1f47 100644 --- a/web/Controllers/BlogsController.cs +++ b/web/Controllers/BlogsController.cs @@ -302,7 +302,7 @@ namespace Yavsc.Controllers Membership.GetUser ().UserName).Select (x => new SelectListItem { Value = x.Id.ToString(), Text = x.Title, - Selected = model.AllowedCircles.Contains (x.Id) + Selected = (model.AllowedCircles==null)? false : model.AllowedCircles.Contains (x.Id) }); return View ("Edit", model); } diff --git a/web/Controllers/FrontOfficeController.cs b/web/Controllers/FrontOfficeController.cs index bc8f0320..9c1e9f82 100644 --- a/web/Controllers/FrontOfficeController.cs +++ b/web/Controllers/FrontOfficeController.cs @@ -17,6 +17,10 @@ using System.Configuration; using Yavsc.Helpers; using Yavsc.Model.FrontOffice.Catalog; using Yavsc.Model.Skill; +using System.Web.Profile; +using Yavsc.Model.Google.Api; +using System.Net; +using System.Linq; namespace Yavsc.Controllers { @@ -33,6 +37,7 @@ namespace Yavsc.Controllers { return View (); } + /// /// Pub the Event /// @@ -42,6 +47,7 @@ namespace Yavsc.Controllers { return View (model); } + /// /// Estimates released to this client /// @@ -53,7 +59,7 @@ namespace Yavsc.Controllers throw new ConfigurationErrorsException ("no redirection to any login page"); string username = u.UserName; - Estimate [] estims = WorkFlowManager.GetUserEstimates (username); + Estimate[] estims = WorkFlowManager.GetUserEstimates (username); ViewData ["UserName"] = username; ViewData ["ResponsibleCount"] = Array.FindAll ( @@ -61,8 +67,8 @@ namespace Yavsc.Controllers x => x.Responsible == username).Length; ViewData ["ClientCount"] = Array.FindAll ( - estims, - x => x.Client == username).Length; + estims, + x => x.Client == username).Length; return View (estims); } @@ -76,7 +82,7 @@ namespace Yavsc.Controllers Estimate f = WorkFlowManager.GetEstimate (id); if (f == null) { ModelState.AddModelError ("Id", "Wrong Id"); - return View (new Estimate () { Id=id } ); + return View (new Estimate () { Id = id }); } return View (f); } @@ -89,9 +95,9 @@ namespace Yavsc.Controllers [Authorize] public ActionResult Estimate (Estimate model, string submit) { - string username = Membership.GetUser().UserName; + string username = Membership.GetUser ().UserName; // Obsolete, set in master page - ViewData ["WebApiBase"] = Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative); + ViewData ["WebApiBase"] = Url.Content (Yavsc.WebApiConfig.UrlPrefixRelative); ViewData ["WABASEWF"] = ViewData ["WebApiBase"] + "/WorkFlow"; if (submit == null) { if (model.Id > 0) { @@ -107,7 +113,7 @@ namespace Yavsc.Controllers && !Roles.IsUserInRole ("FrontOffice")) throw new UnauthorizedAccessException ("You're not allowed to view this estimate"); } else if (model.Id == 0) { - if (string.IsNullOrWhiteSpace(model.Responsible)) + if (string.IsNullOrWhiteSpace (model.Responsible)) model.Responsible = username; } } else { @@ -116,7 +122,7 @@ namespace Yavsc.Controllers if (string.IsNullOrWhiteSpace (model.Responsible)) model.Responsible = username; if (username != model.Responsible - && !Roles.IsUserInRole ("FrontOffice")) + && !Roles.IsUserInRole ("FrontOffice")) throw new UnauthorizedAccessException ("You're not allowed to modify this estimate"); if (ModelState.IsValid) { @@ -172,7 +178,7 @@ namespace Yavsc.Controllers throw new Exception ("No catalog"); var brand = cat.GetBrand (brandid); if (brand == null) - throw new Exception ("Not a brand id: "+brandid); + throw new Exception ("Not a brand id: " + brandid); var pcat = brand.GetProductCategory (pcid); if (pcat == null) throw new Exception ("Not a product category id in this brand: " + pcid); @@ -194,7 +200,7 @@ namespace Yavsc.Controllers ViewData ["ProdRef"] = pref; Catalog cat = CatalogManager.GetCatalog (); if (cat == null) { - YavscHelpers.Notify(ViewData, "Catalog introuvable"); + YavscHelpers.Notify (ViewData, "Catalog introuvable"); ViewData ["RefType"] = "Catalog"; return View ("ReferenceNotFound"); } @@ -236,11 +242,11 @@ namespace Yavsc.Controllers try { // Add specified product command to the basket, // saves it in db - new Command(collection,HttpContext.Request.Files); - YavscHelpers.Notify(ViewData, LocalizedText.Item_added_to_basket); + new Command (collection, HttpContext.Request.Files); + YavscHelpers.Notify (ViewData, LocalizedText.Item_added_to_basket); return View (collection); } catch (Exception e) { - YavscHelpers.Notify(ViewData,"Exception:" + e.Message); + YavscHelpers.Notify (ViewData, "Exception:" + e.Message); return View (collection); } } @@ -257,7 +263,7 @@ namespace Yavsc.Controllers /// /// Skills the specified model. /// - [Authorize(Roles="Admin")] + [Authorize (Roles = "Admin")] public ActionResult Skills (string search) { if (search == null) @@ -266,16 +272,28 @@ namespace Yavsc.Controllers return View (skills); } + /// + /// Performers on this MEA. + /// fr + /// Liste des prestataires dont + /// l'activité principale est celle spécifiée + /// + /// Identifiant APE de l'activité. + public ActionResult Performers (string id) + { + throw new NotImplementedException (); + } + /// /// Activities the specified search and toPower. /// /// Search. /// If set to true to power. - public ActionResult Activities (string search, bool toPower = false) + public ActionResult Activities (string id, bool toPower = false) { - if (search == null) - search = "%"; - var activities = WorkFlowManager.FindActivity(search,!toPower); + if (id == null) + id = "%"; + var activities = WorkFlowManager.FindActivity (id, !toPower); return View (activities); } @@ -283,21 +301,22 @@ namespace Yavsc.Controllers /// Activity at the specified id. ///
/// Identifier. - public ActionResult Activity(string id) + public ActionResult Activity (string id) { - return View(WorkFlowManager.GetActivity (id)); + return View (WorkFlowManager.GetActivity (id)); } + /// /// Display and should /// offer Ajax edition of /// user's skills. /// /// the User name. - [Authorize()] + [Authorize ()] public ActionResult UserSkills (string id) { - if (id == null) - id = User.Identity.Name ; + if (id == null) + id = User.Identity.Name; // TODO or not to do, handle a skills profile update, // actually performed via the Web API :-° // else if (ModelState.IsValid) {} @@ -307,16 +326,132 @@ namespace Yavsc.Controllers return View (usp); } + /// + /// Dates the query. + /// + /// The query. + /// Model. + [Authorize,HttpPost] + public ActionResult Book (BookingQuery model) + { + DateTime mindate = DateTime.Now; + if (model.StartDate.Date < mindate.Date) { + ModelState.AddModelError ("StartDate", LocalizedText.FillInAFutureDate); + } + if (model.EndDate < model.StartDate) + ModelState.AddModelError ("EndDate", LocalizedText.StartDateAfterEndDate); + + if (ModelState.IsValid) { + + var result = new List (); + + foreach (string meacode in model.MEACodes) { + foreach (PerformerProfile profile in WorkFlowManager.FindPerformer(meacode)) { + try { + var events = ProfileBase.Create (profile.UserName).GetEvents (model.StartDate, model.EndDate); + if (events.items.Length == 0) + result.Add (profile); + } catch (WebException ex) { + string response; + using (var stream = ex.Response.GetResponseStream ()) { + using (var reader = new StreamReader (stream)) { + response = reader.ReadToEnd (); + stream.Close (); + } + YavscHelpers.Notify (ViewData, + string.Format ( + "Google calendar API exception {0} : {1}
{2}
", + ex.Status.ToString (), + ex.Message, + response)); + } + } + } + } + return View ("Performers", result.ToArray ()); + } + return View (model); + } + /// /// Booking the specified model. /// + /// MEA Code. /// Model. - public ActionResult Booking (string id, SimpleBookingQuery model) + public ActionResult Booking (SimpleBookingQuery model) { - if (model.Needs == null) - model.Needs = SkillManager.FindSkill ("%"); - model.MAECode = id; + + // In order to present this form + // with no need selected and without + // validation error display, + // we only check the need here, not at validation time. + // Although, the need is indeed cruxial requirement, + // but we already have got a MEA code + if (ModelState.IsValid) + if (model.Needs != null) { + var result = new List (); + foreach (PerformerProfile profile in WorkFlowManager.FindPerformer(model.MEACode)) { + if (profile.HasCalendar ()) { + try { + var events = ProfileBase.Create (profile.UserName) + .GetEvents ( + model.PreferedDate.Date, + model.PreferedDate.AddDays (1).Date); + // TODO replace (events.items.Length == 0) + // with a descent computing of dates and times claims, calendar, + // AND performer preferences, perhaps also client preferences + result.Add (profile.CreateAvailability (model.PreferedDate, (events.items.Length == 0))); + } catch (WebException ex) { + HandleWebException (ex, "Google Calendar Api"); + } + } else + result.Add (profile.CreateAvailability (model.PreferedDate, false)); + + } + return View ("Performers", result.ToArray ()); + } else { + // A first Get + var needs = SkillManager.FindSkill ("%", model.MEACode); + ViewData ["Needs"] = needs; + model.Needs = needs.Select ( + x => string.Format ("{0}:{1}", x.Id, x.Rate)).ToArray (); + } + + var activity = WorkFlowManager.GetActivity (model.MEACode); + ViewData ["Activity"] = activity; + ViewData ["Title"] = activity.Title; + ViewData ["Comment"] = activity.Comment; + ViewData ["Photo"] = activity.Photo; + if (model.PreferedDate < DateTime.Now) + model.PreferedDate = DateTime.Now; return View (model); } + + private void HandleWebException (WebException ex, string context) + { + + string response = ""; + using (var stream = ex.Response.GetResponseStream ()) { + if (stream.CanRead) { + var reader = new StreamReader (stream); + response = reader.ReadToEnd (); + reader.Close (); + reader.DiscardBufferedData (); + reader.Dispose (); + } + stream.Close (); + stream.Dispose (); + + } + YavscHelpers.Notify (ViewData, + string.Format ( + "{3} exception {0} : {1}
{2}
", + ex.Status.ToString (), + ex.Message, + response, + context + )); + } + } } diff --git a/web/Controllers/GoogleController.cs b/web/Controllers/GoogleController.cs index 7d8ae296..a75b552b 100644 --- a/web/Controllers/GoogleController.cs +++ b/web/Controllers/GoogleController.cs @@ -15,9 +15,12 @@ using Newtonsoft.Json; using Yavsc.Model; using Yavsc.Model.Google; using Yavsc.Model.RolesAndMembers; -using Yavsc.Helpers.Google; using Yavsc.Model.Calendar; using Yavsc.Helpers; +using Yavsc.Model.WorkFlow; +using Yavsc.Model.FrontOffice; +using Yavsc.Model.Google.Api; +using Yavsc.Model.Skill; namespace Yavsc.Controllers { @@ -303,44 +306,10 @@ namespace Yavsc.Controllers return View (model); } - /// - /// Dates the query. - /// - /// The query. - /// Model. - [Authorize,HttpPost] - public ActionResult Book (BookingQuery model) + + + public ActionResult Book (SimpleBookingQuery model) { - DateTime mindate = DateTime.Now; - if (model.StartDate.Date < mindate.Date){ - ModelState.AddModelError ("StartDate", LocalizedText.FillInAFutureDate); - } - if (model.EndDate < model.StartDate) - ModelState.AddModelError ("EndDate", LocalizedText.StartDateAfterEndDate); - - if (ModelState.IsValid) { - foreach (string rolename in model.Roles) { - foreach (string username in Roles.GetUsersInRole(rolename)) { - try { - var pr = ProfileBase.Create(username); - var events = pr.GetEvents(model.StartDate,model.EndDate); - } catch (WebException ex) { - string response; - using (var stream = ex.Response.GetResponseStream()) - using (var reader = new StreamReader(stream)) - { - response = reader.ReadToEnd(); - } - YavscHelpers.Notify (ViewData, - string.Format( - "Google calendar API exception {0} : {1}
{2}
", - ex.Status.ToString(), - ex.Message, - response)); - } - } - } - } return View (model); } } diff --git a/web/Controllers/HomeController.cs b/web/Controllers/HomeController.cs index 674fbd70..5b0ff763 100644 --- a/web/Controllers/HomeController.cs +++ b/web/Controllers/HomeController.cs @@ -15,6 +15,8 @@ using Yavsc; using System.Web.Mvc; using Yavsc.Model.Blogs; using Yavsc.Model.WorkFlow; +using Yavsc.WebControls; +using SalesCatalog.XmlImplementation; namespace Yavsc.Controllers { @@ -47,10 +49,13 @@ namespace Yavsc.Controllers { Assembly[] aslist = { GetType ().Assembly, + typeof(BlogsController).Assembly, typeof(ITCPNpgsqlProvider).Assembly, typeof(NpgsqlMembershipProvider).Assembly, typeof(NpgsqlContentProvider).Assembly, - typeof(NpgsqlBlogProvider).Assembly + typeof(NpgsqlBlogProvider).Assembly, + typeof(InputUserName).Assembly, + typeof(XmlCatalog).Assembly }; List asnlist = new List (); diff --git a/web/Helpers/Google/ApiClient.cs b/web/Helpers/Google/ApiClient.cs deleted file mode 100644 index 6c4ca425..00000000 --- a/web/Helpers/Google/ApiClient.cs +++ /dev/null @@ -1,78 +0,0 @@ -// -// Manager.cs -// -// Author: -// Paul Schneider -// -// 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 . - -using System; -using Yavsc.Helpers; -using System.Web.Profile; -using Yavsc.Model.Google; -using System.Net; -using System.IO; -using System.Text; -using Newtonsoft.Json; - -namespace Yavsc.Helpers.Google -{ - /// - /// Google base API client. - /// This class implements the identification values for a Google Api, - /// and provides some scope values. - /// - public class ApiClient - { - /// - /// The CLIENT Id. - /// - public static string CLIENT_ID { get ; set ; } - - /// - /// The CLIENt SECREt - /// - public static string CLIENT_SECRET { get ; set ; } - - /// - /// The API KEY. - /// - public static string API_KEY { get ; set ; } - /* // to use in descendence - * - protected static string getPeopleUri = "https://www.googleapis.com/plus/v1/people"; - private static string authUri = "https://accounts.google.com/o/oauth2/auth"; - */ - /// - /// The Map tracks scope . - /// - protected static string scopeTracks = "https://www.googleapis.com/auth/tracks"; - /// - /// The calendar scope. - /// - protected static string scopeCalendar = "https://www.googleapis.com/auth/calendar"; - - /// - /// The scope openid. - /// - protected static string[] scopeOpenid = { - "openid", - "profile", - "email" - }; - } - -} diff --git a/web/Helpers/Google/CalendarApi.cs b/web/Helpers/Google/CalendarApi.cs deleted file mode 100644 index a0d5d1cf..00000000 --- a/web/Helpers/Google/CalendarApi.cs +++ /dev/null @@ -1,134 +0,0 @@ -// -// Calendar.cs -// -// Author: -// Paul Schneider -// -// 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 . - -using System; -using Yavsc.Helpers; -using System.Web.Profile; -using Yavsc.Model.Google; -using System.Net; -using System.IO; -using System.Text; -using Newtonsoft.Json; -using System.Web; -using System.Runtime.Serialization.Json; -using Yavsc.Model; - -namespace Yavsc.Helpers.Google -{ - /// - /// Google Calendar API client. - /// - public class CalendarApi : ApiClient - { - public CalendarApi(string apiKey) - { - API_KEY = apiKey; - } - /// - /// The get cal list URI. - /// - protected static string getCalListUri = "https://www.googleapis.com/calendar/v3/users/me/calendarList"; - /// - /// The get cal entries URI. - /// - protected static string getCalEntriesUri = "https://www.googleapis.com/calendar/v3/calendars/{0}/events"; - - /// - /// The date format. - /// - private static string dateFormat = "yyyy-MM-ddTHH:mm:ss"; - - /// - /// The time zone. TODO Fixme with machine time zone - /// - private string timeZone = "+01:00"; - - /// - /// Gets the calendar list. - /// - /// The calendars. - /// Cred. - public CalendarList GetCalendars (string cred) - { - CalendarList res = null; - HttpWebRequest webreq = WebRequest.CreateHttp (getCalListUri); - webreq.Headers.Add (HttpRequestHeader.Authorization, cred); - webreq.Method = "GET"; - webreq.ContentType = "application/http"; - using (WebResponse resp = webreq.GetResponse ()) { - using (Stream respstream = resp.GetResponseStream ()) { - res = (CalendarList) new DataContractJsonSerializer(typeof(CalendarList)).ReadObject (respstream); - } - resp.Close (); - } - webreq.Abort (); - return res; - } - - /// - /// Gets a calendar. - /// - /// The calendar. - /// Calid. - /// Mindate. - /// Maxdate. - /// Upr. - public CalendarEventList GetCalendar (string calid, DateTime mindate, DateTime maxdate,string cred) - { - if (string.IsNullOrWhiteSpace (calid)) - throw new Exception ("the calendar identifier is not specified"); - - string uri = string.Format ( - getCalEntriesUri, HttpUtility.UrlEncode (calid)) + - string.Format ("?orderBy=startTime&singleEvents=true&timeMin={0}&timeMax={1}&key=" + API_KEY, - HttpUtility.UrlEncode (mindate.ToString (dateFormat) + timeZone), - HttpUtility.UrlEncode (maxdate.ToString (dateFormat) + timeZone)); - - HttpWebRequest webreq = WebRequest.CreateHttp (uri); - - webreq.Headers.Add (HttpRequestHeader.Authorization, cred); - webreq.Method = "GET"; - webreq.ContentType = "application/http"; - CalendarEventList res = null; - try { - using (WebResponse resp = webreq.GetResponse ()) { - using (Stream respstream = resp.GetResponseStream ()) { - try { - res = (CalendarEventList) new DataContractJsonSerializer(typeof(CalendarEventList)).ReadObject (respstream); - } catch (Exception ) { - respstream.Close (); - resp.Close (); - webreq.Abort (); - throw ; - } - } - resp.Close (); - } - } catch (WebException ) { - webreq.Abort (); - throw; - } - webreq.Abort (); - return res; - } - - } -} diff --git a/web/Helpers/Google/Entity.cs b/web/Helpers/Google/Entity.cs deleted file mode 100644 index 73ee123f..00000000 --- a/web/Helpers/Google/Entity.cs +++ /dev/null @@ -1,56 +0,0 @@ -// -// Entity.cs -// -// Author: -// Paul Schneider -// -// 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 . - -using System; -using Yavsc.Helpers; -using System.Web.Profile; -using Yavsc.Model.Google; -using System.Net; -using System.IO; -using System.Text; -using Newtonsoft.Json; - -namespace Yavsc.Helpers.Google -{ - /// - /// Entity. - /// - public class Entity - { - /// - /// The I. - /// - public string ID; - /// - /// The name. - /// - public string Name; - - /// - /// The type: AUTOMOBILE: A car or passenger vehicle. - /// * TRUCK: A truck or cargo vehicle. - /// * WATERCRAFT: A boat or other waterborne vehicle. - /// * PERSON: A person. - /// - public string Type; - } - -} diff --git a/web/Helpers/Google/EntityQuery.cs b/web/Helpers/Google/EntityQuery.cs deleted file mode 100644 index 9b393e7f..00000000 --- a/web/Helpers/Google/EntityQuery.cs +++ /dev/null @@ -1,46 +0,0 @@ -// -// EntityQuery.cs -// -// Author: -// Paul Schneider -// -// 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 . - -using System; -using Yavsc.Helpers; -using System.Web.Profile; -using Yavsc.Model.Google; -using System.Net; -using System.IO; -using System.Text; -using Newtonsoft.Json; - -namespace Yavsc.Helpers.Google -{ - /// - /// Entity query. - /// - public class EntityQuery { - /// - /// The entity identifiers. - /// - public string [] EntityIds; - /// - /// The minimum identifier. - /// - public string MinId; - } -} diff --git a/web/Helpers/Google/GoogleHelpers.cs b/web/Helpers/Google/GoogleHelpers.cs deleted file mode 100644 index fc71aa5a..00000000 --- a/web/Helpers/Google/GoogleHelpers.cs +++ /dev/null @@ -1,137 +0,0 @@ -// -// GoogleHelpers.cs -// -// Author: -// Paul Schneider -// -// Copyright (c) 2015 GNU GPL -// -// 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 . -using System; -using Yavsc.Model.Google; -using System.Web.Profile; -using System.Configuration; -using System.Web; -using Yavsc.Model.Calendar; -using Yavsc.Model.Circles; -using System.Collections.Generic; -using System.Web.Security; - -namespace Yavsc.Helpers.Google -{ - /// - /// Google helpers. - /// - public static class GoogleHelpers - { - /// - /// Gets the events. - /// - /// The events. - /// Profile. - /// Mindate. - /// Maxdate. - public static CalendarEventList GetEvents(this ProfileBase profile, DateTime mindate, DateTime maxdate) - { - string gcalid = (string) profile.GetPropertyValue ("gcalid"); - if (string.IsNullOrWhiteSpace (gcalid)) - throw new ArgumentException ("NULL gcalid"); - CalendarApi c = new CalendarApi (clientApiKey); - string creds = OAuth2.GetFreshGoogleCredential (profile); - return c.GetCalendar (gcalid, mindate, maxdate, creds); - } - /// - /// Gets the calendars. - /// - /// The calendars. - /// Profile. - public static CalendarList GetCalendars (this ProfileBase profile) - { - string cred = OAuth2.GetFreshGoogleCredential (profile); - CalendarApi c = new CalendarApi (clientApiKey); - return c.GetCalendars (cred); - } - - private static string clientId = ConfigurationManager.AppSettings ["GOOGLE_CLIENT_ID"]; - private static string clientSecret = ConfigurationManager.AppSettings ["GOOGLE_CLIENT_SECRET"]; - private static string clientApiKey = ConfigurationManager.AppSettings ["GOOGLE_API_KEY"]; - /// - /// Login the specified response, state and callBack. - /// - /// Response. - /// State. - /// Call back. - public static void Login(this HttpResponseBase response, string state, string callBack) - { - OAuth2 oa = new OAuth2 (callBack, clientId,clientSecret); - oa.Login (response, state); - } - /// - /// Cals the login. - /// - /// Response. - /// State. - /// Call back. - public static void CalLogin(this HttpResponseBase response, string state, string callBack) - { - OAuth2 oa = new OAuth2 (callBack,clientId,clientSecret); - oa.GetCalendarScope (response, state); - } - /// - /// Creates the O auth2. - /// - /// The O auth2. - /// Call back. - public static OAuth2 CreateOAuth2(string callBack) - { - return new OAuth2 (callBack,clientId,clientSecret); - } - - /// - /// Notifies the event. - /// - /// The event. - /// Evpub. - public static MessageWithPayloadResponse NotifyEvent(EventPub evpub) { - using (SimpleJsonPostMethod,MessageWithPayloadResponse> r = - new SimpleJsonPostMethod,MessageWithPayloadResponse>( - "https://gcm-http.googleapis.com/gcm/send")) { - var users = Circle.Union (evpub.CircleIds); - var regids = new List (); - var to = new List (); - foreach (var u in users) { - var p = ProfileBase.Create (u); - if (p != null) { - var regid = p.GetPropertyValue("gregid"); - if (regid == null) { - var muser = Membership.GetUser (u); - to.Add (muser.Email); - } - else regids.Add ((string)regid); - } - } - if (regids.Count == 0) - throw new InvalidOperationException - ("No recipient where found for this circle list"); - - var msg = new MessageWithPayload () { - notification = new Notification() { title = evpub.Title, body = evpub.Description, icon = "event" }, - data = new YaEvent[] { (YaEvent)evpub }, registration_ids = regids.ToArray() }; - return r.Invoke (msg); - } - } - - } -} - diff --git a/web/Helpers/Google/MapTracks.cs b/web/Helpers/Google/MapTracks.cs deleted file mode 100644 index 388e40c2..00000000 --- a/web/Helpers/Google/MapTracks.cs +++ /dev/null @@ -1,81 +0,0 @@ -// -// Google.cs -// -// Author: -// Paul Schneider -// -// 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 . -using System; -using Yavsc.Helpers; -using System.Web.Profile; -using Yavsc.Model.Google; -using System.Net; -using System.IO; -using System.Text; -using Newtonsoft.Json; - -namespace Yavsc.Helpers.Google -{ - /// - /// Google Map tracks Api client. - /// - public class MapTracks:ApiClient { - - /// - /// The google map tracks path (uri of the service). - /// - protected static string googleMapTracksPath = "https://www.googleapis.com/tracks/v1/"; - // entities/[create|list|delete] - // collections/[list|create|[add|remove]entities|delete] - // crumbs/[record|getrecent|gethistory|report|summarize|getlocationinfo|delete - - - // entities/[create|list|delete] - // collections/[list|create|[add|remove]entities|delete] - // crumbs/[record|getrecent|gethistory|report|summarize|getlocationinfo|delete - - /// - /// Creates the entity. - /// - /// The entity. - /// Entities. - public static string [] CreateEntity( Entity[] entities ) { - string [] ans = null; - using (SimpleJsonPostMethod< Entity[] ,string []> wr = - new SimpleJsonPostMethod< Entity[] ,string[]> (googleMapTracksPath + "entities/create")) - { - ans = wr.Invoke (entities); - } - return ans; - } - - /// - /// Lists the entities. - /// - /// The entities. - /// Eq. - static Entity[] ListEntities (EntityQuery eq) - { - Entity [] ans = null; - using (SimpleJsonPostMethod wr = - new SimpleJsonPostMethod (googleMapTracksPath + "entities/create")) - { - ans = wr.Invoke (eq); - } - return ans; - } - } -} diff --git a/web/Helpers/Google/OAuth2.cs b/web/Helpers/Google/OAuth2.cs deleted file mode 100644 index aae35812..00000000 --- a/web/Helpers/Google/OAuth2.cs +++ /dev/null @@ -1,252 +0,0 @@ -// -// OAuth2.cs -// -// Author: -// Paul Schneider -// -// 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 . -using System; -using System.IO; -using System.Net; -using System.Text; -using Newtonsoft.Json; -using Yavsc.Model.Google; -using System.Web.Profile; -using System.Web; -using Yavsc.Model; -using System.Runtime.Serialization.Json; -using Yavsc.Helpers.Google; - -namespace Yavsc.Helpers.Google -{ - - /// - /// Google O auth2 client. - /// - public class OAuth2 : ApiClient - { - /// - /// The URI used to get tokens. - /// - protected static string tokenUri = "https://accounts.google.com/o/oauth2/token"; - - /// - /// The URI used to get authorized to. - /// - protected static string authUri = "https://accounts.google.com/o/oauth2/auth"; - - /// - /// Gets or sets the redirect URI sent to Google. - /// - /// The redirect URI. - public string RedirectUri { get; set; } - - /// - /// Initializes a new instance of the class. - /// - /// Redirect URI. - /// Client identifier. - /// Client secret. - public OAuth2 (string redirectUri, string clientId, string clientSecret) - { - RedirectUri = redirectUri; - CLIENT_ID = clientId; - CLIENT_SECRET = clientSecret; - } - - /// - /// Login with Google - /// by redirecting the specified http web response bresp, - /// and using the specified session state. - /// - /// Bresp. - /// State. - public void Login (HttpResponseBase bresp, string state) - { - string scope = string.Join ("%20", scopeOpenid); - - string prms = String.Format ("response_type=code&client_id={0}&redirect_uri={1}&scope={2}&state={3}&include_granted_scopes=false&approval_prompt=force", - CLIENT_ID, RedirectUri, scope, state); - GetAuthResponse (bresp, prms); - } - - /// - /// Gets the cal authorization. - /// - /// Bresp. - /// State. - public void GetCalendarScope (HttpResponseBase bresp, string state) - { - string prms = String.Format ("response_type=code&client_id={0}&redirect_uri={1}&scope={2}&state={3}&include_granted_scopes=true&access_type=offline&approval_prompt=force", - CLIENT_ID, RedirectUri, scopeCalendar, state); - GetAuthResponse (bresp, prms); - } - - private void GetAuthResponse (HttpResponseBase bresp, string prms) - { - string cont = null; - WebRequest wr = WebRequest.Create (authUri + "?" + prms); - wr.Method = "GET"; - using (WebResponse response = wr.GetResponse ()) { - string resQuery = response.ResponseUri.Query; - cont = HttpUtility.ParseQueryString (resQuery) ["continue"]; - response.Close (); - } - wr.Abort (); - bresp.Redirect (cont); - } - - /// - /// Builds the post data, from code given - /// by Google in the request parameters, - /// and using the given redirectUri. - /// This request body is used to get a new - /// OAuth2 token from Google, it is Url encoded. - /// - /// The post data from code. - /// Redirect URI. - /// Code. - public static string TokenPostDataFromCode (string redirectUri, string code) - { - string postdata = - string.Format ( - "redirect_uri={0}&client_id={1}&client_secret={2}&code={3}&grant_type=authorization_code", - HttpUtility.UrlEncode (redirectUri), - HttpUtility.UrlEncode (CLIENT_ID), - HttpUtility.UrlEncode (CLIENT_SECRET), - HttpUtility.UrlEncode (code)); - return postdata; - } - - /// - /// Gets the Google Authorization token. - /// - /// The token. - /// Rq. - /// State. - /// Message. - public AuthToken GetToken (HttpRequestBase rq, string state, out string message) - { - string code = OAuth2.GetCodeFromRequest (rq, state, out message); - string postdata = OAuth2.TokenPostDataFromCode (RedirectUri, code); - return GetTokenPosting (postdata); - } - - internal static AuthToken GetTokenPosting (string postdata) - { - HttpWebRequest webreq = WebRequest.CreateHttp (tokenUri); - webreq.Method = "POST"; - webreq.Accept = "application/json"; - webreq.ContentType = "application/x-www-form-urlencoded"; - Byte[] bytes = System.Text.Encoding.UTF8.GetBytes (postdata); - webreq.ContentLength = bytes.Length; - - using (Stream dataStream = webreq.GetRequestStream ()) { - dataStream.Write (bytes, 0, bytes.Length); - dataStream.Close (); - } - - AuthToken gat = null; - using (WebResponse response = webreq.GetResponse ()) { - using (Stream responseStream = response.GetResponseStream ()) { - gat = (AuthToken)new DataContractJsonSerializer (typeof(AuthToken)).ReadObject (responseStream); - responseStream.Close (); - } - response.Close (); - } - webreq.Abort (); - return gat; - } - - /// - /// Gets the code from the Google request. - /// - /// The code from request. - /// Rq. - /// State. - /// Message. - public static string GetCodeFromRequest (HttpRequestBase rq, string state, out string message) - { - message = ""; - string code = rq.Params ["code"]; - string error = rq.Params ["error"]; - if (error != null) { - message = - string.Format (LocalizedText.Google_error, - LocalizedText.ResourceManager.GetString (error)); - return null; - } - string rqstate = rq.Params ["state"]; - if (state != null && string.Compare (rqstate, state) != 0) { - message = - LocalizedText.ResourceManager.GetString ("invalid request state"); - return null; - } - return code; - } - - /// - /// Invalid O auth2 refresh token. - /// - public class InvalidOAuth2RefreshToken: Exception - { - /// - /// Initializes a new instance of the class. - /// - /// Message. - public InvalidOAuth2RefreshToken(string message):base(message) - { - } - /// - /// Initializes a new instance of the class. - /// - /// Message. - /// Inner exception. - public InvalidOAuth2RefreshToken(string message,Exception innerException):base(message,innerException) - { - } - } - - /// - /// Gets fresh google credential. - /// - /// The fresh google credential. - /// Pr. - public static string GetFreshGoogleCredential (ProfileBase pr) - { - string token = (string)pr.GetPropertyValue ("gtoken"); - string token_type = (string) pr.GetPropertyValue ("gtokentype"); - DateTime token_exp = (DateTime) pr.GetPropertyValue ("gtokenexpir"); - if (token_exp < DateTime.Now) { - object ort = pr.GetPropertyValue ("grefreshtoken"); - if (ort is DBNull || string.IsNullOrWhiteSpace((string)ort)) { - throw new InvalidOAuth2RefreshToken ("Google"); - } - string refresh_token = ort as string; - AuthToken gat = OAuth2.GetTokenPosting ( - string.Format ("grant_type=refresh_token&client_id={0}&client_secret={1}&refresh_token={2}", - CLIENT_ID, CLIENT_SECRET, refresh_token)); - token = gat.access_token; - pr.SetPropertyValue ("gtoken", token); - pr.Save (); - // ASSERT gat.token_type == pr.GetPropertyValue("gtokentype") - } - return token_type + " " + token; - } - - } -} - diff --git a/web/Helpers/Google/PeopleApi.cs b/web/Helpers/Google/PeopleApi.cs deleted file mode 100644 index 791fd07b..00000000 --- a/web/Helpers/Google/PeopleApi.cs +++ /dev/null @@ -1,68 +0,0 @@ -// -// PeopleApi.cs -// -// Author: -// Paul Schneider -// -// Copyright (c) 2015 GNU GPL -// -// 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 . - -using System; -using System.IO; -using System.Net; -using System.Text; -using Newtonsoft.Json; -using Yavsc.Model.Google; -using System.Web.Profile; -using System.Web; -using Yavsc.Model; -using System.Runtime.Serialization.Json; -using Yavsc.Helpers.Google; - -namespace Yavsc.Helpers.Google -{ - /// - /// Google People API. - /// - public class PeopleApi: ApiClient - { - private static string getPeopleUri = "https://www.googleapis.com/plus/v1/people"; - - /// - /// Gets the People object associated to the given Google Access Token - /// - /// The me. - /// The Google Access Token object class. - public static People GetMe (AuthToken gat) - { - People me; - DataContractJsonSerializer ppser = new DataContractJsonSerializer (typeof(People)); - HttpWebRequest webreppro = WebRequest.CreateHttp (getPeopleUri + "/me"); - webreppro.ContentType = "application/http"; - webreppro.Headers.Add (HttpRequestHeader.Authorization, gat.token_type + " " + gat.access_token); - webreppro.Method = "GET"; - using (WebResponse proresp = webreppro.GetResponse ()) { - using (Stream prresponseStream = proresp.GetResponseStream ()) { - me = (People)ppser.ReadObject (prresponseStream); - prresponseStream.Close (); - } - proresp.Close (); - } - webreppro.Abort (); - return me; - } - } - -} diff --git a/web/Helpers/SimpleJsonPostMethod.cs b/web/Helpers/SimpleJsonPostMethod.cs deleted file mode 100644 index 76071852..00000000 --- a/web/Helpers/SimpleJsonPostMethod.cs +++ /dev/null @@ -1,108 +0,0 @@ -// -// PostJson.cs -// -// Author: -// Paul Schneider -// -// 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 . -using System; -using System.Net; -using System.Text; -using System.IO; -using System.Runtime.Serialization.Json; - -namespace Yavsc.Helpers -{ - /// - /// Simple json post method. - /// - public class SimpleJsonPostMethod: IDisposable - { - internal HttpWebRequest request = null; - internal HttpWebRequest Request { get { return request; } } - - string CharSet { - get { return Request.TransferEncoding; } - set { Request.TransferEncoding=value;} - } - string Method { get { return Request.Method; } } - /// - /// Gets the path. - /// - /// The path. - public string Path { - get{ return Request.RequestUri.ToString(); } - } - /// - /// Sets the credential. - /// - /// Cred. - public void SetCredential(string cred) { - Request.Headers.Set(HttpRequestHeader.Authorization,cred); - } - - /// - /// Initializes a new instance of the Yavsc.Helpers.SimpleJsonPostMethod class. - /// - /// Path to method. - public SimpleJsonPostMethod (string pathToMethod) - { - // ASSERT Request == null - request = WebRequest.CreateHttp (pathToMethod); - - Request.Method = "POST"; - Request.Accept = "application/json"; - Request.ContentType = "application/json"; - Request.SendChunked = true; - Request.TransferEncoding = "UTF-8"; - } - /// - /// Invoke the specified query. - /// - /// Query. - public TAnswer Invoke(TQuery query) - { - - DataContractJsonSerializer serquery = new DataContractJsonSerializer (typeof(TQuery)); - DataContractJsonSerializer seransw = new DataContractJsonSerializer (typeof(TAnswer)); - - using (MemoryStream streamQuery = new MemoryStream ()) { - serquery.WriteObject (streamQuery, query); - } - - TAnswer ans = default (TAnswer); - using (WebResponse response = Request.GetResponse ()) { - using (Stream responseStream = response.GetResponseStream ()) { - ans = (TAnswer) seransw.ReadObject(responseStream); - } - response.Close(); - } - return ans; - } - - #region IDisposable implementation - - /// - /// Releases all resource used by the Yavsc.Helpers.SimpleJsonPostMethod object. - /// - public void Dispose () - { - if (Request != null) Request.Abort (); - } - #endregion - } -} - diff --git a/web/Helpers/T.cs b/web/Helpers/T.cs index 36428a98..4261a9f4 100644 --- a/web/Helpers/T.cs +++ b/web/Helpers/T.cs @@ -33,10 +33,10 @@ namespace Yavsc.Helpers /// /// Helper. /// Text. - public static IHtmlString Translate(this HtmlHelper helper, string text) + public static IHtmlString Translate(this HtmlHelper helper, object text) { // Just call the other one, to avoid having two copies (we don't use the HtmlHelper). - return new MvcHtmlString(helper.Encode(GetString(text))); + return new MvcHtmlString(helper.Encode(GetString((string)text))); } } diff --git a/web/Helpers/YavscAjaxHelper.cs b/web/Helpers/YavscAjaxHelper.cs index d7dedfd2..642a52f6 100644 --- a/web/Helpers/YavscAjaxHelper.cs +++ b/web/Helpers/YavscAjaxHelper.cs @@ -22,6 +22,9 @@ using System; using System.Web.Mvc; using System.Collections.Generic; using Yavsc.Model.Messaging; +using System.Runtime.Serialization.Json; +using System.IO; +using System.Text; namespace Yavsc.Helpers { @@ -61,10 +64,36 @@ namespace Yavsc.Helpers return "\"" + tmpstr + "\""; return "'" + tmpstr + "'"; } + /// + /// Js the son string. + /// + /// The son string. + /// Helper. + /// Object. + public static string JSonString(this AjaxHelper helper, object obj) + { + string result = null; + DataContractJsonSerializer ser = new DataContractJsonSerializer (obj.GetType()); + var e = Encoding.UTF8; + using (MemoryStream streamQuery = new MemoryStream ()) { + ser.WriteObject (streamQuery, obj); + streamQuery.Seek (0, SeekOrigin.Begin); + using (StreamReader sr = new StreamReader (streamQuery)) { + result = sr.ReadToEnd (); + } + } + return result; + } - public static string JString(this AjaxHelper helper, object str) + /// + /// Js the string. + /// + /// The string. + /// Helper. + /// Text. + public static string JString(this AjaxHelper helper, object text) { - return QuoteJavascriptString (str); + return QuoteJavascriptString ((string)text); } } } diff --git a/web/Models/NoLogin.master b/web/Models/NoLogin.master index 522b627f..284ba7ea 100644 --- a/web/Models/NoLogin.master +++ b/web/Models/NoLogin.master @@ -24,7 +24,7 @@ Page.StyleSheetTheme = (string) Profile.UITheme; %> <%=Ajax.GlobalizationScript()%> diff --git a/web/Scripts/parallax.js b/web/Scripts/parallax.js index 23e47bdf..e540c027 100644 --- a/web/Scripts/parallax.js +++ b/web/Scripts/parallax.js @@ -85,7 +85,7 @@ $(document).ready(function(){ if ($stwidth>320 && $stheight>320) { window.addEventListener('deviceorientation', function(event) { tiltLR = $stwidth*Math.sin(event.gamma*Math.PI/180); - titleFB = $stheight*Math.sin(event.beta*Math.PI/180); + titleFB = $stheight*Math.sin(event.beta*Math.PI/90); onPos($bgobj,tiltLR,titleFB); },false); } $(window).mousemove(function(e) { diff --git a/web/Scripts/yavsc.rate.js b/web/Scripts/yavsc.rate.js index febdc9a7..49fdb3c1 100644 --- a/web/Scripts/yavsc.rate.js +++ b/web/Scripts/yavsc.rate.js @@ -2,11 +2,16 @@ (function(jQuery) { return jQuery.widget('Yavsc.rate', { options: { - target: null, + webTarget: null, + jsTarget: null, disabled: false }, sendRate: function (rating,callback) { - Yavsc.ajax(this.options.target+'/Rate', rating, callback); + if (this.options.webTarget) + Yavsc.ajax(this.options.webTarget+'/Rate', rating, callback); + if (this.options.jsTarget) + if (this.options.jsTarget(rating)) + if (callback) callback(); }, _create: function() { var $ratectl = $(this.element); diff --git a/web/Views/FrontOffice/Activities.aspx b/web/Views/FrontOffice/Activities.aspx index 4f0852e3..ca84bedb 100644 --- a/web/Views/FrontOffice/Activities.aspx +++ b/web/Views/FrontOffice/Activities.aspx @@ -11,9 +11,12 @@