* InputCircle.cs: An input control specialized for circle selection
* UserCard.cs: Displays user informations on a little div * Estim.cs: * WebControls.csproj: * CircleInfo.cs: * CircleProvider.cs: * CircleApiController.cs: * BasketApiController.cs: * ITContentProvider.csproj: * CalendarApiController.cs: * WorkFlowApiController.cs: * NpgsqlCircleProvider.cs: * FrontOfficeApiController.cs: * InputUserName.cs: Fixes the ToolBoxData attribute * Web.csproj: * Circle.cs: refactoring * instdbws.sql: Foreign keys are cascading updates and deletions * Estim.tt: * Profile.cs: User's profile does not contain anymore the main e-mail address, it conflicts with registration informations, it is not part of the profile data
This commit is contained in:
parent
3d050e019e
commit
6680addcc8
24 changed files with 796 additions and 227 deletions
|
|
@ -1,3 +1,7 @@
|
|||
2015-06-10 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* NpgsqlCircleProvider.cs:
|
||||
|
||||
2015-06-10 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* NpgsqlCircleProvider.cs: implements a Circle provider
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ using System;
|
|||
using Yavsc.Model.Circles;
|
||||
using System.Collections.Specialized;
|
||||
using System.Configuration;
|
||||
using Npgsql;
|
||||
using NpgsqlTypes;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace WorkFlowProvider
|
||||
{
|
||||
|
|
@ -38,45 +41,172 @@ namespace WorkFlowProvider
|
|||
}
|
||||
|
||||
#region implemented abstract members of CircleProvider
|
||||
|
||||
/// <summary>
|
||||
/// Add the specified user.
|
||||
/// </summary>
|
||||
/// <param name="id">circle Identifier.</param>
|
||||
/// <param name="username">User name.</param>
|
||||
public override void Add (long id, string username)
|
||||
{
|
||||
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText = "insert into circle_members (circle_id, member) values (:cid,:uname)";
|
||||
cmd.Parameters.AddWithValue("cid",id);
|
||||
cmd.Parameters.AddWithValue("uname",username);
|
||||
cnx.Open ();
|
||||
cmd.ExecuteNonQuery ();
|
||||
cnx.Close ();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove the specified user.
|
||||
/// </summary>
|
||||
/// <param name="id">circle Identifier.</param>
|
||||
/// <param name="username">User name.</param>
|
||||
public override void Remove (long id, string username)
|
||||
{
|
||||
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText = "delete from circle_members where circle_id = :cid and username = :uname";
|
||||
cmd.Parameters.AddWithValue("cid",id);
|
||||
cmd.Parameters.AddWithValue("uname",username);
|
||||
cnx.Open ();
|
||||
cmd.ExecuteNonQuery ();
|
||||
cnx.Close ();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the specified id.
|
||||
/// </summary>
|
||||
/// <param name="id">Identifier.</param>
|
||||
public override Circle Get (long id)
|
||||
{
|
||||
Circle circ=null;
|
||||
|
||||
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) {
|
||||
cnx.Open ();
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText = "select title, owner from circle where _id = :cid";
|
||||
cmd.Parameters.AddWithValue ("cid", id);
|
||||
using (NpgsqlDataReader dr = cmd.ExecuteReader ()) {
|
||||
if (dr.Read ()) {
|
||||
circ = new Circle ();
|
||||
circ.Id = id;
|
||||
circ.Title = dr.GetString (
|
||||
dr.GetOrdinal ("title"));
|
||||
circ.Owner = dr.GetString (
|
||||
dr.GetOrdinal ("owner"));
|
||||
}
|
||||
dr.Close ();
|
||||
}
|
||||
}
|
||||
|
||||
if (circ != null) {
|
||||
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText = "select member from circle_members where circle_id = :cid";
|
||||
cmd.Parameters.AddWithValue ("cid", id);
|
||||
cmd.Prepare ();
|
||||
List<string> members = new List<string> ();
|
||||
using (NpgsqlDataReader dr = cmd.ExecuteReader ()) {
|
||||
while (dr.Read ())
|
||||
members.Add (dr.GetString (0));
|
||||
dr.Close ();
|
||||
circ.Members = members.ToArray ();
|
||||
}
|
||||
}
|
||||
}
|
||||
cnx.Close ();
|
||||
}
|
||||
return circ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add the specified owner, title and users.
|
||||
/// </summary>
|
||||
/// <param name="owner">Owner.</param>
|
||||
/// <param name="title">Title.</param>
|
||||
/// <param name="users">Users.</param>
|
||||
public override void Add (string owner, string title, string[] users)
|
||||
public override long Create (string owner, string title, string[] users)
|
||||
{
|
||||
long id = 0;
|
||||
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) {
|
||||
cnx.Open ();
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText = "insert into circle (owner,title,applicationname) values (:wnr,:tit,:app) returning _id";
|
||||
cmd.Parameters.AddWithValue ("wnr", owner);
|
||||
cmd.Parameters.AddWithValue ("tit", title);
|
||||
cmd.Parameters.AddWithValue ("app", applicationName);
|
||||
id = (long)cmd.ExecuteScalar ();
|
||||
}
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText = "insert into circle_members (circle_id,member) values (@cid,@mbr)";
|
||||
cmd.Parameters.AddWithValue ("cid", id);
|
||||
cmd.Parameters.Add ("mbr", NpgsqlDbType.Varchar);
|
||||
cmd.Prepare ();
|
||||
foreach (string user in users) {
|
||||
cmd.Parameters[1].Value = user;
|
||||
cmd.ExecuteNonQuery ();
|
||||
}
|
||||
}
|
||||
cnx.Close ();
|
||||
}
|
||||
|
||||
throw new NotImplementedException ();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete the specified owner and title.
|
||||
/// </summary>
|
||||
/// <param name="owner">Owner.</param>
|
||||
/// <param name="title">Title.</param>
|
||||
public override void Delete (string owner, string title)
|
||||
/// <param name="id">Identifier.</param>
|
||||
public override void Delete (long id)
|
||||
{
|
||||
throw new NotImplementedException ();
|
||||
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText = "delete from circle where _id = @cid";
|
||||
cmd.Parameters.AddWithValue("cid",id);
|
||||
cnx.Open ();
|
||||
cmd.ExecuteNonQuery ();
|
||||
cnx.Close ();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the specified owner and title.
|
||||
/// List user's circles.
|
||||
/// </summary>
|
||||
/// <param name="owner">Owner.</param>
|
||||
/// <param name="title">Title.</param>
|
||||
public override Circle Get (string owner, string title)
|
||||
/// <param name="user">User.</param>
|
||||
public override CircleInfoCollection List (string user)
|
||||
{
|
||||
throw new NotImplementedException ();
|
||||
}
|
||||
/// <summary>
|
||||
/// List this instance.
|
||||
/// </summary>
|
||||
public override CircleInfoCollection List ()
|
||||
{
|
||||
throw new NotImplementedException ();
|
||||
CircleInfoCollection cc = null;
|
||||
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
|
||||
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
|
||||
cmd.CommandText = "select _id, title from circle where owner = :wnr";
|
||||
cmd.Parameters.AddWithValue("wnr",user);
|
||||
cnx.Open ();
|
||||
cmd.Prepare ();
|
||||
using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) {
|
||||
if (rdr.HasRows) {
|
||||
cc = new CircleInfoCollection ();
|
||||
while (rdr.Read ())
|
||||
cc.Add(
|
||||
new CircleInfo (
|
||||
rdr.GetInt64 (0),
|
||||
rdr.GetString (1)));
|
||||
}
|
||||
rdr.Close ();
|
||||
}
|
||||
cnx.Close ();
|
||||
|
||||
}
|
||||
return cc;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
string cnxstr = null;
|
||||
string connectionString = null;
|
||||
string applicationName = null;
|
||||
/// <summary>
|
||||
/// Initialize this object using the specified name and config.
|
||||
|
|
@ -88,7 +218,7 @@ namespace WorkFlowProvider
|
|||
if ( string.IsNullOrWhiteSpace(config ["connectionStringName"]))
|
||||
throw new ConfigurationErrorsException ("No name for Npgsql connection string found");
|
||||
|
||||
cnxstr = ConfigurationManager.ConnectionStrings [config ["connectionStringName"]].ConnectionString;
|
||||
connectionString = ConfigurationManager.ConnectionStrings [config ["connectionStringName"]].ConnectionString;
|
||||
applicationName = config["applicationName"] ?? "/";
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue