refactoring

main
Paul Schneider 10 years ago
parent 1805cb3e17
commit bb5e34a61d
29 changed files with 609 additions and 272 deletions

@ -1,3 +1,9 @@
2015-10-17 Paul Schneider <paul@pschneider.fr>
* NpgsqlTagInfo.cs:
* NpgsqlBlogProvider.cs:
* NpgsqlBlogProvider.csproj:
2015-10-17 Paul Schneider <paul@pschneider.fr>
* NpgsqlBlogProvider.cs:

@ -16,10 +16,20 @@ namespace Npgsql.Web.Blog
/// </summary>
public class NpgsqlBlogProvider : BlogProvider
{
string applicationName;
string connectionString;
#region implemented abstract members of BlogProvider
/// <summary>
/// Gets the tag info.
/// </summary>
/// <returns>The tag info.</returns>
/// <param name="tagname">Tagname.</param>
public override TagInfo GetTagInfo (string tagname)
{
return new NpgsqlTagInfo (connectionString, tagname);
}
/// <summary>
/// Tag the specified post by identifier

@ -34,6 +34,7 @@
<ItemGroup>
<Compile Include="NpgsqlBlogProvider.cs" />
<Compile Include="AssemblyInfo.cs" />
<Compile Include="NpgsqlTagInfo.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Sql\" />

@ -0,0 +1,96 @@
//
// NpgsqlTagInfo.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 Yavsc.Model.Blogs;
using System.Collections.Generic;
namespace Npgsql.Web.Blog
{
/// <summary>
/// Npgsql tag info.
/// </summary>
public class NpgsqlTagInfo: TagInfo
{
/// <summary>
/// Initializes a new instance of the <see cref="Npgsql.Web.Blog.NpgsqlTagInfo"/> class.
/// </summary>
/// <param name="connectionString">Connection string.</param>
/// <param name="tagname">Tagname.</param>
public NpgsqlTagInfo (string connectionString, string tagname): base(tagname)
{
titles = new List<BasePostInfo>();
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = "SELECT \n" +
" blog.username, \n" +
" blog.posted, \n" +
" blog.modified, \n" +
" blog.title, \n" +
" blog.bcontent, \n" +
" blog.visible, \n" +
" blog._id, \n" +
" blog.photo, \n" +
" tag.name\nFROM \n" +
" public.blog, \n" +
" public.tagged, \n" +
" public.tag\nWHERE \n" +
" tagged.postid = blog._id AND \n" +
" tag._id = tagged.tagid AND \n" +
" public.tag.name = :name";
cmd.Parameters.AddWithValue ("name", tagname);
using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) {
while (rdr.Read ()) {
bool truncated;
var pi = new BasePostInfo {
Title = rdr.GetString(3),
Author = rdr.GetString (0),
Id = rdr.GetInt64 (6),
Intro = MarkdownHelper.MarkdownIntro (
rdr.GetString (4),
out truncated),
Visible = rdr.GetBoolean(5),
Photo = (!rdr.IsDBNull (7))?null:rdr.GetString (7),
Modified = rdr.GetDateTime(2),
Posted = rdr.GetDateTime(1)
};
titles.Add (pi);
}
}
}
}
List<BasePostInfo> titles;
#region implemented abstract members of TagInfo
/// <summary>
/// Gets the titles.
/// </summary>
/// <value>The titles.</value>
public override System.Collections.Generic.IEnumerable<BasePostInfo> Titles {
get {
return titles;
}
}
#endregion
}
}

@ -39,7 +39,6 @@ body.loading .modal {
}
.iconsmall { max-height: 1.3em; max-width: 1.3em; }
.photo { width: 100%; }
.blogbanner { float: left; top:0; }
.subtitle { font-size:small; font-style: italic; }
@ -96,7 +95,7 @@ legend {
footer p { display:inline-block; }
footer img { max-height: 3em; vertical-align: middle; }
a img, h1 img, .menuitem img { max-height: 1em; vertical-align: middle; }
a img, h1 img, .menuitem img { vertical-align: middle; }
#gspacer {
background-color: rgba(20,20,20,.8);
@ -275,12 +274,6 @@ input, select, textarea {
border-radius:25px;
white-space: pre-wrap;
}
.avatar {
max-width: 64px;
max-height: 64px;
}
#avatar {
float: left;
margin:1em;
@ -323,6 +316,10 @@ header {
padding-bottom:1em;
}
#avatar {
margin:.5em;
}
header h1, header a , .actionlink, .menuitem, a { padding:.5em;}
nav {

@ -1,3 +1,17 @@
2015-10-17 Paul Schneider <paul@pschneider.fr>
* Web.csproj:
* Global.asax.cs:
* yavsc.js:
* App.master:
* style.css:
* NoLogin.master:
* YavscHelpers.cs:
* TagPanel.ascx:
* UserPosts.aspx:
* AccountController.cs:
* FrontOfficeController.cs:
2015-10-17 Paul Schneider <paul@pschneider.fr>
* Web.csproj:

@ -332,7 +332,7 @@ namespace Yavsc.Controllers
UserManager.ChangeName (id, model.Name);
FormsAuthentication.SetAuthCookie (model.Name, model.RememberMe);
}
ViewData ["Message"] = "Profile enregistré"+((editsMyName)?", nom public inclu.":"");
YavscHelpers.Notify(ViewData, "Profile enregistré"+((editsMyName)?", nom public inclu.":""));
}
return View (model);
}

@ -14,6 +14,7 @@ using Yavsc.Model.FrontOffice;
using Yavsc.Model.FileSystem;
using Yavsc.Model.Calendar;
using System.Configuration;
using Yavsc.Helpers;
namespace Yavsc.Controllers
{
@ -206,7 +207,7 @@ namespace Yavsc.Controllers
ViewData ["ProdRef"] = pref;
Catalog cat = CatalogManager.GetCatalog ();
if (cat == null) {
ViewData ["Message"] = "Catalog introuvable";
YavscHelpers.Notify(ViewData, "Catalog introuvable");
ViewData ["RefType"] = "Catalog";
return View ("ReferenceNotFound");
}
@ -249,10 +250,10 @@ namespace Yavsc.Controllers
// Add specified product command to the basket,
// saves it in db
new Command(collection,HttpContext.Request.Files);
ViewData ["Message"] = LocalizedText.Item_added_to_basket;
YavscHelpers.Notify(ViewData, LocalizedText.Item_added_to_basket);
return View (collection);
} catch (Exception e) {
ViewData ["Message"] = "Exception:" + e.Message;
YavscHelpers.Notify(ViewData,"Exception:" + e.Message);
return View (collection);
}
}

@ -48,13 +48,13 @@ namespace Yavsc
routes.IgnoreRoute ("robots.txt"); // for search engine robots
routes.MapRoute (
"Titles",
"t/{title}",
"title/{title}",
new { controller = "Blogs", action = "Index",
title=UrlParameter.Optional }
);
routes.MapRoute (
"Blogs",
"b/{user}",
"blog/{user}",
new { controller = "Blogs",
action = "UserPosts",
user="Paul Schneider" }
@ -75,11 +75,6 @@ namespace Yavsc
new { controller = "Blogs", action = "Index",
postid=UrlParameter.Optional }
);
/* routes.MapRoute (
"Artistes",
"a/{artiste}",
new { controller = "Artistes", action = "Index", artiste = UrlParameter.Optional }
); */
routes.MapRoute (
"Default",
"{controller}/{action}/{id}",

@ -55,7 +55,9 @@ namespace Yavsc.Helpers
/// <param name="user">User.</param>
public static void SendActivationMessage(this System.Web.Http.Routing.UrlHelper helper, MembershipUser user)
{
SendActivationMessage (helper.Route("~/Account/Validate/",new { id=user.UserName, key=user.ProviderUserKey.ToString() } )
SendActivationMessage (helper.Route("Default", new { controller="Account",
action = "Validate",
key=user.ProviderUserKey.ToString() } )
, WebConfigurationManager.AppSettings ["RegistrationMessage"],
user);
}

@ -1,4 +1,4 @@
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" CodeBehind="App.master.cs" %>
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<asp:ContentPlaceHolder id="init" runat="server">
@ -35,20 +35,15 @@ var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
</asp:ContentPlaceHolder>
<asp:ContentPlaceHolder ID="header" runat="server"></asp:ContentPlaceHolder>
<div id="notifications"></div>
<%if (ViewData ["Notifications"]!=null) { %>
<script>
$(document).ready(function(){
<%if (ViewData ["Notifications"]!=null) { %>
<% foreach (string notice in (IEnumerable<string>) ViewData ["Notifications"] ) { %>
Yavsc.notice('<%=notice%>');
<% } %>
<% foreach (string note in (IEnumerable<string>) ViewData ["Notifications"] ) { %>
Yavsc.notice('<%=note%>');
<% } %>
$body = $("body");
$(document).on({
ajaxStart: function() { $body.addClass("loading"); },
ajaxStop: function() { $body.removeClass("loading"); }
});
});
</script>
<% } %>
</header>
<nav data-type="background" data-speed="2">
<% if (Membership.GetUser()==null) { %>
@ -71,7 +66,7 @@ $(document).on({
</a>
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Logout", returnUrl=Request.Url.PathAndQuery}) %>" accesskey = "C" class="menuitem">
<i class="fa fa-sign-out">Deconnexion</i></a>
<i class="fa fa-sign-out"><%=Html.Translate("Logout")%></i></a>
<% } %>
</nav>
<main data-type="background" data-speed="10" data-emheight="10" data-posx="0" data-posy="22" >

@ -2,64 +2,80 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<asp:ContentPlaceHolder id="init" runat="server">
</asp:ContentPlaceHolder><%
ViewState["orgtitle"] = T.GetString(Page.Title);
</asp:ContentPlaceHolder>
<% ViewState["orgtitle"] = Html.Translate(Page.Title);
Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
%><head runat="server">
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/App_Themes/style.css" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/style.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/font-awesome.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/jquery-ui.css")%>" />
<link rel="icon" type="image/png" href="/favicon.png?v=3" />
<script type="text/javascript" src="<%=Url.Content("~/Scripts/jquery-2.1.4.min.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/jquery-2.1.4.min.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/jquery-ui-1.11.4.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/parralax.js")%>"></script>
<script type="text/javascript">
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
</script>
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>">
</script>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
<link href='http://fonts.googleapis.com/css?family=Dancing+Script:400,700' rel='stylesheet' type='text/css'/>
</head>
<body>
<header>
<header data-type="background" data-speed="8" >
<asp:ContentPlaceHolder ID="overHeaderOne" runat="server">
<h1><a href="<%= Url.Content("~/") %>"> <%=ViewState["orgtitle"]%> </a> -
<a href="<%=Request.Url.Scheme + "://" + Request.Url.Authority%>"><%= YavscHelpers.SiteName %></a>
</h1>
</asp:ContentPlaceHolder><asp:ContentPlaceHolder ID="header" runat="server"></asp:ContentPlaceHolder><%
if (ViewData["Error"]!=null) {
%><div class="error"><%= Html.Encode(ViewData["Error"]) %>
</div><% }
if (ViewData["Message"]!=null) {
%><div class="message"><%= Html.Encode(ViewData["Message"]) %></div><% }
%>
<h1><a href="<%= Url.Content("~/") %>">
<%=ViewState["orgtitle"]%></a>
- <a href="<%= Url.Content("~/") %>"><%= YavscHelpers.SiteName %></a>
</h1>
</asp:ContentPlaceHolder>
<asp:ContentPlaceHolder ID="header" runat="server"></asp:ContentPlaceHolder>
<div id="notifications"></div>
<%if (ViewData ["Notifications"]!=null) { %>
<script>
$(document).ready(function(){
<% foreach (string note in (IEnumerable<string>) ViewData ["Notifications"] ) { %>
Yavsc.notice('<%=note%>');
<% } %>
});
</script>
<% } %>
</header>
<main>
<nav data-type="background" data-speed="2">
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Logout", returnUrl=Request.Url.PathAndQuery}) %>" accesskey = "C" class="menuitem">
<i class="fa fa-sign-out">Deconnexion</i></a>
</nav>
<main data-type="background" data-speed="10" data-emheight="10" data-posx="0" data-posy="22" >
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</main>
<asp:ContentPlaceHolder ID="MASContent" runat="server">
</asp:ContentPlaceHolder>
<footer>
<script src="https://apis.google.com/js/platform.js" async defer>
<footer data-type="background" data-speed="2" >
<div id="copyr">
© 2012 Totem Production. Tous droits réservés.
</div>
<div >
<p class="control">
<%= Html.ActionLink("Formulaire de contact","Contact","Home") %>
</p>
<p>
<a href="https://fr-fr.facebook.com/Brahms.Totem.officiel" ><img src="/images/facebook.png" alt="facebook"/></a>
<a href="http://twitter.com/TotemOfficiel"><img src="/images/twiter.png" alt="twiter"/></a>
</p>
<script src="https://apis.google.com/js/platform.js" defer>
{lang: 'fr'}
</script>
<%= Html.ActionLink("Contact","Contact","Home",null, new { @class="thanks" }) %>
<% foreach ( Link link in Html.Thanks()) { %>
<a class="thanks" href="<%=link.Url%>"><% if (link.Image !=null) {
%><img src="<%= link.Image %>" alt="<%= link.Text %>"/></a><%
} else { %><a class="thanks" href="<%=link.Url%>"><%= link.Text %></a><% }} %>
<div class="g-plusone" data-annotation="inline" data-width="230"></div>
</footer>
<script type="text/javascript">
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
</script> <script>
$( ".bshd" ).on("click",function(e) {
if (e.target == "[object HTMLElement]") {
var panel = $(this).children(".bshpanel");
if (panel.hasClass("hidden")) panel.css("cursor","zoom-out");
else panel.css("cursor","zoom-in");
panel.toggleClass("hidden");
$(this).children(".bsh").toggleClass("hidden");
} });
</script>
<div id="gspacer" class="control"><div class="g-plusone" data-annotation="inline" data-width="170"></div>
</div>
</div>
</footer><div class="modal"></div>
</body>
</html>

@ -63,6 +63,13 @@ return self;
})();
$(document).ready(function(){
$body = $("body");
$(document).on({
ajaxStart: function() { $body.addClass("loading"); },
ajaxStop: function() { $body.removeClass("loading"); }
});
var $window = $(window);
$(window).scroll(function() {
var $ns = $('#notifications');

@ -0,0 +1,10 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<TagInfo>" %>
<div class="panel">
<i class="fa fa-tag"><%=Model.Name%></i>
<ul>
<% foreach (BasePostInfo be in Model.Titles) { %>
<li><%= be.Title %>
<span><%= be.Intro %></span>
</li>
<% } %></ul>
</div>

@ -14,7 +14,7 @@
<h1 class="blogtitle">
<a href="<%=Url.RouteUrl( "Blogs", new { user = Model.Author } )%>">
<%=Html.Encode(ViewData["BlogTitle"])%></a>
- <a href="<%= Url.RouteUrl( "Default") %>"><%= YavscHelpers.SiteName %></a>
- <a href="<%= Url.RouteUrl( "Default", new { controller = "Home" } ) %>"><%= YavscHelpers.SiteName %></a>
</h1>
</asp:Content>

@ -434,6 +434,7 @@
<Content Include="Scripts\knockout-jqAutocomplete.js" />
<Content Include="Scripts\knockout-jqAutocomplete.min.js" />
<Content Include="Views\Blogs\PageLinks.ascx" />
<Content Include="Views\Blogs\TagPanel.ascx" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

@ -30,8 +30,6 @@ using System.ComponentModel.DataAnnotations;
namespace Yavsc.Model.Blogs
{
/// <summary>
/// Base post.
/// </summary>
@ -55,8 +53,6 @@ namespace Yavsc.Model.Blogs
}
}
/// <summary>
/// The posted.
/// </summary>
@ -139,12 +135,10 @@ namespace Yavsc.Model.Blogs
set;
}
/// <summary>
/// Gets or sets a value indicating whether this <see cref="Yavsc.Model.Blogs.BlogEntry"/> is visible.
/// </summary>
/// <value><c>true</c> if visible; otherwise, <c>false</c>.</value>
public bool Visible { get; set ; }
}
}

@ -0,0 +1,42 @@
//
// BasePostInfo.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.Configuration;
using System.Collections.Generic;
using Yavsc.Model.Blogs;
using System.Linq;
using Yavsc.Model.Circles;
namespace Yavsc.Model.Blogs
{
/// <summary>
/// Base post info.
/// </summary>
public class BasePostInfo: BasePost {
/// <summary>
/// The intro.
/// </summary>
public string Intro;
}
}

@ -18,15 +18,17 @@ namespace Yavsc.Model.Blogs
public BlogEntryCollection ()
{
}
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.Model.Blogs.BlogEntryCollection"/> class.
/// </summary>
/// <param name="items">Items.</param>
public BlogEntryCollection(IEnumerable<BlogEntry> items)
public BlogEntryCollection (IEnumerable<BlogEntry> items)
{
if (items!=null)
if (items != null)
this.AddRange (items);
}
/// <summary>
/// Returns a <see cref="System.String"/> that represents the current <see cref="Yavsc.Model.Blogs.BlogEntryCollection"/>.
/// </summary>
@ -57,115 +59,81 @@ namespace Yavsc.Model.Blogs
{
return this.Where (x => x.Title == title).ToArray ();
}
/// <summary>
/// Filters the current collection for a given user by its name.
/// Assumes that this user is not an author of any of these posts.
/// </summary>
/// <param name="username">Username.</param>
public BlogEntryCollection FilterFor(string username)
public BlogEntryCollection FilterFor (string username)
{
BlogEntryCollection res = new BlogEntryCollection ();
foreach (BlogEntry be in this) {
if (be.Visible &&
(be.AllowedCircles == null ||
(username!= null && CircleManager.DefaultProvider.Matches
(be.AllowedCircles,username))))
{
res.Add(be);
}
(be.AllowedCircles == null ||
(username != null && CircleManager.DefaultProvider.Matches
(be.AllowedCircles, username)))) {
res.Add (be);
}
}
return res;
}
/// <summary>
/// Base post info.
/// </summary>
public class BasePostInfo: BasePost {
/// <summary>
/// The intro.
/// </summary>
public string Intro;
}
/// <summary>
/// Post info.
/// </summary>
public class PostInfoByTitle : BasePostInfo {
/// <summary>
/// The name of the user.
/// </summary>
public string Author;
}
/// <summary>
/// Post info by user.
/// </summary>
public class PostInfoByUser : BasePostInfo {
/// <summary>
/// The name of the user.
/// </summary>
public string Title;
}
/// <summary>
/// Groups by title.
/// </summary>
public IEnumerable<IGrouping<string,PostInfoByTitle>> GroupByTitle()
public IEnumerable<IGrouping<string,PostInfoByTitle>> GroupByTitle ()
{
bool truncated;
return from be in this
orderby be.Posted descending
group
new PostInfoByTitle { Author=be.Author, Id=be.Id,
Posted=be.Posted, Modified=be.Modified,
Intro = MarkdownHelper.MarkdownIntro(be.Content, out truncated),
group
new PostInfoByTitle { Author = be.Author, Id = be.Id,
Posted = be.Posted, Modified = be.Modified,
Intro = MarkdownHelper.MarkdownIntro (be.Content, out truncated),
Visible = be.Visible,
Photo = be.Photo
}
by be.Title
into titlegroup
select titlegroup;
select titlegroup;
}
/// <summary>
/// Groups by user.
/// </summary>
/// <returns>The by user.</returns>
public IEnumerable<IGrouping<string,PostInfoByUser>> GroupByUser()
public IEnumerable<IGrouping<string,PostInfoByUser>> GroupByUser ()
{
bool truncated;
return from be in this
orderby be.Posted descending
group
new PostInfoByUser {
Title=be.Title,
Id=be.Id,
Posted=be.Posted,
Modified=be.Modified,
Intro = MarkdownHelper.MarkdownIntro(be.Content, out truncated) ,
group
new PostInfoByUser {
Title = be.Title,
Id = be.Id,
Posted = be.Posted,
Modified = be.Modified,
Intro = MarkdownHelper.MarkdownIntro (be.Content, out truncated),
Photo = be.Photo,
Visible = be.Visible
}
by be.Author
into usergroup
select usergroup;
select usergroup;
}
/// <summary>
/// Gets the titles.
/// </summary>
/// <value>The titles.</value>
public string[] Titles { get {
public string[] Titles {
get {
string[] result = this.Select (x => x.Title).Distinct ().ToArray ();
if (result == null)
return new string[0];
return result;
} }
}
}
}
}

@ -19,6 +19,8 @@ namespace Yavsc.Model.Blogs
/// <param name="postid">Postid.</param>
public abstract BlogEntry GetPost (long postid);
public abstract TagInfo GetTagInfo (string tagname);
/// <summary>
/// Gets the post collection from a given user and at a given title.
/// </summary>

@ -0,0 +1,44 @@
//
// PostInfoByTitle.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.Configuration;
using System.Collections.Generic;
using Yavsc.Model.Blogs;
using System.Linq;
using Yavsc.Model.Circles;
namespace Yavsc.Model.Blogs
{
/// <summary>
/// Post info.
/// </summary>
public class PostInfoByTitle : BasePostInfo {
/// <summary>
/// The name of the user.
/// </summary>
public string Author;
}
}

@ -0,0 +1,43 @@
//
// PostInfoByUser.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.Configuration;
using System.Collections.Generic;
using Yavsc.Model.Blogs;
using System.Linq;
using Yavsc.Model.Circles;
namespace Yavsc.Model.Blogs
{
/// <summary>
/// Post info by user.
/// </summary>
public class PostInfoByUser : BasePostInfo {
/// <summary>
/// The name of the user.
/// </summary>
public string Title;
}
}

@ -0,0 +1,60 @@
//
// TagInfo.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.Collections.Generic;
namespace Yavsc.Model.Blogs
{
/// <summary>
/// Tag info.
/// </summary>
public abstract class TagInfo
{
string name;
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>The name.</value>
public string Name {
get {
return name;
}
set {
name = value;
}
}
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.Model.Blogs.TagInfo"/> class.
/// </summary>
/// <param name="tagname">Tagname.</param>
public TagInfo (string tagname)
{
Name = tagname;
}
/// <summary>
/// Gets the titles.
/// </summary>
/// <value>The titles.</value>
public abstract IEnumerable<BasePostInfo> Titles { get; }
}
}

@ -1,3 +1,18 @@
2015-10-17 Paul Schneider <paul@pschneider.fr>
* TagInfo.cs:
* YavscModel.csproj:
* BasePost.cs:
* LocalizedText.resx:
* LocalizedText.fr.resx:
* BlogProvider.cs:
* BasePostInfo.cs:
* PostInfoByUser.cs:
* PostInfoByTitle.cs:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs:
* BlogEntryCollection.cs:
2015-10-17 Paul Schneider <paul@pschneider.fr>
* PostTag.cs:

@ -64,6 +64,12 @@ namespace Yavsc.Model {
}
}
public static string Location {
get {
return ResourceManager.GetString("Location", resourceCulture);
}
}
public static string Circles {
get {
return ResourceManager.GetString("Circles", resourceCulture);
@ -250,9 +256,9 @@ namespace Yavsc.Model {
}
}
public static string Location {
public static string Tag_name {
get {
return ResourceManager.GetString("Location", resourceCulture);
return ResourceManager.GetString("Tag_name", resourceCulture);
}
}
@ -280,9 +286,9 @@ namespace Yavsc.Model {
}
}
public static string Tag_name {
public static string Logout {
get {
return ResourceManager.GetString("Tag_name", resourceCulture);
return ResourceManager.GetString("Logout", resourceCulture);
}
}

@ -46,387 +46,393 @@ namespace Yavsc.Model {
}
}
public static string was_added_to_the_empty_role {
public static string EventWebPage {
get {
return ResourceManager.GetString("was_added_to_the_empty_role", resourceCulture);
return ResourceManager.GetString("EventWebPage", resourceCulture);
}
}
public static string Bill_edition {
public static string ProviderId {
get {
return ResourceManager.GetString("Bill_edition", resourceCulture);
return ResourceManager.GetString("ProviderId", resourceCulture);
}
}
public static string Tex_version {
public static string Pdf_version {
get {
return ResourceManager.GetString("Tex_version", resourceCulture);
return ResourceManager.GetString("Pdf_version", resourceCulture);
}
}
public static string Message_sent {
public static string Location {
get {
return ResourceManager.GetString("Message_sent", resourceCulture);
return ResourceManager.GetString("Location", resourceCulture);
}
}
public static string Count {
public static string Circles {
get {
return ResourceManager.GetString("Count", resourceCulture);
return ResourceManager.GetString("Circles", resourceCulture);
}
}
public static string Create {
public static string Preview {
get {
return ResourceManager.GetString("Create", resourceCulture);
return ResourceManager.GetString("Preview", resourceCulture);
}
}
public static string Description {
public static string DisplayName {
get {
return ResourceManager.GetString("Description", resourceCulture);
return ResourceManager.GetString("DisplayName", resourceCulture);
}
}
public static string Profile_edition {
public static string none {
get {
return ResourceManager.GetString("Profile_edition", resourceCulture);
return ResourceManager.GetString("none", resourceCulture);
}
}
public static string Title {
public static string Count {
get {
return ResourceManager.GetString("Title", resourceCulture);
return ResourceManager.GetString("Count", resourceCulture);
}
}
public static string My_Estimates {
public static string ProviderName {
get {
return ResourceManager.GetString("My_Estimates", resourceCulture);
return ResourceManager.GetString("ProviderName", resourceCulture);
}
}
public static string Google_error {
public static string Not_Approuved {
get {
return ResourceManager.GetString("Google_error", resourceCulture);
return ResourceManager.GetString("Not Approuved", resourceCulture);
}
}
public static string StartDate {
public static string User_name {
get {
return ResourceManager.GetString("StartDate", resourceCulture);
return ResourceManager.GetString("User_name", resourceCulture);
}
}
public static string no_content {
public static string Estimate_not_found {
get {
return ResourceManager.GetString("no_content", resourceCulture);
return ResourceManager.GetString("Estimate_not_found", resourceCulture);
}
}
public static string View_source {
public static string Members {
get {
return ResourceManager.GetString("View_source", resourceCulture);
return ResourceManager.GetString("Members", resourceCulture);
}
}
public static string Ciffer {
public static string Google_calendar {
get {
return ResourceManager.GetString("Ciffer", resourceCulture);
return ResourceManager.GetString("Google_calendar", resourceCulture);
}
}
public static string Modify {
public static string younotadmin {
get {
return ResourceManager.GetString("Modify", resourceCulture);
return ResourceManager.GetString("younotadmin", resourceCulture);
}
}
public static string MaxDate {
public static string was_added_to_the_empty_role {
get {
return ResourceManager.GetString("MaxDate", resourceCulture);
return ResourceManager.GetString("was_added_to_the_empty_role", resourceCulture);
}
}
public static string New_Tag {
public static string access_denied {
get {
return ResourceManager.GetString("New_Tag", resourceCulture);
return ResourceManager.GetString("access_denied", resourceCulture);
}
}
public static string ProviderName {
public static string Ciffer {
get {
return ResourceManager.GetString("ProviderName", resourceCulture);
return ResourceManager.GetString("Ciffer", resourceCulture);
}
}
public static string Date_search {
public static string Create {
get {
return ResourceManager.GetString("Date_search", resourceCulture);
return ResourceManager.GetString("Create", resourceCulture);
}
}
public static string Members {
public static string Submit {
get {
return ResourceManager.GetString("Members", resourceCulture);
return ResourceManager.GetString("Submit", resourceCulture);
}
}
public static string ImportException {
public static string ImgLocator {
get {
return ResourceManager.GetString("ImportException", resourceCulture);
return ResourceManager.GetString("ImgLocator", resourceCulture);
}
}
public static string Preview {
public static string entries {
get {
return ResourceManager.GetString("Preview", resourceCulture);
return ResourceManager.GetString("entries", resourceCulture);
}
}
public static string Register {
public static string Description {
get {
return ResourceManager.GetString("Register", resourceCulture);
return ResourceManager.GetString("Description", resourceCulture);
}
}
public static string Hide_source {
public static string Google_error {
get {
return ResourceManager.GetString("Hide_source", resourceCulture);
return ResourceManager.GetString("Google_error", resourceCulture);
}
}
public static string access_denied {
public static string Comment {
get {
return ResourceManager.GetString("access_denied", resourceCulture);
return ResourceManager.GetString("Comment", resourceCulture);
}
}
public static string DoTag {
public static string Tex_version {
get {
return ResourceManager.GetString("DoTag", resourceCulture);
return ResourceManager.GetString("Tex_version", resourceCulture);
}
}
public static string Product_reference {
public static string Item_added_to_basket {
get {
return ResourceManager.GetString("Product_reference", resourceCulture);
return ResourceManager.GetString("Item_added_to_basket", resourceCulture);
}
}
public static string EndDate {
public static string ImportException {
get {
return ResourceManager.GetString("EndDate", resourceCulture);
return ResourceManager.GetString("ImportException", resourceCulture);
}
}
public static string Google_calendar {
public static string Product_reference {
get {
return ResourceManager.GetString("Google_calendar", resourceCulture);
return ResourceManager.GetString("Product_reference", resourceCulture);
}
}
public static string Consultant {
public static string Hide {
get {
return ResourceManager.GetString("Consultant", resourceCulture);
return ResourceManager.GetString("Hide", resourceCulture);
}
}
public static string EventWebPage {
public static string Register {
get {
return ResourceManager.GetString("EventWebPage", resourceCulture);
return ResourceManager.GetString("Register", resourceCulture);
}
}
public static string User_List {
public static string Tag_name {
get {
return ResourceManager.GetString("User List", resourceCulture);
return ResourceManager.GetString("Tag_name", resourceCulture);
}
}
public static string ImgLocator {
public static string New_Tag {
get {
return ResourceManager.GetString("ImgLocator", resourceCulture);
return ResourceManager.GetString("New_Tag", resourceCulture);
}
}
public static string Submit {
public static string Modify {
get {
return ResourceManager.GetString("Submit", resourceCulture);
return ResourceManager.GetString("Modify", resourceCulture);
}
}
public static string Not_Approuved {
public static string Remove {
get {
return ResourceManager.GetString("Not Approuved", resourceCulture);
return ResourceManager.GetString("Remove", resourceCulture);
}
}
public static string Remember_me {
public static string Title {
get {
return ResourceManager.GetString("Remember_me", resourceCulture);
return ResourceManager.GetString("Title", resourceCulture);
}
}
public static string DocTemplateException {
public static string Logout {
get {
return ResourceManager.GetString("DocTemplateException", resourceCulture);
return ResourceManager.GetString("Logout", resourceCulture);
}
}
public static string Unitary_cost {
public static string Message_sent {
get {
return ResourceManager.GetString("Unitary_cost", resourceCulture);
return ResourceManager.GetString("Message_sent", resourceCulture);
}
}
public static string Circles {
public static string Offline {
get {
return ResourceManager.GetString("Circles", resourceCulture);
return ResourceManager.GetString("Offline", resourceCulture);
}
}
public static string Location {
public static string Bill_edition {
get {
return ResourceManager.GetString("Location", resourceCulture);
return ResourceManager.GetString("Bill_edition", resourceCulture);
}
}
public static string Tag_name {
public static string InternalServerError {
get {
return ResourceManager.GetString("Tag_name", resourceCulture);
return ResourceManager.GetString("InternalServerError", resourceCulture);
}
}
public static string Remove {
public static string MaxDate {
get {
return ResourceManager.GetString("Remove", resourceCulture);
return ResourceManager.GetString("MaxDate", resourceCulture);
}
}
public static string none {
public static string Welcome {
get {
return ResourceManager.GetString("none", resourceCulture);
return ResourceManager.GetString("Welcome", resourceCulture);
}
}
public static string Hide {
public static string Edit {
get {
return ResourceManager.GetString("Hide", resourceCulture);
return ResourceManager.GetString("Edit", resourceCulture);
}
}
public static string Estimate_not_found {
public static string Date_search {
get {
return ResourceManager.GetString("Estimate_not_found", resourceCulture);
return ResourceManager.GetString("Date_search", resourceCulture);
}
}
public static string ProviderId {
public static string View_source {
get {
return ResourceManager.GetString("ProviderId", resourceCulture);
return ResourceManager.GetString("View_source", resourceCulture);
}
}
public static string Welcome {
public static string role_created {
get {
return ResourceManager.GetString("Welcome", resourceCulture);
return ResourceManager.GetString("role_created", resourceCulture);
}
}
public static string Online {
public static string ReadMore {
get {
return ResourceManager.GetString("Online", resourceCulture);
return ResourceManager.GetString("ReadMore", resourceCulture);
}
}
public static string Home {
public static string EndDate {
get {
return ResourceManager.GetString("Home", resourceCulture);
return ResourceManager.GetString("EndDate", resourceCulture);
}
}
public static string Offline {
public static string MinDate {
get {
return ResourceManager.GetString("Offline", resourceCulture);
return ResourceManager.GetString("MinDate", resourceCulture);
}
}
public static string MinDate {
public static string Remember_me {
get {
return ResourceManager.GetString("MinDate", resourceCulture);
return ResourceManager.GetString("Remember_me", resourceCulture);
}
}
public static string Comment {
public static string Home {
get {
return ResourceManager.GetString("Comment", resourceCulture);
return ResourceManager.GetString("Home", resourceCulture);
}
}
public static string User_name {
public static string Consultant {
get {
return ResourceManager.GetString("User_name", resourceCulture);
return ResourceManager.GetString("Consultant", resourceCulture);
}
}
public static string DisplayName {
public static string was_added_to_the_role {
get {
return ResourceManager.GetString("DisplayName", resourceCulture);
return ResourceManager.GetString("was_added_to_the_role", resourceCulture);
}
}
public static string Pdf_version {
public static string DoTag {
get {
return ResourceManager.GetString("Pdf_version", resourceCulture);
return ResourceManager.GetString("DoTag", resourceCulture);
}
}
public static string ReadMore {
public static string DocTemplateException {
get {
return ResourceManager.GetString("ReadMore", resourceCulture);
return ResourceManager.GetString("DocTemplateException", resourceCulture);
}
}
public static string younotadmin {
public static string no_content {
get {
return ResourceManager.GetString("younotadmin", resourceCulture);
return ResourceManager.GetString("no_content", resourceCulture);
}
}
public static string Item_added_to_basket {
public static string Unitary_cost {
get {
return ResourceManager.GetString("Item_added_to_basket", resourceCulture);
return ResourceManager.GetString("Unitary_cost", resourceCulture);
}
}
public static string role_created {
public static string Online {
get {
return ResourceManager.GetString("role_created", resourceCulture);
return ResourceManager.GetString("Online", resourceCulture);
}
}
public static string Edit {
public static string StartDate {
get {
return ResourceManager.GetString("Edit", resourceCulture);
return ResourceManager.GetString("StartDate", resourceCulture);
}
}
public static string InternalServerError {
public static string Hide_source {
get {
return ResourceManager.GetString("InternalServerError", resourceCulture);
return ResourceManager.GetString("Hide_source", resourceCulture);
}
}
public static string entries {
public static string User_List {
get {
return ResourceManager.GetString("entries", resourceCulture);
return ResourceManager.GetString("User List", resourceCulture);
}
}
public static string was_added_to_the_role {
public static string Profile_edition {
get {
return ResourceManager.GetString("was_added_to_the_role", resourceCulture);
return ResourceManager.GetString("Profile_edition", resourceCulture);
}
}
public static string My_Estimates {
get {
return ResourceManager.GetString("My_Estimates", resourceCulture);
}
}
}

@ -41,6 +41,7 @@
<data name="InternalServerError"><value>Erreur serveur interne</value></data>
<data name="Item_added_to_basket"><value>Article ajouté au panier</value></data>
<data name="Location"><value>Lieu</value></data>
<data name="Logout"><value>Déconnection</value></data>
<data name="MaxDate"><value>Date maximale du rendez-vous</value></data>
<data name="Members"><value>Membres</value></data>
<data name="Message_sent"><value>Votre message a été envoyé</value></data>

@ -43,6 +43,7 @@
<data name="ImportException"><value>Exception at importing</value></data>
<data name="Item_added_to_basket"><value>Item added to basket</value></data>
<data name="Location"><value>Location</value></data>
<data name="Logout"><value>Logout</value></data>
<data name="MaxDate"><value>Maximal date for the rendez-vous</value></data>
<data name="Members"><value>Members</value></data>
<data name="Message_sent"><value>Your message has been sent.</value></data>

@ -174,6 +174,10 @@
<Compile Include="Blogs\UTBlogEntryCollection.cs" />
<Compile Include="Blogs\BasePost.cs" />
<Compile Include="Blogs\PostTag.cs" />
<Compile Include="Blogs\BasePostInfo.cs" />
<Compile Include="Blogs\PostInfoByTitle.cs" />
<Compile Include="Blogs\PostInfoByUser.cs" />
<Compile Include="Blogs\TagInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>

Loading…