* Tags and files for posts and writtings
* TryAssert(Title ~ H1)
This commit is contained in:
@ -12,9 +12,14 @@ namespace WorkFlowProvider
|
||||
{
|
||||
public class NpgsqlContentProvider: ProviderBase, IContentProvider
|
||||
{
|
||||
public void TagWritting (long wrid, string tag)
|
||||
{
|
||||
throw new NotImplementedException ();
|
||||
}
|
||||
|
||||
public bool[] FinalStatuses {
|
||||
get {
|
||||
throw new NotImplementedException ();
|
||||
return new bool[] { false, true, true };
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,23 +40,45 @@ namespace WorkFlowProvider
|
||||
|
||||
public string[] StatusLabels {
|
||||
get {
|
||||
throw new NotImplementedException ();
|
||||
return new string[] { "Created", "Success", "Error" };
|
||||
}
|
||||
}
|
||||
|
||||
#region IDisposable implementation
|
||||
public void Dispose ()
|
||||
public void DropWritting (long wrid)
|
||||
{
|
||||
|
||||
using (NpgsqlConnection cnx = CreateConnection ()) {
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText =
|
||||
"delete from writtings where _id = @wrid";
|
||||
|
||||
cmd.Parameters.Add ("@wrid", wrid);
|
||||
cnx.Open ();
|
||||
cmd.ExecuteNonQuery ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void DropEstimate (long estid)
|
||||
{
|
||||
using (NpgsqlConnection cnx = CreateConnection ()) {
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText =
|
||||
"delete from estimate where _id = @estid";
|
||||
|
||||
cmd.Parameters.Add ("@estid", estid);
|
||||
cnx.Open ();
|
||||
cmd.ExecuteNonQuery ();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public Estimate GetEstimate (long estimid)
|
||||
{
|
||||
using (NpgsqlConnection cnx = CreateConnection ()) {
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText =
|
||||
"select title,username from estimate where _id = @estid";
|
||||
"select _id,title,username from estimate where _id = @estid";
|
||||
|
||||
cmd.Parameters.Add ("@estid", estimid);
|
||||
cnx.Open ();
|
||||
@ -66,6 +93,7 @@ namespace WorkFlowProvider
|
||||
rdr.GetOrdinal("title"));
|
||||
est.Owner = rdr.GetString(
|
||||
rdr.GetOrdinal("username"));
|
||||
|
||||
using (NpgsqlCommand cmdw = new NpgsqlCommand ("select _id, productid, ucost, count, description from writtings where _id = @estid", cnx)) {
|
||||
cmdw.Parameters.Add("@estid", estimid);
|
||||
using (NpgsqlDataReader rdrw = cmdw.ExecuteReader ()) {
|
||||
@ -83,7 +111,7 @@ namespace WorkFlowProvider
|
||||
int ouc = rdrw.GetOrdinal ("ucost");
|
||||
if (!rdrw.IsDBNull(ouc))
|
||||
w.UnitaryCost = rdrw.GetDecimal (ouc);
|
||||
// TODO get w.id
|
||||
w.Id = rdrw.GetInt64 (rdrw.GetOrdinal("_id"));
|
||||
lw.Add (w);
|
||||
}
|
||||
est.Lines = lw.ToArray ();
|
||||
@ -193,6 +221,13 @@ namespace WorkFlowProvider
|
||||
{
|
||||
return new NpgsqlConnection (cnxstr);
|
||||
}
|
||||
#region IDisposable implementation
|
||||
public void Dispose ()
|
||||
{
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,14 @@ namespace WorkFlowProvider
|
||||
{
|
||||
public static class WFManager
|
||||
{
|
||||
public static void DropWritting (long wrid)
|
||||
{
|
||||
ContentProvider.DropWritting (wrid);
|
||||
}
|
||||
public static void DropEstimate (long estid)
|
||||
{
|
||||
ContentProvider.DropEstimate(estid);
|
||||
}
|
||||
static IContentProvider contentProvider;
|
||||
|
||||
public static IContentProvider ContentProvider {
|
||||
@ -61,6 +69,7 @@ namespace WorkFlowProvider
|
||||
return ContentProvider.CreateEstimate (client, title);
|
||||
}
|
||||
|
||||
|
||||
public static long Write(long estid, string desc, decimal ucost, int count, long productid)
|
||||
{
|
||||
return ContentProvider.Write(estid, desc, ucost, count, productid);
|
||||
|
@ -12,6 +12,19 @@ namespace Yavsc.Controllers
|
||||
{
|
||||
public class BlogsApiController : Controller
|
||||
{
|
||||
public void Tag (long postid,string tag) {
|
||||
BlogEntry e = BlogManager.GetPost (postid);
|
||||
if (!Roles.IsUserInRole ("Admin")) {
|
||||
string rguser = Membership.GetUser ().UserName;
|
||||
if (rguser != e.UserName) {
|
||||
throw new AccessViolationException (
|
||||
string.Format (
|
||||
"Vous n'avez pas le droit de tagger des billets du Blog de {0}",
|
||||
e.UserName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static HttpStatusCodeResult RemovePost(string user, string title) {
|
||||
if (!Roles.IsUserInRole ("Admin")) {
|
||||
string rguser = Membership.GetUser ().UserName;
|
||||
|
@ -21,13 +21,27 @@ namespace Yavsc.ApiControllers
|
||||
return WFManager.CreateEstimate (
|
||||
Membership.GetUser().UserName,title);
|
||||
}
|
||||
[HttpGet]
|
||||
[Authorize]
|
||||
public void DropWritting(long wrid)
|
||||
{
|
||||
WFManager.DropWritting (wrid);
|
||||
}
|
||||
|
||||
|
||||
[HttpGet]
|
||||
[Authorize]
|
||||
public void DropEstimate(long estid)
|
||||
{
|
||||
WFManager.DropEstimate (estid);
|
||||
}
|
||||
[HttpGet]
|
||||
[Authorize]
|
||||
public object Index()
|
||||
{
|
||||
|
||||
return new { test="Hello World" };
|
||||
// TODO inform user on its roles and alerts
|
||||
string username = Membership.GetUser ().UserName;
|
||||
return new { test=string.Format("Hello {0}!",username) };
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
|
@ -1,28 +1,25 @@
|
||||
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEditEntryModel>" MasterPageFile="~/Models/App.master"%>
|
||||
<asp:Content ContentPlaceHolderID="head" ID="head" runat="server">
|
||||
<title><%= Html.Encode(ViewData["BlogTitle"]) %> edition
|
||||
- <%=Html.Encode(YavscHelpers.SiteName) %>
|
||||
</title>
|
||||
<asp:Content ContentPlaceHolderID="init" ID="init1" runat="server">
|
||||
<% Title = Model.Title+" (édition) - "+ViewData["BlogTitle"]; %>
|
||||
</asp:Content>
|
||||
<asp:Content ContentPlaceHolderID="header" ID="headerContent" runat="server">
|
||||
|
||||
<h1 class="blogtitle">
|
||||
<a href="/Blog/<%=ViewData["UserName"]%>">
|
||||
<img class="avatar" src="/Blogs/Avatar?user=<%=ViewData["UserName"]%>" alt="from <%=ViewData["UserName"]%>"/>
|
||||
<%= Html.Encode(ViewData["BlogTitle"]) %> </a> -
|
||||
<%= Html.Encode(Model.Title) %> -
|
||||
Édition </h1>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="overHeaderOne" ID="header1" runat="server">
|
||||
<h1 class="blogtitle"><%= Html.ActionLink(Model.Title,"UserPost",new{user=Model.UserName,title=Model.Title}) %> (édition) -
|
||||
<a href="/Blog/<%=Model.UserName%>"><img class="avatar" src="/Blogs/Avatar?user=<%=Model.UserName%>" alt=""/> <%=ViewData["BlogTitle"]%></a>
|
||||
<asp:Literal runat="server" Text=" - " />
|
||||
<a href="/"> <%= YavscHelpers.SiteName %> </a> </h1>
|
||||
|
||||
|
||||
<div class="message">
|
||||
<%= Html.Encode(ViewData["Message"]) %>
|
||||
</div>
|
||||
<div class="metablog">(Id:<a href="/Blogs/UserPost/<%=Model.Id%>"><i><%=Model.Id%></i></a>, <%= Model.Posted.ToString("yyyy/MM/dd") %>
|
||||
- <%= Model.Modified.ToString("yyyy/MM/dd") %> <%= Model.Visible? "":", Invisible!" %>)
|
||||
<% if (Membership.GetUser()!=null)
|
||||
if (Membership.GetUser().UserName==Model.UserName)
|
||||
{ %>
|
||||
<%= Html.ActionLink("Editer","Edit", new { user=Model.UserName, title = Model.Title }, new { @class="actionlink" }) %>
|
||||
<%= Html.ActionLink("Supprimer","RemovePost", new { user=Model.UserName, title = Model.Title }, new { @class="actionlink" } ) %>
|
||||
<% } %>
|
||||
</div>
|
||||
</asp:Content>
|
||||
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
||||
|
||||
|
||||
<% if (Model != null ) if (Model.Content != null ) {
|
||||
<% if (Model != null ) if (Model.Content != null ) {
|
||||
BBCodeHelper.Init (); %>
|
||||
<%= Html.ActionLink(Model.Title,"UserPost",new{user=Model.UserName,title=Model.Title}) %>
|
||||
<div class="blogpost">
|
||||
|
@ -9,7 +9,7 @@ namespace yavscModel.WorkFlow
|
||||
}
|
||||
public string Title { get; set; }
|
||||
public string Owner { get; set; }
|
||||
|
||||
public long Id { get; set; }
|
||||
public decimal Ciffer {
|
||||
get {
|
||||
decimal total = 0;
|
||||
|
@ -6,6 +6,9 @@ namespace yavscModel.WorkFlow
|
||||
{
|
||||
public interface IContentProvider : IProvider, IDisposable
|
||||
{
|
||||
void DropWritting (long wrid);
|
||||
void DropEstimate (long estid);
|
||||
void TagWritting (long wrid,string tag);
|
||||
int GetStatus (string estimId);
|
||||
/// <summary>
|
||||
/// Gets the status labels.
|
||||
|
@ -4,6 +4,7 @@ namespace yavscModel.WorkFlow
|
||||
{
|
||||
public class Writting
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public decimal UnitaryCost { get; set; }
|
||||
public int Count { get; set; }
|
||||
public long ProductReference { get; set; }
|
||||
|
Reference in New Issue
Block a user