|
|
|
|
|
//
|
|
|
|
|
|
// CircleManager.cs
|
|
|
|
|
|
//
|
|
|
|
|
|
// Author:
|
|
|
|
|
|
// Paul Schneider <paul@pschneider.fr>
|
|
|
|
|
|
//
|
|
|
|
|
|
// 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 <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Security.Permissions;
|
|
|
|
|
|
using System.Configuration;
|
|
|
|
|
|
using System.Collections.Specialized;
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using System.Reflection;
|
Thème clair opé, WIP circles
* animate.css: animations css
* links.css: liens avec le fond blanc qui se déroule
* links.css: WIP liens thème sombre
* GitHub.ico: un petit merci à GitHub
* live-concert-fg.png: image de plan rapproché : les fans
* live-concert-scene.jpg: Image de fond : la scene
* splash-image-2.jpg: image de fond : photo colorée, public de
concert, vient de totemproduction.fr
* links.css: ficher de définitions globales du style des bouttons
(encore inutilisé)
* yavsc.user.js: WIP implémente le widget "utilisateur", permettant
l'affichage des liens rapides pour tout nom d'ulitisateur, le cas
échéant, vers l'ajout à un cercle,
vers son blog, vers des methodes choisies d'administateur, vers ses
réseaux sociaux, voir plus.
* About.aspx: Implémente une page "à propos"
* Test.aspx: Page de test: désolé pour le bruit, elle n'est compilée
qu'en mode `Debug` (elle n'est pas accessible en production)
* NpgsqlBlogProvider.cs: Corrige la méthode pour enlever un tag à un
article ...
* NpgsqlBlogProvider.csproj: .
* NpgsqlCircleProvider.cs: liste les cercles auquels appartient un
utilisateur.
* BasketController.cs:
* NpgsqlContentProvider.cs: Les commandes sont fortement typée.
* README.md: mise à jour des priorités
* style.css: réécriture du thème clair
* style.css: * implémente un classe css `clickme` pour attirer l'oeil
sur le boutton de validation après la modification d'un champ de
formulaire.
* enlève tous les coins arrondis
* modifie la chasse de caractères (une seule utilisée pour le moment)
*
* style.css: * integre la référence à la feuille de style des
[animations](https://daneden.github.io/animate.css/)
* corrige des marges, alignements
* supprime ce qui reste de coin arrondi
* néttoye les définitions obsolètes
* définit la classe `username`
* corrige le survol à la suppression de tag
* FrontOfficeController.cs: renomme des methodes, refabriqué pour
s'adapter aux changements de l'API du workflow,
WIP propose les cercles utilisateurs pour l'ajout des profiles
préstataires aux cercles.
* HomeController.cs: implémente une page "à propos"
* T.cs: re-autorise le titre vide de page, au cas où ... car ce n'est
pas un véritable
défaut fonctionnel.
* YavscHelpers.cs: Implemente un outil de presentation des liens
action traduits. Tous les liens action utilisent maintenant cette
nouvelle methode,
au profile de celle du framework `HtmlHelpers.ActionLink`
* App.master: corrige l'usage du contrôle utilisateur des cotes dans
le cadre des cotes de billet.
* AppAdmin.master:
* Index.aspx:
* Service.aspx:
* ProductCategory.aspx: traduction des liens action
* NoLogin.master: * traduction des liens action
* suppression des liens de remerciement dans le bas de page, cette
information a été déplacée dans la page `/Home/Credits`
* to-markdown.js: transforme maintenant les noeuds Html `div` en
paragraphes Markdown.
* yavsc.hidefieldset.js: Le script règle la forme de la souris au
survol du bouton,
le cas échéant.
* yavsc.js: nouvelle fonction javascript pour logger un objet
arbitraire.
* yavsc.rate.js: Fixe la possibilité de mettre des cotes très basses
ou très hautes (reste encore un mieux à faire),
Affiche au survol des descriptions optionnelles de la cote.
* Title.aspx:
* UserPost.aspx:
* Edit.aspx:
* Index.aspx:
* Brand.aspx:
* Index.aspx:
* PostActions.ascx:
* TitleNotFound.aspx:
* Booking.aspx:
* Command.aspx:
* ChangePasswordSuccess.aspx: Traduction des liens action
* Login.aspx: * Traduction des liens actionTraduction des liens action
* Profile.aspx: * Traduction des liens actionTraduction des liens
action
* utilisation de la classe css `mayhide` qui autorise maintenant un
champ d'entrées de formulaire à être plié/déplié au click sur sa
légende.
* Admin.aspx: Traduction des liens actionTraduction des liens
actionTraduction des liens actionTraduction des liens
actionTraduction des liens actionTraduction des liens action
* Backups.aspx:
* RoleList.aspx:
* UserList.aspx:
* Index.aspx: Traduction des liens actionTraduction des liens action
* Edit.aspx: * refabrication de la structure Html
* Traduction des liens actionTraduction des liens action
* Index.aspx: Simlpification des apperçus de blog
* TagControl.ascx: refabrication pour simplifier l'implémentation du
contrôle utilisateur des tags
* UserPosts.aspx: Traduction des liens action, et simplification du
listing de blog
* Basket.aspx: Affiche les articles du panier de commandes avec leur
vue
dédiée à leur type (les commande sont maintenant fortement typées)
* Catalog.aspx: Traduction des liens action, correctin du lien vers le
produit
(cassé depuis une vielle refabrication des routes)
* DoAnEstimate.aspx: refabrication de la vue de création du devis:
renommée depuis `Estimate`
* Performer.ascx: * un message supplementaire à l'absence de
compétence affichée par un préstataire
* des guillemets autour du commentaire du préstataire sur sa
compétence
* ajout du préstataire au cercles
* Performers.aspx: Décrit en détail les informations sur la
disponibilité d'un préstataire,
à la date demandée.
* YourEstimates.aspx: renomage de cette page, pour préciser sa
fonction : Vos devis.
* Contact.aspx: structure Html de la page de contact
* Credits.aspx: Ajoute les remerciements aux communauté du libre
* Index.aspx: ne fait rien
* Web.config: * import de `System.Transactions`
* mise à jour des credits libres
* WebDeploy.targets: utilise les séparateurs de chemin vers ficher à
la POSIX, ne change rien pour ma config ... (TODO tester sous
WoinDose)
* Yavsc.csproj: déploie des pages des scripts Javascript et des images
et feuilles de style en plus.
* CircleManager.cs: implémente les methodes utilisées à la
construction du contrôle utilisateur.
* CircleProvider.cs: * doc xml
* extension de interface
* Commande.cs: l'objet `Command` devient abstrait, pour exister (être
instanciée), une commande doit maintenant hériter de cet objet
abstrait.
* LocalizedText.resx:
* LocalizedText.fr.resx:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs: traductions
* IContentProvider.cs: doc xml
* SiteSkills.aspx: renomage de cette page, pour préciser sa fonction :
les compétences sur ce site.
10 years ago
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Web;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Yavsc.Model.Circles
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Circle manager.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class CircleManager
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Initializes a new instance of the <see cref="Yavsc.Model.Circles.CircleManager"/> class.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public CircleManager ()
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
private static CircleProvider defaultProvider=null;
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Gets the default provider.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <value>The default provider.</value>
|
|
|
|
|
|
public static CircleProvider DefaultProvider {
|
|
|
|
|
|
get {
|
|
|
|
|
|
if (defaultProvider == null)
|
|
|
|
|
|
GetProviderSettings ();
|
|
|
|
|
|
return defaultProvider;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
|
|
|
|
|
|
private static void GetProviderSettings()
|
|
|
|
|
|
{
|
|
|
|
|
|
System.Configuration.Configuration config =
|
|
|
|
|
|
ConfigurationManager.OpenExeConfiguration(
|
|
|
|
|
|
ConfigurationUserLevel.None);
|
|
|
|
|
|
|
|
|
|
|
|
DataProviderConfigurationSection pSection =
|
|
|
|
|
|
config.GetSection("system.web/circleProviders")
|
|
|
|
|
|
as DataProviderConfigurationSection;
|
|
|
|
|
|
if (pSection == null)
|
|
|
|
|
|
throw new ConfigurationErrorsException ("no circleProviders section defined");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ProviderSettingsCollection providerSettings =
|
|
|
|
|
|
pSection.Providers;
|
|
|
|
|
|
if (pSection.DefaultProvider != null) {
|
|
|
|
|
|
var pSetDef = providerSettings [pSection.DefaultProvider];
|
|
|
|
|
|
ConstructorInfo ci = Type.GetType (pSetDef.Type).GetConstructor (Type.EmptyTypes);
|
|
|
|
|
|
defaultProvider = ci.Invoke (Type.EmptyTypes) as CircleProvider;
|
|
|
|
|
|
defaultProvider.Initialize (pSection.DefaultProvider,pSetDef.Parameters);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
Thème clair opé, WIP circles
* animate.css: animations css
* links.css: liens avec le fond blanc qui se déroule
* links.css: WIP liens thème sombre
* GitHub.ico: un petit merci à GitHub
* live-concert-fg.png: image de plan rapproché : les fans
* live-concert-scene.jpg: Image de fond : la scene
* splash-image-2.jpg: image de fond : photo colorée, public de
concert, vient de totemproduction.fr
* links.css: ficher de définitions globales du style des bouttons
(encore inutilisé)
* yavsc.user.js: WIP implémente le widget "utilisateur", permettant
l'affichage des liens rapides pour tout nom d'ulitisateur, le cas
échéant, vers l'ajout à un cercle,
vers son blog, vers des methodes choisies d'administateur, vers ses
réseaux sociaux, voir plus.
* About.aspx: Implémente une page "à propos"
* Test.aspx: Page de test: désolé pour le bruit, elle n'est compilée
qu'en mode `Debug` (elle n'est pas accessible en production)
* NpgsqlBlogProvider.cs: Corrige la méthode pour enlever un tag à un
article ...
* NpgsqlBlogProvider.csproj: .
* NpgsqlCircleProvider.cs: liste les cercles auquels appartient un
utilisateur.
* BasketController.cs:
* NpgsqlContentProvider.cs: Les commandes sont fortement typée.
* README.md: mise à jour des priorités
* style.css: réécriture du thème clair
* style.css: * implémente un classe css `clickme` pour attirer l'oeil
sur le boutton de validation après la modification d'un champ de
formulaire.
* enlève tous les coins arrondis
* modifie la chasse de caractères (une seule utilisée pour le moment)
*
* style.css: * integre la référence à la feuille de style des
[animations](https://daneden.github.io/animate.css/)
* corrige des marges, alignements
* supprime ce qui reste de coin arrondi
* néttoye les définitions obsolètes
* définit la classe `username`
* corrige le survol à la suppression de tag
* FrontOfficeController.cs: renomme des methodes, refabriqué pour
s'adapter aux changements de l'API du workflow,
WIP propose les cercles utilisateurs pour l'ajout des profiles
préstataires aux cercles.
* HomeController.cs: implémente une page "à propos"
* T.cs: re-autorise le titre vide de page, au cas où ... car ce n'est
pas un véritable
défaut fonctionnel.
* YavscHelpers.cs: Implemente un outil de presentation des liens
action traduits. Tous les liens action utilisent maintenant cette
nouvelle methode,
au profile de celle du framework `HtmlHelpers.ActionLink`
* App.master: corrige l'usage du contrôle utilisateur des cotes dans
le cadre des cotes de billet.
* AppAdmin.master:
* Index.aspx:
* Service.aspx:
* ProductCategory.aspx: traduction des liens action
* NoLogin.master: * traduction des liens action
* suppression des liens de remerciement dans le bas de page, cette
information a été déplacée dans la page `/Home/Credits`
* to-markdown.js: transforme maintenant les noeuds Html `div` en
paragraphes Markdown.
* yavsc.hidefieldset.js: Le script règle la forme de la souris au
survol du bouton,
le cas échéant.
* yavsc.js: nouvelle fonction javascript pour logger un objet
arbitraire.
* yavsc.rate.js: Fixe la possibilité de mettre des cotes très basses
ou très hautes (reste encore un mieux à faire),
Affiche au survol des descriptions optionnelles de la cote.
* Title.aspx:
* UserPost.aspx:
* Edit.aspx:
* Index.aspx:
* Brand.aspx:
* Index.aspx:
* PostActions.ascx:
* TitleNotFound.aspx:
* Booking.aspx:
* Command.aspx:
* ChangePasswordSuccess.aspx: Traduction des liens action
* Login.aspx: * Traduction des liens actionTraduction des liens action
* Profile.aspx: * Traduction des liens actionTraduction des liens
action
* utilisation de la classe css `mayhide` qui autorise maintenant un
champ d'entrées de formulaire à être plié/déplié au click sur sa
légende.
* Admin.aspx: Traduction des liens actionTraduction des liens
actionTraduction des liens actionTraduction des liens
actionTraduction des liens actionTraduction des liens action
* Backups.aspx:
* RoleList.aspx:
* UserList.aspx:
* Index.aspx: Traduction des liens actionTraduction des liens action
* Edit.aspx: * refabrication de la structure Html
* Traduction des liens actionTraduction des liens action
* Index.aspx: Simlpification des apperçus de blog
* TagControl.ascx: refabrication pour simplifier l'implémentation du
contrôle utilisateur des tags
* UserPosts.aspx: Traduction des liens action, et simplification du
listing de blog
* Basket.aspx: Affiche les articles du panier de commandes avec leur
vue
dédiée à leur type (les commande sont maintenant fortement typées)
* Catalog.aspx: Traduction des liens action, correctin du lien vers le
produit
(cassé depuis une vielle refabrication des routes)
* DoAnEstimate.aspx: refabrication de la vue de création du devis:
renommée depuis `Estimate`
* Performer.ascx: * un message supplementaire à l'absence de
compétence affichée par un préstataire
* des guillemets autour du commentaire du préstataire sur sa
compétence
* ajout du préstataire au cercles
* Performers.aspx: Décrit en détail les informations sur la
disponibilité d'un préstataire,
à la date demandée.
* YourEstimates.aspx: renomage de cette page, pour préciser sa
fonction : Vos devis.
* Contact.aspx: structure Html de la page de contact
* Credits.aspx: Ajoute les remerciements aux communauté du libre
* Index.aspx: ne fait rien
* Web.config: * import de `System.Transactions`
* mise à jour des credits libres
* WebDeploy.targets: utilise les séparateurs de chemin vers ficher à
la POSIX, ne change rien pour ma config ... (TODO tester sous
WoinDose)
* Yavsc.csproj: déploie des pages des scripts Javascript et des images
et feuilles de style en plus.
* CircleManager.cs: implémente les methodes utilisées à la
construction du contrôle utilisateur.
* CircleProvider.cs: * doc xml
* extension de interface
* Commande.cs: l'objet `Command` devient abstrait, pour exister (être
instanciée), une commande doit maintenant hériter de cet objet
abstrait.
* LocalizedText.resx:
* LocalizedText.fr.resx:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs: traductions
* IContentProvider.cs: doc xml
* SiteSkills.aspx: renomage de cette page, pour préciser sa fonction :
les compétences sur ce site.
10 years ago
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// List the specified user.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="user">User.</param>
|
|
|
|
|
|
public static IEnumerable<CircleBase> List(string user)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (user == null)
|
|
|
|
|
|
user = HttpContext.Current.User.Identity.Name;
|
|
|
|
|
|
return DefaultProvider.List (user);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Circles the specified user and relation.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="user">User.</param>
|
|
|
|
|
|
/// <param name="relation">Relation.</param>
|
|
|
|
|
|
public static string[] Circles(string relation, string user = null )
|
|
|
|
|
|
{
|
|
|
|
|
|
if (user == null)
|
|
|
|
|
|
user = HttpContext.Current.User.Identity.Name;
|
|
|
|
|
|
return DefaultProvider.Circles (user, relation);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Lists the available circles.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns>The available circles.</returns>
|
|
|
|
|
|
/// <param name="user">User.</param>
|
|
|
|
|
|
public static string[] ListAvailableCircles (string user = null )
|
|
|
|
|
|
{
|
|
|
|
|
|
if (user == null)
|
|
|
|
|
|
user = HttpContext.Current.User.Identity.Name;
|
|
|
|
|
|
return DefaultProvider.List (user).Select (x => x.Title).ToArray();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|