yavsc/web/ApiControllers/BlogsController.cs

287 lines
8.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
11 years ago
using System.Web.Http;
using Npgsql.Web.Blog;
11 years ago
using Yavsc.Model.Blogs;
* bg.gif: * asc.gif: * desc.gif: * style.css: moved to App_Themes * style.css: * bg.gif: * asc.gif: * bg.png: * rect.png: * asc.png: * desc.gif: * jquery-ui.css: * mdd_styles.css: * croix.png: * desc.png: * style.css: * jquery-ui.min.css: * mdd_gripper.png: * mdd_toolbar.png: * jquery.timepicker.css: * mdd_ajax_loader.gif: * mdd_modal_background.png: moved to /App_Themes * NpgsqlBlogProvider.cs: * Remove post by id * Manage collections of entries on a couple (user,title), not a single post * NpgsqlCircleProvider.cs: Fixes the "Match" method. * IDbModule.cs: * Edit.aspx: * Estimates.aspx: * WorkFlowManager.cs: * NpgsqlContentProvider.cs: refactoring * NpgsqlMRPProviders.csproj: new NpgsqlUserName provider * NpgsqlRoleProvider.cs: simpler init method * NpgsqlUserNameProvider.cs: impements a UserNameProvider * MyClass.cs: refactoring from Yavsc.Model * BlogsController.cs: access control simplified * FrontOfficeController.cs: Pdf generation made public ni case of formatting exception * mdd_styles.css: Theme -> App_Themes * style.css: yet another style impact * AccountController.cs: Fixes the user name modification * BlogsController.cs: * Fixes the removal process * On a title and user name, we get collection of posts, not only one. * Implements an Access on circle * FrontOfficeController.cs: * implements a new Get method. * ensure a membership existence before delivering an estimate. * GoogleController.cs: Fixes the user name modification on a Google account * ErrorHtmlFormatter.cs: nice error message in html (using Markdown helper) * FormatterException.cs: formatter exception exposes error and standard output of the process * TexToPdfFormatter.cs: * generates temporary files in the folder returned by Path.GetTempPath() * throws FormatterException * Global.asax.cs: new route map: Blogs/{action}/{user}/{title} Blog/{user}/{title} B/{id} {controller}/{action}/{id} * App.master: * refactoring: Theme moved to App_Themes * a link to the logged user's blog * * NoLogin.master: refactoring: Theme moved to App_Themes * Circles.aspx: refactoring : circles now are given as select items * Login.aspx: fixes the html presentation * Register.aspx: Fixes a Typo * Index.aspx: Implements a blog index, due to M&C changes with this commit * RemovePost.aspx: links to the new route to the "RemovePost" action, giving it a post id * RemoveTitle.aspx: fixes a not yet linked page to remove a post collection under a given title * EventPub.aspx: code refactoring * Writting.ascx: cleans the code * Web.config: fills the config with new names in the space * Web.config: configures the new NpgsqlUserNameProvider * Web.csproj: refactoring and others * BlogEntryCollection.cs: implement the BlogEntryCollection * BlogManager.cs: the manager helps to filter on access * BlogProvider.cs: The title is not unique anymore, and one can modify it, post a lot under it, drop all posts under it. A Post is deleted by id. * UUBlogEntryCollection.cs: implements a collection of post under a given user name. * UUTBlogEntryCollection.cs: implements a collection of post under a given couple (user name, title). * ListItem.cs: ListItem is declared obsolete in this model, helpers can build MVC SelectListItem on data returned by the manager. * LocalizedText.Designer.cs: * LocalizedText.fr.Designer.cs: autogenerated from xml * LocalizedText.resx: * LocalizedText.fr.resx: new labels * ChangeUserNameProvider.cs: xml doc * Profile.cs: the UserName property is read only, and comes from authentication, to change it, we set a Name and validate it agains the "Profile" method * UserManager.cs: simpler code a init time * IContentProvider.cs: implements the new IDataProvider interface * IDataProvider.cs: defines the new IDataProvider interface * YavscModel.csproj: includes new classes * UserPosts.aspx: adds a link to remove a post * UserPost.aspx: now uses the new BlogEntryCollection object
10 years ago
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using System.Diagnostics;
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
using Yavsc.Formatters;
using Yavsc.Model;
11 years ago
namespace Yavsc.ApiControllers
{
/// <summary>
/// Blogs API controller.
/// </summary>
public class BlogsController : YavscController
{
/// <summary>
10 years ago
/// Tag the specified model.
/// </summary>
10 years ago
/// <param name="model">Model.</param>
[Authorize,
AcceptVerbs ("POST")]
public void Tag (PostTag model) {
if (ModelState.IsValid) {
BlogManager.GetForEditing (model.PostId);
BlogManager.Tag (model.PostId, model.Tag);
}
}
10 years ago
static string [] officalTags = new string[] { "Artistes", "Accueil", "Événements", "Mentions légales", "Admin", "Web" } ;
/// <summary>
/// Tags the specified pattern.
/// </summary>
/// <param name="pattern">Pattern.</param>
[ValidateAjaxAttribute]
public IEnumerable<string> Tags(string pattern)
{
10 years ago
return officalTags;
}
/// <summary>
10 years ago
/// Untag the specified model.
/// </summary>
10 years ago
/// <param name="model">Model.</param>
[Authorize,
AcceptVerbs ("POST")]
public void Untag (PostTag model) {
if (ModelState.IsValid) {
BlogManager.GetForEditing (model.PostId);
BlogManager.Untag (model.PostId, model.Tag);
}
}
* bg.gif: * asc.gif: * desc.gif: * style.css: moved to App_Themes * style.css: * bg.gif: * asc.gif: * bg.png: * rect.png: * asc.png: * desc.gif: * jquery-ui.css: * mdd_styles.css: * croix.png: * desc.png: * style.css: * jquery-ui.min.css: * mdd_gripper.png: * mdd_toolbar.png: * jquery.timepicker.css: * mdd_ajax_loader.gif: * mdd_modal_background.png: moved to /App_Themes * NpgsqlBlogProvider.cs: * Remove post by id * Manage collections of entries on a couple (user,title), not a single post * NpgsqlCircleProvider.cs: Fixes the "Match" method. * IDbModule.cs: * Edit.aspx: * Estimates.aspx: * WorkFlowManager.cs: * NpgsqlContentProvider.cs: refactoring * NpgsqlMRPProviders.csproj: new NpgsqlUserName provider * NpgsqlRoleProvider.cs: simpler init method * NpgsqlUserNameProvider.cs: impements a UserNameProvider * MyClass.cs: refactoring from Yavsc.Model * BlogsController.cs: access control simplified * FrontOfficeController.cs: Pdf generation made public ni case of formatting exception * mdd_styles.css: Theme -> App_Themes * style.css: yet another style impact * AccountController.cs: Fixes the user name modification * BlogsController.cs: * Fixes the removal process * On a title and user name, we get collection of posts, not only one. * Implements an Access on circle * FrontOfficeController.cs: * implements a new Get method. * ensure a membership existence before delivering an estimate. * GoogleController.cs: Fixes the user name modification on a Google account * ErrorHtmlFormatter.cs: nice error message in html (using Markdown helper) * FormatterException.cs: formatter exception exposes error and standard output of the process * TexToPdfFormatter.cs: * generates temporary files in the folder returned by Path.GetTempPath() * throws FormatterException * Global.asax.cs: new route map: Blogs/{action}/{user}/{title} Blog/{user}/{title} B/{id} {controller}/{action}/{id} * App.master: * refactoring: Theme moved to App_Themes * a link to the logged user's blog * * NoLogin.master: refactoring: Theme moved to App_Themes * Circles.aspx: refactoring : circles now are given as select items * Login.aspx: fixes the html presentation * Register.aspx: Fixes a Typo * Index.aspx: Implements a blog index, due to M&C changes with this commit * RemovePost.aspx: links to the new route to the "RemovePost" action, giving it a post id * RemoveTitle.aspx: fixes a not yet linked page to remove a post collection under a given title * EventPub.aspx: code refactoring * Writting.ascx: cleans the code * Web.config: fills the config with new names in the space * Web.config: configures the new NpgsqlUserNameProvider * Web.csproj: refactoring and others * BlogEntryCollection.cs: implement the BlogEntryCollection * BlogManager.cs: the manager helps to filter on access * BlogProvider.cs: The title is not unique anymore, and one can modify it, post a lot under it, drop all posts under it. A Post is deleted by id. * UUBlogEntryCollection.cs: implements a collection of post under a given user name. * UUTBlogEntryCollection.cs: implements a collection of post under a given couple (user name, title). * ListItem.cs: ListItem is declared obsolete in this model, helpers can build MVC SelectListItem on data returned by the manager. * LocalizedText.Designer.cs: * LocalizedText.fr.Designer.cs: autogenerated from xml * LocalizedText.resx: * LocalizedText.fr.resx: new labels * ChangeUserNameProvider.cs: xml doc * Profile.cs: the UserName property is read only, and comes from authentication, to change it, we set a Name and validate it agains the "Profile" method * UserManager.cs: simpler code a init time * IContentProvider.cs: implements the new IDataProvider interface * IDataProvider.cs: defines the new IDataProvider interface * YavscModel.csproj: includes new classes * UserPosts.aspx: adds a link to remove a post * UserPost.aspx: now uses the new BlogEntryCollection object
10 years ago
/// <summary>
/// Removes the post.
/// </summary>
/// <param name="user">User.</param>
/// <param name="title">Title.</param>
[Authorize, ValidateAjaxAttribute, HttpPost]
public void RemoveTitle(string user, string title) {
if (Membership.GetUser ().UserName != user)
if (!Roles.IsUserInRole("Admin"))
throw new AuthorizationDenied (user);
* bg.gif: * asc.gif: * desc.gif: * style.css: moved to App_Themes * style.css: * bg.gif: * asc.gif: * bg.png: * rect.png: * asc.png: * desc.gif: * jquery-ui.css: * mdd_styles.css: * croix.png: * desc.png: * style.css: * jquery-ui.min.css: * mdd_gripper.png: * mdd_toolbar.png: * jquery.timepicker.css: * mdd_ajax_loader.gif: * mdd_modal_background.png: moved to /App_Themes * NpgsqlBlogProvider.cs: * Remove post by id * Manage collections of entries on a couple (user,title), not a single post * NpgsqlCircleProvider.cs: Fixes the "Match" method. * IDbModule.cs: * Edit.aspx: * Estimates.aspx: * WorkFlowManager.cs: * NpgsqlContentProvider.cs: refactoring * NpgsqlMRPProviders.csproj: new NpgsqlUserName provider * NpgsqlRoleProvider.cs: simpler init method * NpgsqlUserNameProvider.cs: impements a UserNameProvider * MyClass.cs: refactoring from Yavsc.Model * BlogsController.cs: access control simplified * FrontOfficeController.cs: Pdf generation made public ni case of formatting exception * mdd_styles.css: Theme -> App_Themes * style.css: yet another style impact * AccountController.cs: Fixes the user name modification * BlogsController.cs: * Fixes the removal process * On a title and user name, we get collection of posts, not only one. * Implements an Access on circle * FrontOfficeController.cs: * implements a new Get method. * ensure a membership existence before delivering an estimate. * GoogleController.cs: Fixes the user name modification on a Google account * ErrorHtmlFormatter.cs: nice error message in html (using Markdown helper) * FormatterException.cs: formatter exception exposes error and standard output of the process * TexToPdfFormatter.cs: * generates temporary files in the folder returned by Path.GetTempPath() * throws FormatterException * Global.asax.cs: new route map: Blogs/{action}/{user}/{title} Blog/{user}/{title} B/{id} {controller}/{action}/{id} * App.master: * refactoring: Theme moved to App_Themes * a link to the logged user's blog * * NoLogin.master: refactoring: Theme moved to App_Themes * Circles.aspx: refactoring : circles now are given as select items * Login.aspx: fixes the html presentation * Register.aspx: Fixes a Typo * Index.aspx: Implements a blog index, due to M&C changes with this commit * RemovePost.aspx: links to the new route to the "RemovePost" action, giving it a post id * RemoveTitle.aspx: fixes a not yet linked page to remove a post collection under a given title * EventPub.aspx: code refactoring * Writting.ascx: cleans the code * Web.config: fills the config with new names in the space * Web.config: configures the new NpgsqlUserNameProvider * Web.csproj: refactoring and others * BlogEntryCollection.cs: implement the BlogEntryCollection * BlogManager.cs: the manager helps to filter on access * BlogProvider.cs: The title is not unique anymore, and one can modify it, post a lot under it, drop all posts under it. A Post is deleted by id. * UUBlogEntryCollection.cs: implements a collection of post under a given user name. * UUTBlogEntryCollection.cs: implements a collection of post under a given couple (user name, title). * ListItem.cs: ListItem is declared obsolete in this model, helpers can build MVC SelectListItem on data returned by the manager. * LocalizedText.Designer.cs: * LocalizedText.fr.Designer.cs: autogenerated from xml * LocalizedText.resx: * LocalizedText.fr.resx: new labels * ChangeUserNameProvider.cs: xml doc * Profile.cs: the UserName property is read only, and comes from authentication, to change it, we set a Name and validate it agains the "Profile" method * UserManager.cs: simpler code a init time * IContentProvider.cs: implements the new IDataProvider interface * IDataProvider.cs: defines the new IDataProvider interface * YavscModel.csproj: includes new classes * UserPosts.aspx: adds a link to remove a post * UserPost.aspx: now uses the new BlogEntryCollection object
10 years ago
BlogManager.RemoveTitle (user, title);
}
/// <summary>
/// Removes the tag.
/// </summary>
/// <param name="tagid">Tagid.</param>
[Authorize, ValidateAjaxAttribute, HttpPost]
public void RemoveTag([FromBody] long tagid) {
* bg.gif: * asc.gif: * desc.gif: * style.css: moved to App_Themes * style.css: * bg.gif: * asc.gif: * bg.png: * rect.png: * asc.png: * desc.gif: * jquery-ui.css: * mdd_styles.css: * croix.png: * desc.png: * style.css: * jquery-ui.min.css: * mdd_gripper.png: * mdd_toolbar.png: * jquery.timepicker.css: * mdd_ajax_loader.gif: * mdd_modal_background.png: moved to /App_Themes * NpgsqlBlogProvider.cs: * Remove post by id * Manage collections of entries on a couple (user,title), not a single post * NpgsqlCircleProvider.cs: Fixes the "Match" method. * IDbModule.cs: * Edit.aspx: * Estimates.aspx: * WorkFlowManager.cs: * NpgsqlContentProvider.cs: refactoring * NpgsqlMRPProviders.csproj: new NpgsqlUserName provider * NpgsqlRoleProvider.cs: simpler init method * NpgsqlUserNameProvider.cs: impements a UserNameProvider * MyClass.cs: refactoring from Yavsc.Model * BlogsController.cs: access control simplified * FrontOfficeController.cs: Pdf generation made public ni case of formatting exception * mdd_styles.css: Theme -> App_Themes * style.css: yet another style impact * AccountController.cs: Fixes the user name modification * BlogsController.cs: * Fixes the removal process * On a title and user name, we get collection of posts, not only one. * Implements an Access on circle * FrontOfficeController.cs: * implements a new Get method. * ensure a membership existence before delivering an estimate. * GoogleController.cs: Fixes the user name modification on a Google account * ErrorHtmlFormatter.cs: nice error message in html (using Markdown helper) * FormatterException.cs: formatter exception exposes error and standard output of the process * TexToPdfFormatter.cs: * generates temporary files in the folder returned by Path.GetTempPath() * throws FormatterException * Global.asax.cs: new route map: Blogs/{action}/{user}/{title} Blog/{user}/{title} B/{id} {controller}/{action}/{id} * App.master: * refactoring: Theme moved to App_Themes * a link to the logged user's blog * * NoLogin.master: refactoring: Theme moved to App_Themes * Circles.aspx: refactoring : circles now are given as select items * Login.aspx: fixes the html presentation * Register.aspx: Fixes a Typo * Index.aspx: Implements a blog index, due to M&C changes with this commit * RemovePost.aspx: links to the new route to the "RemovePost" action, giving it a post id * RemoveTitle.aspx: fixes a not yet linked page to remove a post collection under a given title * EventPub.aspx: code refactoring * Writting.ascx: cleans the code * Web.config: fills the config with new names in the space * Web.config: configures the new NpgsqlUserNameProvider * Web.csproj: refactoring and others * BlogEntryCollection.cs: implement the BlogEntryCollection * BlogManager.cs: the manager helps to filter on access * BlogProvider.cs: The title is not unique anymore, and one can modify it, post a lot under it, drop all posts under it. A Post is deleted by id. * UUBlogEntryCollection.cs: implements a collection of post under a given user name. * UUTBlogEntryCollection.cs: implements a collection of post under a given couple (user name, title). * ListItem.cs: ListItem is declared obsolete in this model, helpers can build MVC SelectListItem on data returned by the manager. * LocalizedText.Designer.cs: * LocalizedText.fr.Designer.cs: autogenerated from xml * LocalizedText.resx: * LocalizedText.fr.resx: new labels * ChangeUserNameProvider.cs: xml doc * Profile.cs: the UserName property is read only, and comes from authentication, to change it, we set a Name and validate it agains the "Profile" method * UserManager.cs: simpler code a init time * IContentProvider.cs: implements the new IDataProvider interface * IDataProvider.cs: defines the new IDataProvider interface * YavscModel.csproj: includes new classes * UserPosts.aspx: adds a link to remove a post * UserPost.aspx: now uses the new BlogEntryCollection object
10 years ago
throw new NotImplementedException ();
}
/// <summary>
/// The allowed media types.
/// </summary>
protected string[] allowedMediaTypes = {
"text/plain",
"text/x-tex",
"text/html",
"image/png",
"image/gif",
"image/jpeg",
"image/x-xcf",
"application/pdf",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
};
/// <summary>
/// Posts the file.
/// </summary>
/// <returns>The file.</returns>
[Authorize, HttpPost]
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
public async Task<HttpResponseMessage> PostFile(long id) {
if (!(Request.Content.Headers.ContentType.MediaType=="multipart/form-data"))
throw new HttpRequestException ("not a multipart/form-data request");
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
BlogEntry be = BlogManager.GetPost (id);
* font-awesome.css: an awesome css * hallo.js: Use a forked Hallo.js * showdown.js: * to-markdown.js: * mdd_gripper.png: * mdd_toolbar.png: * mdd_modal_background.png: The client side Markdown is now implemented using Hallo.js * FontAwesome.otf: * fontawesome-webfont.eot: * fontawesome-webfont.svg: * fontawesome-webfont.ttf: * fontawesome-webfont.woff: * fontawesome-webfont.woff2: awesome * MarkdownDeep.dll: a modified version to render video and audio tags * NpgsqlBlogProvider.cs: * CalendarController.cs: * WorkFlowController.cs: refactoring: The `UserName` property from the `BlogEntry` class is renamed to `Author` * InputUserName.cs: formatting * BlogsController.cs: * refactoring: The `UserName` property from the `BlogEntry` class is renamed to `Author` * Fixes pandoc process on file named with some spaces * BlogsController.cs: UserName became Author on BlogEntry objects * Global.asax.cs: route /fonts is now ignored. * MarkdownHelper.cs: transform Markdown using a given base url * App.master: jquery was not needed on all pages. * Edit.aspx: using Hallo.js * BlogEntry.cs: * UserPost.aspx: * UserPosts.aspx: * BlogManager.cs: * RemoveTitle.aspx: * BlogEntryCollection.cs: * UUBlogEntryCollection.cs: * UUTBlogEntryCollection.cs: refactoring * Web.config: ? * Web.csproj: * use my local assembly for MarkdownDeep.dll * fontawesome integration * Hallo.js, to-markdown.js, showdowwn.js integration * packages.config: Now use forked MarkdownDeep * MarkdownDeepLib.min.js: * MarkdownDeep License.txt: * MarkdownDeep Quick Reference.txt: using my local revision * mdd_ajax_loader.gif: The client side Markdown is now implemented using Hallo.js
10 years ago
if (be.Author != Membership.GetUser ().UserName)
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
throw new AuthorizationDenied ("b"+id);
string root = HttpContext.Current.Server.MapPath("~/bfiles/"+id);
DirectoryInfo di = new DirectoryInfo (root);
if (!di.Exists) di.Create ();
var provider = new MultipartFormDataStreamProvider(root);
try
{
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
// Read the form data.
await Request.Content.ReadAsMultipartAsync(provider) ;
var invalidChars = Path.GetInvalidFileNameChars();
foreach (string fkey in provider.BodyPartFileNames.Keys)
{
string filename = provider.BodyPartFileNames[fkey];
Trace.WriteLine(filename);
string nicename = HttpUtility.UrlDecode(fkey) ;
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
if (fkey.StartsWith("\"") && fkey.EndsWith("\"") && fkey.Length > 2)
nicename = fkey.Substring(1,fkey.Length-2);
nicename = new string (nicename.Where( x=> !invalidChars.Contains(x)).ToArray());
nicename = nicename.Replace(' ','_');
var dest = Path.Combine(root,nicename);
var fi = new FileInfo(dest);
if (fi.Exists) fi.Delete();
File.Move(filename, fi.FullName);
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
}
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
return Request.CreateResponse(HttpStatusCode.OK);
}
catch (System.Exception e)
{
return Request.CreateResponse(HttpStatusCode.InternalServerError, e);
}
}
/// <summary>
/// Create the specified blog entry.
/// </summary>
/// <param name="be">Bp.</param>
[Authorize, HttpPost]
public long Post (BlogEntry be)
{
if (be.Id == 0)
return BlogManager.Post (User.Identity.Name, be.Title,
be.Content, be.Visible,be.AllowedCircles );
else
BlogManager.UpdatePost (be);
return 0;
}
/// <summary>
/// Blog entry rating.
/// </summary>
public class BlogEntryRating {
/// <summary>
/// Gets or sets the post identifier.
/// </summary>
/// <value>The post identifier.</value>
public long Id { get; set; }
/// <summary>
/// Gets or sets the rate.
/// </summary>
/// <value>The rate.</value>
public int Rate { get; set; }
}
/// <summary>
/// Rate the specified model.
/// </summary>
/// <param name="model">Model.</param>
[Authorize(Roles="Moderator"), HttpPost, ValidateAjax]
public void Rate (BlogEntryRating model)
{
if (model.Rate < 0 || model.Rate > 100)
ModelState.AddModelError ("Rate", "0<=Rate<=100");
else {
Les activités * BackOfficeController.cs: Impléménte un accès à l'API back office pour l'envoi d'une notification aux mobiles des cercles séléctionné de l'utilisateur * NotifyEvent.aspx: Implemente un formulaire d'envoi d'une notification mobile * NotifyEventResponse.aspx: initie une page de resultat à la notification mobile * NpgsqlContentProvider.cs: reccupère la photo activité en base de données * BlogsController.cs: En attendant mieux, les billets de blog sont noté par leur auteur, ou un admin. * CalendarController.cs: Les fontions de notification GCM et de declaration d'enregistrement GCM partent dans le controlleur back office. * activity.sql: ajoute la photo activité dans la definition du modèle de données Npgsql * style.css: La fonte de caractère "Open Sans" (Google fonts) pour le thème "clear" * style.css: La fonte de caractère "Open Sans" (Google fonts) pour le thème "dark" aussi * style.css: pas de fonte de caractère dans la feuille de style basique. * BackOfficeController.cs: Impléménte un accès web back office pour l'envoi d'une notification aux mobiles des cercles séléctionné de l'utilisateur * BlogsController.cs: Fixe la page de garde du blogspot en cas d'absence de billet à publier publiquement. * FrontOfficeController.cs: la fontion booking est maintenant censée conerner uniquement une activité, dont le code APE est donné en dernière partie de la route de l'Url, ou en argument `id`. * HomeController.cs: La page d'accueil présente maintenant les activités mises en oeuvre par au moins un utilisateur enregistré, validé et non vérouillé. Le titre de l'activité est un lien vers la methode de reservation simple. * GoogleHelpers.cs: recoit l'implementation de la methode de notification mobile * SimpleJsonPostMethod.cs: Fixe l'envoi en UTF-8 * App.master: fonte de caractère pour le lien vers "Vos billets" * parallax.js: fixe la différence de traitement entre l'horizontale et la verticale * Profile.aspx: ajoute le sommaire de la validation * Index.aspx: initie un index pour le back office * Activities.aspx: nettoye la console de log javascript * Booking.aspx: ajoute le champ caché au formulaire de resa * Index.aspx: affiche les services fournis sur le site, par des utilisateur enregistrés validés non bloqué. * Web.config: rends l'id Google d'enregistrement GCM accessible au utilisateurs anonymes, qui voudraient commander ou interagir avec l'application, sans avoir à créer de compte sur le site. * Web.csproj: ajoute le contrôleur du back office, et le formulaire de notification mobile * EventPub.cs: * BaseEvent.cs: internationalise l'évennement (la base d'une notification) * YaEvent.cs: les champs fournisseur d'une notification ne sont pas requis. On peut en avoir de la part du site lui même, qui ne soient pas à l'origine d'un evennement tiers du workflow. Dans tous les autres cas, ils devraient être renseignés ... à suivre. * Circle.cs: * CircleBase.cs: ajoute une methode de construition des destinataires à partir d'un tableau d'identifiants de cercles. * Activity.cs: implémente la photo activité dans le modèle * SimpleBookingQuery.cs: refabriqué * MessageWithPayLoad.cs: accuse aussi le champ `to` en cas d'absence de destinataire. * LocalizedText.resx: * LocalizedText.fr.resx: * LocalizedText.Designer.cs: * LocalizedText.fr.Designer.cs: internationalisation
10 years ago
BlogManager.GetForEditing (model.Id);
BlogManager.Rate (model.Id, model.Rate);
}
}
/// <summary>
/// Searchs the file.
/// </summary>
/// <returns>The file.</returns>
/// <param name="id">Postid.</param>
/// <param name="terms">Terms.</param>
[HttpGet]
public async Task<HttpResponseMessage> SearchFile(long id, string terms) {
throw new NotImplementedException ();
}
/// <summary>
/// Sets the photo.
/// </summary>
/// <param name="id">Identifier.</param>
/// <param name="photo">Photo.</param>
[Authorize, HttpPost, ValidateAjaxAttribute]
public void SetPhoto(long id, [FromBody] string photo)
{
Les activités * BackOfficeController.cs: Impléménte un accès à l'API back office pour l'envoi d'une notification aux mobiles des cercles séléctionné de l'utilisateur * NotifyEvent.aspx: Implemente un formulaire d'envoi d'une notification mobile * NotifyEventResponse.aspx: initie une page de resultat à la notification mobile * NpgsqlContentProvider.cs: reccupère la photo activité en base de données * BlogsController.cs: En attendant mieux, les billets de blog sont noté par leur auteur, ou un admin. * CalendarController.cs: Les fontions de notification GCM et de declaration d'enregistrement GCM partent dans le controlleur back office. * activity.sql: ajoute la photo activité dans la definition du modèle de données Npgsql * style.css: La fonte de caractère "Open Sans" (Google fonts) pour le thème "clear" * style.css: La fonte de caractère "Open Sans" (Google fonts) pour le thème "dark" aussi * style.css: pas de fonte de caractère dans la feuille de style basique. * BackOfficeController.cs: Impléménte un accès web back office pour l'envoi d'une notification aux mobiles des cercles séléctionné de l'utilisateur * BlogsController.cs: Fixe la page de garde du blogspot en cas d'absence de billet à publier publiquement. * FrontOfficeController.cs: la fontion booking est maintenant censée conerner uniquement une activité, dont le code APE est donné en dernière partie de la route de l'Url, ou en argument `id`. * HomeController.cs: La page d'accueil présente maintenant les activités mises en oeuvre par au moins un utilisateur enregistré, validé et non vérouillé. Le titre de l'activité est un lien vers la methode de reservation simple. * GoogleHelpers.cs: recoit l'implementation de la methode de notification mobile * SimpleJsonPostMethod.cs: Fixe l'envoi en UTF-8 * App.master: fonte de caractère pour le lien vers "Vos billets" * parallax.js: fixe la différence de traitement entre l'horizontale et la verticale * Profile.aspx: ajoute le sommaire de la validation * Index.aspx: initie un index pour le back office * Activities.aspx: nettoye la console de log javascript * Booking.aspx: ajoute le champ caché au formulaire de resa * Index.aspx: affiche les services fournis sur le site, par des utilisateur enregistrés validés non bloqué. * Web.config: rends l'id Google d'enregistrement GCM accessible au utilisateurs anonymes, qui voudraient commander ou interagir avec l'application, sans avoir à créer de compte sur le site. * Web.csproj: ajoute le contrôleur du back office, et le formulaire de notification mobile * EventPub.cs: * BaseEvent.cs: internationalise l'évennement (la base d'une notification) * YaEvent.cs: les champs fournisseur d'une notification ne sont pas requis. On peut en avoir de la part du site lui même, qui ne soient pas à l'origine d'un evennement tiers du workflow. Dans tous les autres cas, ils devraient être renseignés ... à suivre. * Circle.cs: * CircleBase.cs: ajoute une methode de construition des destinataires à partir d'un tableau d'identifiants de cercles. * Activity.cs: implémente la photo activité dans le modèle * SimpleBookingQuery.cs: refabriqué * MessageWithPayLoad.cs: accuse aussi le champ `to` en cas d'absence de destinataire. * LocalizedText.resx: * LocalizedText.fr.resx: * LocalizedText.Designer.cs: * LocalizedText.fr.Designer.cs: internationalisation
10 years ago
BlogManager.GetForEditing (id);
BlogManager.UpdatePostPhoto (id, photo);
}
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
/// <summary>
/// Import the specified id.
/// </summary>
/// <param name="id">Identifier.</param>
[Authorize, HttpPost, ValidateAjaxAttribute]
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
public async Task<HttpResponseMessage> Import(long id) {
if (!(Request.Content.Headers.ContentType.MediaType=="multipart/form-data"))
throw new HttpRequestException ("not a multipart/form-data request");
BlogEntry be = BlogManager.GetPost (id);
* font-awesome.css: an awesome css * hallo.js: Use a forked Hallo.js * showdown.js: * to-markdown.js: * mdd_gripper.png: * mdd_toolbar.png: * mdd_modal_background.png: The client side Markdown is now implemented using Hallo.js * FontAwesome.otf: * fontawesome-webfont.eot: * fontawesome-webfont.svg: * fontawesome-webfont.ttf: * fontawesome-webfont.woff: * fontawesome-webfont.woff2: awesome * MarkdownDeep.dll: a modified version to render video and audio tags * NpgsqlBlogProvider.cs: * CalendarController.cs: * WorkFlowController.cs: refactoring: The `UserName` property from the `BlogEntry` class is renamed to `Author` * InputUserName.cs: formatting * BlogsController.cs: * refactoring: The `UserName` property from the `BlogEntry` class is renamed to `Author` * Fixes pandoc process on file named with some spaces * BlogsController.cs: UserName became Author on BlogEntry objects * Global.asax.cs: route /fonts is now ignored. * MarkdownHelper.cs: transform Markdown using a given base url * App.master: jquery was not needed on all pages. * Edit.aspx: using Hallo.js * BlogEntry.cs: * UserPost.aspx: * UserPosts.aspx: * BlogManager.cs: * RemoveTitle.aspx: * BlogEntryCollection.cs: * UUBlogEntryCollection.cs: * UUTBlogEntryCollection.cs: refactoring * Web.config: ? * Web.csproj: * use my local assembly for MarkdownDeep.dll * fontawesome integration * Hallo.js, to-markdown.js, showdowwn.js integration * packages.config: Now use forked MarkdownDeep * MarkdownDeepLib.min.js: * MarkdownDeep License.txt: * MarkdownDeep Quick Reference.txt: using my local revision * mdd_ajax_loader.gif: The client side Markdown is now implemented using Hallo.js
10 years ago
if (be.Author != Membership.GetUser ().UserName)
throw new AuthorizationDenied ("post: "+id);
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
string root = HttpContext.Current.Server.MapPath("~/bfiles/"+id);
DirectoryInfo di = new DirectoryInfo (root);
if (!di.Exists) di.Create ();
var provider = new MultipartFormDataStreamProvider(root);
try
{
// Read the form data.
//IEnumerable<HttpContent> data =
await Request.Content.ReadAsMultipartAsync(provider) ;
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
var invalidChars = Path.GetInvalidFileNameChars();
List<string> bodies = new List<string>();
foreach (string fkey in provider.BodyPartFileNames.Keys)
{
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
string filename = provider.BodyPartFileNames[fkey];
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
string nicename=fkey;
var filtered = new string (nicename.Where( x=> !invalidChars.Contains(x)).ToArray());
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
FileInfo fi = new FileInfo(filtered);
FileInfo fo = new FileInfo(filtered+".md");
FileInfo fp = new FileInfo (Path.Combine(root,filename));
if (fi.Exists) fi.Delete();
fp.MoveTo(fi.FullName);
// TODO Get the mime type
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
using (Process p = new Process ()) {
p.StartInfo.WorkingDirectory = root;
p.StartInfo = new ProcessStartInfo ();
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = "/usr/bin/pandoc";
p.StartInfo.Arguments =
* font-awesome.css: an awesome css * hallo.js: Use a forked Hallo.js * showdown.js: * to-markdown.js: * mdd_gripper.png: * mdd_toolbar.png: * mdd_modal_background.png: The client side Markdown is now implemented using Hallo.js * FontAwesome.otf: * fontawesome-webfont.eot: * fontawesome-webfont.svg: * fontawesome-webfont.ttf: * fontawesome-webfont.woff: * fontawesome-webfont.woff2: awesome * MarkdownDeep.dll: a modified version to render video and audio tags * NpgsqlBlogProvider.cs: * CalendarController.cs: * WorkFlowController.cs: refactoring: The `UserName` property from the `BlogEntry` class is renamed to `Author` * InputUserName.cs: formatting * BlogsController.cs: * refactoring: The `UserName` property from the `BlogEntry` class is renamed to `Author` * Fixes pandoc process on file named with some spaces * BlogsController.cs: UserName became Author on BlogEntry objects * Global.asax.cs: route /fonts is now ignored. * MarkdownHelper.cs: transform Markdown using a given base url * App.master: jquery was not needed on all pages. * Edit.aspx: using Hallo.js * BlogEntry.cs: * UserPost.aspx: * UserPosts.aspx: * BlogManager.cs: * RemoveTitle.aspx: * BlogEntryCollection.cs: * UUBlogEntryCollection.cs: * UUTBlogEntryCollection.cs: refactoring * Web.config: ? * Web.csproj: * use my local assembly for MarkdownDeep.dll * fontawesome integration * Hallo.js, to-markdown.js, showdowwn.js integration * packages.config: Now use forked MarkdownDeep * MarkdownDeepLib.min.js: * MarkdownDeep License.txt: * MarkdownDeep Quick Reference.txt: using my local revision * mdd_ajax_loader.gif: The client side Markdown is now implemented using Hallo.js
10 years ago
string.Format (" -o '{0}' -t markdown '{1}'",
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
fo.FullName,
fi.FullName);
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.Start ();
p.WaitForExit ();
if (p.ExitCode != 0) {
return Request.CreateResponse (HttpStatusCode.InternalServerError,
"# Import failed with exit code: " + p.ExitCode + "---\n"
+ LocalizedText.ImportException + "---\n"
+ p.StandardError.ReadToEnd() + "---\n"
+ p.StandardOutput.ReadToEnd()
);
}
}
bodies.Add(fo.OpenText().ReadToEnd());
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
fi.Delete();
fo.Delete();
}
return Request.CreateResponse(HttpStatusCode.OK,string.Join("\n---\n",bodies),new SimpleFormatter("text/plain"));
* mdd_help.htm: * mdd_styles.css: * LocalizedText.resx: * all.css: * jquery-ui-1.11.4.js: * tabs.css: * menu.css: * core.css: * base.css: * LocalizedText.fr.resx: * theme.css: * slider.css: * button.css: * dialog.css: * spinner.css: * tooltip.css: * jquery-ui-1.11.4.min.js: * sortable.css: * LocalizedText.Designer.cs: * resizable.css: * accordion.css: * draggable.css: * selectmenu.css: * selectable.css: * datepicker.css: * progressbar.css: * LocalizedText.fr.Designer.cs: * autocomplete.css: * ui-icons_888888_256x240.png: * ui-icons_cd0a0a_256x240.png: * ui-icons_454545_256x240.png: * ui-icons_2e83ff_256x240.png: * ui-icons_222222_256x240.png: * ui-bg_flat_0_aaaaaa_40x100.png: * ui-bg_glass_95_fef1ec_1x400.png: * ui-bg_flat_75_ffffff_40x100.png: * ui-bg_glass_55_fbf9ee_1x400.png: * ui-bg_glass_65_ffffff_1x400.png: * ui-bg_glass_75_dadada_1x400.png: * ui-bg_glass_75_e6e6e6_1x400.png: * ui-bg_highlight-soft_75_cccccc_1x100.png: * BlogsController.cs: implements the access control on file upload to blog entries * style.css: nicer appmenu * BlogsController.cs: Enables the input validation at posting blog entries * MarkdownHelper.cs: enables ExtraMode transformation parameter * App.master: Error and message html divisions must exist in the DOM to display Ajax messages and errors * yavsc.js: * yavsc.circles.js: refactoring * Circles.aspx: removes a DOM element that already exists in the mastyer page : the message box * Edit.aspx: submits files for import as Markdown text * Web.config: Disables the local trace * Web.csproj: jQuery.UI addition * packages.config: adds a ref to jQuery.UI Combined
10 years ago
}
catch (System.Exception e)
{
return Request.CreateResponse(HttpStatusCode.InternalServerError, e);
}
}
}
}