From 31734da1299cbfa06f9f183732650c57434b649b Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Tue, 2 Jun 2015 01:42:49 +0200 Subject: [PATCH] * Web.config: * Web.csproj: * instdbws.sql: * packages.config: * TestByteA.cs: * App.master: * MyClass.cs: * LocalizedText.resx: * Index.aspx: * LocalizedText.fr.resx: * packages.config: * Details.aspx: * packages.config: * packages.config: * packages.config: * EventPub.aspx: * LocalizedText.Designer.cs: * FileSystemController.cs: * FrontOfficeController.cs: * NpgsqlContentProvider.cs: * ITContentProvider.csproj: * FileSystemManager.cs: * Circle.cs: * YaEvent.cs: * NpgsqlBlogProvider.csproj: * NpgsqlMRPProviders.csproj: * EventPub.cs: * NpgsqlContentProvider.csproj: * EventType.cs: * UserPrefs.cs: * CalendarController.cs: * EstablishmentType.cs: * ITCPNpgsqlProvider.cs: * NpgsqlBlogProvider.cs: * NpgsqlRoleProvider.cs: * NpgsqlProfileProvider.cs: * NpgsqlMembershipProvider.cs: Npgsql Command.Parameters.Add is obsolete * Commande.cs: FileSystem ctor needs a format parameter in order to use path by membership * google-services.json: intented to be used to build android application able to receive push notification via GCM --- ITContentProvider/ITCPNpgsqlProvider.cs | 10 +- ITContentProvider/ITContentProvider.csproj | 10 +- ITContentProvider/packages.config | 4 + NpgsqlBlogProvider/NpgsqlBlogProvider.cs | 100 +++--- NpgsqlBlogProvider/NpgsqlBlogProvider.csproj | 8 +- NpgsqlBlogProvider/packages.config | 4 + NpgsqlMRPProviders/NpgsqlMRPProviders.csproj | 8 +- .../NpgsqlMembershipProvider.cs | 198 ++++++----- NpgsqlMRPProviders/NpgsqlProfileProvider.cs | 18 +- NpgsqlMRPProviders/NpgsqlRoleProvider.cs | 50 +-- NpgsqlMRPProviders/packages.config | 4 + WorkFlowProvider/NpgsqlContentProvider.cs | 72 ++-- WorkFlowProvider/NpgsqlContentProvider.csproj | 10 +- WorkFlowProvider/packages.config | 4 + google-services.json | 1 + plugins/fortune/MyClass.cs | 1 - .../Calendar/CalendarController.cs | 335 ++++++++++++++++-- web/ApiControllers/Calendar/Model/Circle.cs | 35 +- .../Calendar/Model/EstablishmentType.cs | 62 ---- web/ApiControllers/Calendar/Model/EventPub.cs | 15 +- .../Calendar/Model/EventType.cs | 71 ---- .../Calendar/Model/UserPrefs.cs | 4 +- web/ApiControllers/Calendar/Model/YaEvent.cs | 55 ++- web/Controllers/FileSystemController.cs | 46 ++- web/Controllers/FrontOfficeController.cs | 6 +- web/Models/App.master | 5 + web/Test/TestByteA.cs | 4 +- web/Views/FileSystem/Details.aspx | 2 +- web/Views/FileSystem/Index.aspx | 7 +- web/Views/FrontOffice/EventPub.aspx | 23 ++ web/Web.config | 13 +- web/Web.csproj | 10 +- web/instdbws.sql | 2 + web/packages.config | 1 + yavscModel/FileSystem/FileSystemManager.cs | 14 +- yavscModel/FrontOffice/Commande.cs | 2 +- yavscModel/LocalizedText.Designer.cs | 54 +++ yavscModel/LocalizedText.fr.resx | 10 + yavscModel/LocalizedText.resx | 14 +- 39 files changed, 800 insertions(+), 492 deletions(-) create mode 100644 ITContentProvider/packages.config create mode 100644 NpgsqlBlogProvider/packages.config create mode 100644 NpgsqlMRPProviders/packages.config create mode 100644 WorkFlowProvider/packages.config create mode 100644 google-services.json delete mode 100644 web/ApiControllers/Calendar/Model/EstablishmentType.cs delete mode 100644 web/ApiControllers/Calendar/Model/EventType.cs create mode 100644 web/Views/FrontOffice/EventPub.aspx diff --git a/ITContentProvider/ITCPNpgsqlProvider.cs b/ITContentProvider/ITCPNpgsqlProvider.cs index 4c3dd948..4cd6486c 100644 --- a/ITContentProvider/ITCPNpgsqlProvider.cs +++ b/ITContentProvider/ITCPNpgsqlProvider.cs @@ -101,7 +101,7 @@ namespace ITContentProvider cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand()) { cmd.CommandText = "delete from projets where id = @id"; - cmd.Parameters.Add ("@id", prjId); + cmd.Parameters.AddWithValue ("@id", prjId); cmd.ExecuteNonQuery(); } cnx.Close (); @@ -122,10 +122,10 @@ namespace ITContentProvider cnx.Open (); using (NpgsqlCommand cmd = cnx.CreateCommand()) { cmd.CommandText = "insert into projets (name,managerid,ApplicatonName,prdesc) values (@name,@mid,@appname,@pdesc)"; - cmd.Parameters.Add ("@name", name); - cmd.Parameters.Add ("@mid", ownerId); - cmd.Parameters.Add ("@appname", ApplicationName); - cmd.Parameters.Add ("@desc", desc); + cmd.Parameters.AddWithValue ("@name", name); + cmd.Parameters.AddWithValue ("@mid", ownerId); + cmd.Parameters.AddWithValue ("@appname", ApplicationName); + cmd.Parameters.AddWithValue ("@desc", desc); id = (int)cmd.ExecuteScalar (); } cnx.Close (); diff --git a/ITContentProvider/ITContentProvider.csproj b/ITContentProvider/ITContentProvider.csproj index 7f770066..17af2408 100644 --- a/ITContentProvider/ITContentProvider.csproj +++ b/ITContentProvider/ITContentProvider.csproj @@ -32,7 +32,6 @@ - @@ -40,6 +39,12 @@ + + ..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll + + + ..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll + @@ -66,4 +71,7 @@ + + + \ No newline at end of file diff --git a/ITContentProvider/packages.config b/ITContentProvider/packages.config new file mode 100644 index 00000000..f5cffebe --- /dev/null +++ b/ITContentProvider/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/NpgsqlBlogProvider/NpgsqlBlogProvider.cs b/NpgsqlBlogProvider/NpgsqlBlogProvider.cs index 3db8a530..c6345657 100644 --- a/NpgsqlBlogProvider/NpgsqlBlogProvider.cs +++ b/NpgsqlBlogProvider/NpgsqlBlogProvider.cs @@ -26,8 +26,8 @@ namespace Npgsql.Web.Blog using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = "insert into bltag (blid,tag) values (@postid,@tag) returning _id"; - cmd.Parameters.Add("@tag",tag); - cmd.Parameters.Add("@postid",postid); + cmd.Parameters.AddWithValue("@tag",tag); + cmd.Parameters.AddWithValue("@postid",postid); return (long) cmd.ExecuteScalar (); } } @@ -40,7 +40,7 @@ namespace Npgsql.Web.Blog using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = "delete from bltag where _id = @tagid"; - cmd.Parameters.Add("@tagid",tagid); + cmd.Parameters.AddWithValue("@tagid",tagid); cmd.ExecuteNonQuery (); } } @@ -71,8 +71,8 @@ namespace Npgsql.Web.Blog "where applicationname = @appname and postid = @id" + ((getHidden) ? " and visible = true ":" ") + "order by posted asc" ; - cmd.Parameters.Add ("@appname", applicationName); - cmd.Parameters.Add ("@id", postid); + cmd.Parameters.AddWithValue ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@id", postid); cnx.Open (); using (NpgsqlDataReader rdr = cmd.ExecuteReader()) { while (rdr.Read ()) { @@ -108,11 +108,11 @@ namespace Npgsql.Web.Blog " bcontent=@content, " + " visible = @visible " + "where _id = @id"; - cmd.Parameters.Add ("@now", now); - cmd.Parameters.Add ("@title", title); - cmd.Parameters.Add ("@content", content); - cmd.Parameters.Add ("@visible", visible); - cmd.Parameters.Add ("@id", postid); + cmd.Parameters.AddWithValue ("@now", now); + cmd.Parameters.AddWithValue ("@title", title); + cmd.Parameters.AddWithValue ("@content", content); + cmd.Parameters.AddWithValue ("@visible", visible); + cmd.Parameters.AddWithValue ("@id", postid); cnx.Open (); cmd.ExecuteNonQuery (); cnx.Close(); @@ -146,14 +146,14 @@ namespace Npgsql.Web.Blog "modified,posted,visible,username,applicationname)" + "values (@postid,@bcontent,@modified,@posted," + "@visible,@username,@appname) returning _id"; - cmd.Parameters.Add ("@postid", postid); - cmd.Parameters.Add ("@bcontent", content); + cmd.Parameters.AddWithValue ("@postid", postid); + cmd.Parameters.AddWithValue ("@bcontent", content); DateTime now = DateTime.Now; - cmd.Parameters.Add ("@modified", now); - cmd.Parameters.Add ("@posted", now); - cmd.Parameters.Add ("@visible", visible); - cmd.Parameters.Add ("@username", from); - cmd.Parameters.Add ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@modified", now); + cmd.Parameters.AddWithValue ("@posted", now); + cmd.Parameters.AddWithValue ("@visible", visible); + cmd.Parameters.AddWithValue ("@username", from); + cmd.Parameters.AddWithValue ("@appname", applicationName); cnx.Open (); return (long) cmd.ExecuteScalar(); } @@ -233,8 +233,8 @@ namespace Npgsql.Web.Blog using (NpgsqlCommand cmd = cnx.CreateCommand()) { cmd.CommandText = "select username, title, bcontent, modified, posted, visible from blog " + "where applicationname = @appname and _id = @id"; - cmd.Parameters.Add ("@appname", applicationName); - cmd.Parameters.Add ("@id", postid); + cmd.Parameters.AddWithValue ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@id", postid); cnx.Open (); using (NpgsqlDataReader rdr = cmd.ExecuteReader()) { if (rdr.Read ()) { @@ -262,7 +262,7 @@ namespace Npgsql.Web.Blog using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = "delete from comment where _id = @id returning postid"; - cmd.Parameters.Add ("id", cmtid); + cmd.Parameters.AddWithValue ("id", cmtid); cnx.Open (); postid = (long) cmd.ExecuteScalar (); } @@ -281,9 +281,9 @@ namespace Npgsql.Web.Blog using (NpgsqlCommand cmd = cnx.CreateCommand()) { cmd.CommandText = "select _id,bcontent,modified,posted,visible from blog " + "where applicationname = @appname and username = @username and title = @title"; - cmd.Parameters.Add ("@appname", applicationName); - cmd.Parameters.Add ("@username", username); - cmd.Parameters.Add ("@title", title); + cmd.Parameters.AddWithValue ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@username", username); + cmd.Parameters.AddWithValue ("@title", title); cnx.Open (); using (NpgsqlDataReader rdr = cmd.ExecuteReader()) { if (rdr.Read ()) { @@ -295,18 +295,20 @@ namespace Npgsql.Web.Blog be.Posted = rdr.GetDateTime (rdr.GetOrdinal ("posted")); be.Visible = rdr.GetBoolean (rdr.GetOrdinal ("visible")); be.Id = rdr.GetInt64 (rdr.GetOrdinal ("_id")); - using (NpgsqlCommand cmdtags = cnx.CreateCommand()) { - List tags = new List (); - cmd.CommandText = "select tag.name from tag,tagged where tag._id = tagged.tagid and tagged.postid = @pid"; - cmd.Parameters.Add ("@pid", be.Id); - using (NpgsqlDataReader rdrt = cmd.ExecuteReader ()) { - while (rdrt.Read ()) { - tags.Add (rdrt.GetString (0)); - } - } - be.Tags = tags.ToArray (); + } + rdr.Close (); + } + if (be!=null) + using (NpgsqlCommand cmdtags = cnx.CreateCommand()) { + List tags = new List (); + cmd.CommandText = "select tag.name from tag,tagged where tag._id = tagged.tagid and tagged.postid = @pid"; + cmd.Parameters.AddWithValue ("@pid", be.Id); + using (NpgsqlDataReader rdrt = cmd.ExecuteReader ()) { + while (rdrt.Read ()) { + tags.Add (rdrt.GetString (0)); } } + be.Tags = tags.ToArray (); } } return be; @@ -330,14 +332,14 @@ namespace Npgsql.Web.Blog using (NpgsqlCommand cmd = cnx.CreateCommand()) { cmd.CommandText = "insert into blog (title,bcontent,modified,posted,visible,username,applicationname)" + "values (@title,@bcontent,@modified,@posted,@visible,@username,@appname) returning _id"; - cmd.Parameters.Add ("@title", title); - cmd.Parameters.Add ("@bcontent", content); + cmd.Parameters.AddWithValue ("@title", title); + cmd.Parameters.AddWithValue ("@bcontent", content); DateTime now = DateTime.Now; - cmd.Parameters.Add ("@modified", now); - cmd.Parameters.Add ("@posted", now); - cmd.Parameters.Add ("@visible", visible); - cmd.Parameters.Add ("@username", username); - cmd.Parameters.Add ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@modified", now); + cmd.Parameters.AddWithValue ("@posted", now); + cmd.Parameters.AddWithValue ("@visible", visible); + cmd.Parameters.AddWithValue ("@username", username); + cmd.Parameters.AddWithValue ("@appname", applicationName); cnx.Open (); return (long) cmd.ExecuteScalar(); } @@ -359,18 +361,18 @@ namespace Npgsql.Web.Blog using (NpgsqlCommand cmd = cnx.CreateCommand()) { cmd.CommandText = "select title,bcontent,modified,posted,username,visible from blog " + "where applicationname = @appname"; - cmd.Parameters.Add ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@appname", applicationName); if ((searchflags & FindBlogEntryFlags.MatchContent) > 0) { cmd.CommandText += " and bcontent like @bcontent"; - cmd.Parameters.Add ("@bcontent", pattern); + cmd.Parameters.AddWithValue ("@bcontent", pattern); } if ((searchflags & FindBlogEntryFlags.MatchTitle) > 0) { cmd.CommandText += " and title like @title"; - cmd.Parameters.Add ("@title", pattern); + cmd.Parameters.AddWithValue ("@title", pattern); } if ((searchflags & FindBlogEntryFlags.MatchUserName) > 0) { cmd.CommandText += " and username like @username"; - cmd.Parameters.Add ("@username", pattern); + cmd.Parameters.AddWithValue ("@username", pattern); } if ((searchflags & FindBlogEntryFlags.MatchInvisible) == 0) { cmd.CommandText += " and visible = true"; @@ -409,9 +411,9 @@ namespace Npgsql.Web.Blog using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) using (NpgsqlCommand cmd = cnx.CreateCommand()) { cmd.CommandText = "delete from blog where username = @username and applicationname = @appname and title=@title"; - cmd.Parameters.Add ("@username",username); - cmd.Parameters.Add ("@appname", applicationName); - cmd.Parameters.Add ("@title",title); + cmd.Parameters.AddWithValue ("@username",username); + cmd.Parameters.AddWithValue ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@title",title); cnx.Open (); cmd.ExecuteNonQuery (); cnx.Close(); @@ -443,8 +445,8 @@ namespace Npgsql.Web.Blog "from blog where applicationname = @appname and visible = true " + " order by posted desc limit @len" ; - cmd.Parameters.Add ("@appname", applicationName); - cmd.Parameters.Add ("@len", defaultPageSize*10); + cmd.Parameters.AddWithValue ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@len", defaultPageSize*10); cnx.Open (); using (NpgsqlDataReader rdr = cmd.ExecuteReader()) { totalRecords = 0; diff --git a/NpgsqlBlogProvider/NpgsqlBlogProvider.csproj b/NpgsqlBlogProvider/NpgsqlBlogProvider.csproj index 69070839..f65a05d4 100644 --- a/NpgsqlBlogProvider/NpgsqlBlogProvider.csproj +++ b/NpgsqlBlogProvider/NpgsqlBlogProvider.csproj @@ -41,9 +41,14 @@ - + + ..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll + + + ..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll + @@ -56,6 +61,7 @@ + diff --git a/NpgsqlBlogProvider/packages.config b/NpgsqlBlogProvider/packages.config new file mode 100644 index 00000000..f5cffebe --- /dev/null +++ b/NpgsqlBlogProvider/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/NpgsqlMRPProviders/NpgsqlMRPProviders.csproj b/NpgsqlMRPProviders/NpgsqlMRPProviders.csproj index b77fba45..4d1e9aae 100644 --- a/NpgsqlMRPProviders/NpgsqlMRPProviders.csproj +++ b/NpgsqlMRPProviders/NpgsqlMRPProviders.csproj @@ -41,12 +41,17 @@ - + + ..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll + + + ..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll + @@ -66,5 +71,6 @@ + \ No newline at end of file diff --git a/NpgsqlMRPProviders/NpgsqlMembershipProvider.cs b/NpgsqlMRPProviders/NpgsqlMembershipProvider.cs index 78fc8555..b5289ab4 100644 --- a/NpgsqlMRPProviders/NpgsqlMembershipProvider.cs +++ b/NpgsqlMRPProviders/NpgsqlMembershipProvider.cs @@ -259,10 +259,10 @@ namespace Npgsql.Web using (NpgsqlCommand cmd = new NpgsqlCommand ("UPDATE Users " + " SET Passw = @Password, LastPasswordChangedDate = @LastPasswordChangedDate " + " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPwd); - cmd.Parameters.Add ("@LastPasswordChangedDate", DateTime.Now); - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPwd); + cmd.Parameters.AddWithValue ("@LastPasswordChangedDate", DateTime.Now); + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; conn.Open (); rowsAffected = cmd.ExecuteNonQuery (); conn.Close (); @@ -301,10 +301,10 @@ namespace Npgsql.Web using (NpgsqlCommand cmd = new NpgsqlCommand ("UPDATE Users " + " SET PasswordQuestion = @Question, PasswordAnswer = @Answer" + " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@Question", NpgsqlDbType.Varchar, 255).Value = newPwdQuestion; - cmd.Parameters.Add ("@Answer", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPwdAnswer); - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Question", NpgsqlDbType.Varchar, 255).Value = newPwdQuestion; + cmd.Parameters.AddWithValue ("@Answer", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPwdAnswer); + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; conn.Open (); rowsAffected = cmd.ExecuteNonQuery (); conn.Close (); @@ -388,24 +388,24 @@ namespace Npgsql.Web "@FailedPasswordAttemptCount , @FailedPasswordAttemptWindowStart, " + " @FailedPasswordAnswerAttemptCount, @FailedPasswordAnswerAttemptWindowStart)", conn)) { - cmd.Parameters.Add ("@PKID", NpgsqlDbType.Varchar).Value = providerUserKey; - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (password); - cmd.Parameters.Add ("@Email", NpgsqlDbType.Varchar, 128).Value = email; - cmd.Parameters.Add ("@PasswordQuestion", NpgsqlDbType.Varchar, 255).Value = passwordQuestion; - cmd.Parameters.Add ("@PasswordAnswer", NpgsqlDbType.Varchar, 255).Value = EncodePassword (passwordAnswer); - cmd.Parameters.Add ("@IsApproved", NpgsqlDbType.Bit).Value = isApproved; - cmd.Parameters.Add ("@Comment", NpgsqlDbType.Varchar, 255).Value = ""; - cmd.Parameters.Add ("@CreationDate", createDate); - cmd.Parameters.Add ("@LastPasswordChangedDate", createDate); - cmd.Parameters.Add ("@LastActivityDate", createDate); - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; - cmd.Parameters.Add ("@IsLockedOut", NpgsqlDbType.Bit).Value = false; - cmd.Parameters.Add ("@LastLockedOutDate", createDate); - cmd.Parameters.Add ("@FailedPasswordAttemptCount", NpgsqlDbType.Integer).Value = 0; - cmd.Parameters.Add ("@FailedPasswordAttemptWindowStart", createDate); - cmd.Parameters.Add ("@FailedPasswordAnswerAttemptCount", NpgsqlDbType.Integer).Value = 0; - cmd.Parameters.Add ("@FailedPasswordAnswerAttemptWindowStart", createDate); + cmd.Parameters.AddWithValue ("@PKID", NpgsqlDbType.Varchar).Value = providerUserKey; + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (password); + cmd.Parameters.AddWithValue ("@Email", NpgsqlDbType.Varchar, 128).Value = email; + cmd.Parameters.AddWithValue ("@PasswordQuestion", NpgsqlDbType.Varchar, 255).Value = passwordQuestion; + cmd.Parameters.AddWithValue ("@PasswordAnswer", NpgsqlDbType.Varchar, 255).Value = EncodePassword (passwordAnswer); + cmd.Parameters.AddWithValue ("@IsApproved", NpgsqlDbType.Bit).Value = isApproved; + cmd.Parameters.AddWithValue ("@Comment", NpgsqlDbType.Varchar, 255).Value = ""; + cmd.Parameters.AddWithValue ("@CreationDate", createDate); + cmd.Parameters.AddWithValue ("@LastPasswordChangedDate", createDate); + cmd.Parameters.AddWithValue ("@LastActivityDate", createDate); + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@IsLockedOut", NpgsqlDbType.Bit).Value = false; + cmd.Parameters.AddWithValue ("@LastLockedOutDate", createDate); + cmd.Parameters.AddWithValue ("@FailedPasswordAttemptCount", NpgsqlDbType.Integer).Value = 0; + cmd.Parameters.AddWithValue ("@FailedPasswordAttemptWindowStart", createDate); + cmd.Parameters.AddWithValue ("@FailedPasswordAnswerAttemptCount", NpgsqlDbType.Integer).Value = 0; + cmd.Parameters.AddWithValue ("@FailedPasswordAnswerAttemptWindowStart", createDate); conn.Open (); int recAdded = cmd.ExecuteNonQuery (); if (recAdded > 0) { @@ -450,8 +450,8 @@ namespace Npgsql.Web using (NpgsqlConnection conn = new NpgsqlConnection (connectionString)) { using (NpgsqlCommand cmd = new NpgsqlCommand ("DELETE FROM Users " + " WHERE Username = @Username AND Applicationname = @ApplicationName", conn)) { - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; conn.Open (); rowsAffected = cmd.ExecuteNonQuery (); if (deleteAllRelatedData) { @@ -481,7 +481,7 @@ namespace Npgsql.Web using (NpgsqlConnection conn = new NpgsqlConnection (connectionString)) { using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Count(*) FROM Users " + "WHERE ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = ApplicationName; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = ApplicationName; conn.Open (); totalRecords = 0; totalRecords = (int)((long)cmd.ExecuteScalar ()); @@ -539,8 +539,8 @@ namespace Npgsql.Web using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Count(*) FROM Users " + " WHERE LastActivityDate > @CompareDate AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@CompareDate", compareTime); - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@CompareDate", compareTime); + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; @@ -583,8 +583,8 @@ namespace Npgsql.Web using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Passw, PasswordAnswer, IsLockedOut FROM Users " + " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; NpgsqlDataReader reader = null; @@ -646,29 +646,30 @@ namespace Npgsql.Web " LastActivityDate, LastPasswordChangedDate, LastLockedOutDate" + " FROM Users WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; conn.Open (); using (NpgsqlDataReader reader = cmd.ExecuteReader ()) { if (reader.HasRows) { reader.Read (); u = GetUserFromReader (reader); - - if (userIsOnline) { - NpgsqlCommand updateCmd = new NpgsqlCommand ("UPDATE Users " + - "SET LastActivityDate = @LastActivityDate " + - "WHERE Username = @Username AND Applicationname = @ApplicationName", conn); - - updateCmd.Parameters.Add ("@LastActivityDate", DateTime.Now); - updateCmd.Parameters.Add ("@Username", username); - updateCmd.Parameters.Add ("@ApplicationName", pApplicationName); - - updateCmd.ExecuteNonQuery (); - } } reader.Close (); } } + + if (u != null && userIsOnline) { + NpgsqlCommand updateCmd = new NpgsqlCommand ("UPDATE Users " + + "SET LastActivityDate = @LastActivityDate " + + "WHERE Username = @Username AND Applicationname = @ApplicationName", conn); + + updateCmd.Parameters.AddWithValue ("@LastActivityDate", DateTime.Now); + updateCmd.Parameters.AddWithValue ("@Username", username); + updateCmd.Parameters.AddWithValue ("@ApplicationName", pApplicationName); + + updateCmd.ExecuteNonQuery (); + } + conn.Close (); } return u; @@ -694,7 +695,7 @@ namespace Npgsql.Web " LastActivityDate, LastPasswordChangedDate, LastLockedOutDate" + " FROM Users WHERE PKID = @PKID", conn)) { - cmd.Parameters.Add ("@PKID", NpgsqlDbType.Varchar).Value = providerUserKey; + cmd.Parameters.AddWithValue ("@PKID", NpgsqlDbType.Varchar).Value = providerUserKey; conn.Open (); using (NpgsqlDataReader reader = cmd.ExecuteReader ()) { @@ -702,16 +703,17 @@ namespace Npgsql.Web reader.Read (); u = GetUserFromReader (reader); - if (userIsOnline) { - NpgsqlCommand updateCmd = new NpgsqlCommand ("UPDATE Users " + - "SET LastActivityDate = @LastActivityDate " + - "WHERE PKID = @PKID", conn); - updateCmd.Parameters.Add ("@LastActivityDate", DateTime.Now); - updateCmd.Parameters.Add ("@PKID", providerUserKey); - updateCmd.ExecuteNonQuery (); - } + } reader.Close (); + if (u!=null && userIsOnline) { + NpgsqlCommand updateCmd = new NpgsqlCommand ("UPDATE Users " + + "SET LastActivityDate = @LastActivityDate " + + "WHERE PKID = @PKID", conn); + updateCmd.Parameters.AddWithValue ("@LastActivityDate", DateTime.Now); + updateCmd.Parameters.AddWithValue ("@PKID", providerUserKey); + updateCmd.ExecuteNonQuery (); + } } } conn.Close (); @@ -790,9 +792,9 @@ namespace Npgsql.Web using (NpgsqlCommand cmd = new NpgsqlCommand ("UPDATE Users " + " SET IsLockedOut = False, LastLockedOutDate = @LastLockedOutDate " + " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@LastLockedOutDate", DateTime.Now); - cmd.Parameters.Add ("@Username", username); - cmd.Parameters.Add ("@ApplicationName", pApplicationName); + cmd.Parameters.AddWithValue ("@LastLockedOutDate", DateTime.Now); + cmd.Parameters.AddWithValue ("@Username", username); + cmd.Parameters.AddWithValue ("@ApplicationName", pApplicationName); conn.Open (); rowsAffected = cmd.ExecuteNonQuery (); conn.Close (); @@ -819,8 +821,8 @@ namespace Npgsql.Web using (NpgsqlConnection conn = new NpgsqlConnection (connectionString)) { using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Username" + " FROM Users WHERE Email = @Email AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@Email", NpgsqlDbType.Varchar, 128).Value = email; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Email", NpgsqlDbType.Varchar, 128).Value = email; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; conn.Open (); username = (string)cmd.ExecuteScalar (); conn.Close (); @@ -870,8 +872,8 @@ namespace Npgsql.Web using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT PasswordAnswer, IsLockedOut FROM Users " + " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; string passwordAnswer = ""; @@ -900,10 +902,10 @@ namespace Npgsql.Web " SET Passw = @Password, LastPasswordChangedDate = @LastPasswordChangedDate" + " WHERE Username = @Username AND ApplicationName = @ApplicationName AND IsLockedOut = False", conn); - updateCmd.Parameters.Add ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPassword); - updateCmd.Parameters.Add ("@LastPasswordChangedDate", DateTime.Now); - updateCmd.Parameters.Add ("@Username", username); - updateCmd.Parameters.Add ("@ApplicationName", pApplicationName); + updateCmd.Parameters.AddWithValue ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPassword); + updateCmd.Parameters.AddWithValue ("@LastPasswordChangedDate", DateTime.Now); + updateCmd.Parameters.AddWithValue ("@Username", username); + updateCmd.Parameters.AddWithValue ("@ApplicationName", pApplicationName); rowsAffected = updateCmd.ExecuteNonQuery (); @@ -935,11 +937,11 @@ namespace Npgsql.Web " SET Email = @Email, Comment = @Comment," + " IsApproved = @IsApproved" + " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@Email", NpgsqlDbType.Varchar, 128).Value = user.Email; - cmd.Parameters.Add ("@Comment", NpgsqlDbType.Varchar, 255).Value = user.Comment; - cmd.Parameters.Add ("@IsApproved", NpgsqlDbType.Bit).Value = user.IsApproved; - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = user.UserName; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Email", NpgsqlDbType.Varchar, 128).Value = user.Email; + cmd.Parameters.AddWithValue ("@Comment", NpgsqlDbType.Varchar, 255).Value = user.Comment; + cmd.Parameters.AddWithValue ("@IsApproved", NpgsqlDbType.Bit).Value = user.IsApproved; + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = user.UserName; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; conn.Open (); cmd.ExecuteNonQuery (); conn.Close (); @@ -966,8 +968,8 @@ namespace Npgsql.Web using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Passw, IsApproved FROM Users " + " WHERE Username = @Username AND ApplicationName = @ApplicationName AND IsLockedOut = False", conn)) { - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; bool isApproved = false; @@ -993,9 +995,9 @@ namespace Npgsql.Web NpgsqlCommand updateCmd = new NpgsqlCommand ("UPDATE Users SET LastLoginDate = @LastLoginDate" + " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn); - updateCmd.Parameters.Add ("@LastLoginDate", DateTime.Now); - updateCmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - updateCmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + updateCmd.Parameters.AddWithValue ("@LastLoginDate", DateTime.Now); + updateCmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + updateCmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; updateCmd.ExecuteNonQuery (); } @@ -1032,8 +1034,8 @@ namespace Npgsql.Web " FROM Users " + " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; DateTime windowStart = new DateTime (); @@ -1079,10 +1081,10 @@ namespace Npgsql.Web cmd.Parameters.Clear (); - cmd.Parameters.Add ("@Count", NpgsqlDbType.Integer).Value = 1; - cmd.Parameters.Add ("@WindowStart", DateTime.Now); - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Count", NpgsqlDbType.Integer).Value = 1; + cmd.Parameters.AddWithValue ("@WindowStart", DateTime.Now); + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.ExecuteNonQuery (); @@ -1097,10 +1099,10 @@ namespace Npgsql.Web cmd.Parameters.Clear (); - cmd.Parameters.Add ("@IsLockedOut", NpgsqlDbType.Bit).Value = true; - cmd.Parameters.Add ("@LastLockedOutDate", DateTime.Now); - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@IsLockedOut", NpgsqlDbType.Bit).Value = true; + cmd.Parameters.AddWithValue ("@LastLockedOutDate", DateTime.Now); + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.ExecuteNonQuery (); @@ -1120,9 +1122,9 @@ namespace Npgsql.Web cmd.Parameters.Clear (); - cmd.Parameters.Add ("@Count", NpgsqlDbType.Integer).Value = failureCount; - cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@Count", NpgsqlDbType.Integer).Value = failureCount; + cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.ExecuteNonQuery (); } @@ -1260,8 +1262,8 @@ namespace Npgsql.Web using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT count(*)" + " FROM Users " + " WHERE Username LIKE @uns AND ApplicationName = @appn ", conn)) { - cmd.Parameters.Add ("@uns", usernameToMatch); - cmd.Parameters.Add ("@appn", ApplicationName); + cmd.Parameters.AddWithValue ("@uns", usernameToMatch); + cmd.Parameters.AddWithValue ("@appn", ApplicationName); totalRecords = (int)((long)cmd.ExecuteScalar ()); } if (totalRecords > 0) @@ -1271,8 +1273,8 @@ namespace Npgsql.Web " FROM Users " + " WHERE Username LIKE @UsernameSearch AND ApplicationName = @ApplicationName " + " ORDER BY Username Asc", conn)) { - cmd.Parameters.Add ("@UsernameSearch", NpgsqlDbType.Varchar, 255).Value = usernameToMatch; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; + cmd.Parameters.AddWithValue ("@UsernameSearch", NpgsqlDbType.Varchar, 255).Value = usernameToMatch; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; using (NpgsqlDataReader reader = cmd.ExecuteReader ()) { int counter = 0; @@ -1319,8 +1321,8 @@ namespace Npgsql.Web using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT count(*) " + " FROM Users " + " WHERE Email LIKE @EmailSearch AND ApplicationName = @appname ", conn)) { - cmd.Parameters.Add ("@EmailSearch", emailToMatch); - cmd.Parameters.Add ("@appname", this.ApplicationName); + cmd.Parameters.AddWithValue ("@EmailSearch", emailToMatch); + cmd.Parameters.AddWithValue ("@appname", this.ApplicationName); totalRecords = (int)(long)cmd.ExecuteScalar (); } @@ -1330,8 +1332,8 @@ namespace Npgsql.Web " FROM Users " + " WHERE Email LIKE @EmailSearch AND ApplicationName = @ApplicationName " + " ORDER BY Username Asc", conn)) { - cmd.Parameters.Add ("@EmailSearch", NpgsqlDbType.Varchar, 255).Value = emailToMatch; - cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = ApplicationName; + cmd.Parameters.AddWithValue ("@EmailSearch", NpgsqlDbType.Varchar, 255).Value = emailToMatch; + cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = ApplicationName; using (NpgsqlDataReader reader = cmd.ExecuteReader ()) { int counter = 0; int startIndex = pageSize * pageIndex; diff --git a/NpgsqlMRPProviders/NpgsqlProfileProvider.cs b/NpgsqlMRPProviders/NpgsqlProfileProvider.cs index eb880091..7db4faac 100644 --- a/NpgsqlMRPProviders/NpgsqlProfileProvider.cs +++ b/NpgsqlMRPProviders/NpgsqlProfileProvider.cs @@ -111,8 +111,8 @@ namespace Npgsql.Web using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = "select username, uniqueid, lastactivitydate, lastupdateddate, isanonymous from profiles where username like @username and applicationname = @appname"; - cmd.Parameters.Add ("@username", usernameToMatch); - cmd.Parameters.Add ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@username", usernameToMatch); + cmd.Parameters.AddWithValue ("@appname", applicationName); cnx.Open (); using (NpgsqlDataReader r = cmd.ExecuteReader ()) { if (r.HasRows) { @@ -206,8 +206,8 @@ namespace Npgsql.Web "profiledata.uniqueid = profiles.uniqueid " + "and profiles.username = @username " + "and profiles.applicationname = @appname"; - cmd.Parameters.Add ("@username", username); - cmd.Parameters.Add ("@appname", applicationName); + cmd.Parameters.AddWithValue ("@username", username); + cmd.Parameters.AddWithValue ("@appname", applicationName); cnx.Open (); using (NpgsqlDataReader r = cmd.ExecuteReader ( System.Data.CommandBehavior.CloseConnection | System.Data.CommandBehavior.SingleRow)) { @@ -249,8 +249,8 @@ namespace Npgsql.Web cmdpi.CommandText = "select count(uniqueid) " + "from profiles where username = @username " + "and applicationname = @appname"; - cmdpi.Parameters.Add ("@username", username); - cmdpi.Parameters.Add ("@appname", applicationName); + cmdpi.Parameters.AddWithValue ("@username", username); + cmdpi.Parameters.AddWithValue ("@appname", applicationName); long c = (long)cmdpi.ExecuteScalar (); if (c == 0) { @@ -263,7 +263,7 @@ namespace Npgsql.Web // using (NpgsqlCommand cmdpdins = cnx.CreateCommand ()) { cmdpdins.CommandText = "insert into profiledata (uniqueid) values (@puid)"; - cmdpdins.Parameters.Add ("@puid", puid); + cmdpdins.Parameters.AddWithValue ("@puid", puid); cmdpdins.ExecuteNonQuery (); } } else { @@ -288,8 +288,8 @@ namespace Npgsql.Web "where uniqueid = @puid ", s.Name ); - cmd.Parameters.Add ("@puid", puid); - cmd.Parameters.Add ("@val", s.PropertyValue); + cmd.Parameters.AddWithValue ("@puid", puid); + cmd.Parameters.AddWithValue ("@val", s.PropertyValue); cmd.ExecuteNonQuery (); } } diff --git a/NpgsqlMRPProviders/NpgsqlRoleProvider.cs b/NpgsqlMRPProviders/NpgsqlRoleProvider.cs index 064f4da8..5dc60062 100644 --- a/NpgsqlMRPProviders/NpgsqlRoleProvider.cs +++ b/NpgsqlMRPProviders/NpgsqlRoleProvider.cs @@ -123,9 +123,9 @@ namespace Npgsql.Web using (var comm = conn.CreateCommand()) { comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "insert into usersroles (applicationname, username, rolename) values (@appname,@user,@role)"; - comm.Parameters.Add ("appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; - NpgsqlParameter pu = comm.Parameters.Add ("user", NpgsqlTypes.NpgsqlDbType.Varchar, 250); - NpgsqlParameter pr = comm.Parameters.Add ("role", NpgsqlTypes.NpgsqlDbType.Varchar, 250); + comm.Parameters.AddWithValue ("appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; + NpgsqlParameter pu = comm.Parameters.AddWithValue ("user", NpgsqlTypes.NpgsqlDbType.Varchar, 250); + NpgsqlParameter pr = comm.Parameters.AddWithValue ("role", NpgsqlTypes.NpgsqlDbType.Varchar, 250); foreach (string u in usernames) { pu.Value = u; foreach (string r in roleNames) { @@ -174,9 +174,9 @@ namespace Npgsql.Web using (var comm = conn.CreateCommand()) { comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "insert into roles (rolename, applicationname, comment) values (@rolename, @appname, @comment)"; - comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; - comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; - comm.Parameters.Add ("@comment", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; + comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; + comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; + comm.Parameters.AddWithValue ("@comment", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; comm.ExecuteNonQuery (); } } @@ -206,9 +206,9 @@ namespace Npgsql.Web using (var comm = conn.CreateCommand()) { comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "delete from roles where rolename = @rolename and applicationname = @appname"; - comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; - comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; - comm.Parameters.Add ("@comment", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; + comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; + comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; + comm.Parameters.AddWithValue ("@comment", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; comm.ExecuteNonQuery (); } } @@ -245,9 +245,9 @@ namespace Npgsql.Web comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "select username from usersroles where applicationname = @appname " + "and rolename = @rolename and username like @username"; - comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = rolename; - comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; - comm.Parameters.Add ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = usernameToMatch; + comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = rolename; + comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; + comm.Parameters.AddWithValue ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = usernameToMatch; using (var reader = comm.ExecuteReader()) { var r = new List (); var usernameColumn = reader.GetOrdinal ("username"); @@ -272,7 +272,7 @@ namespace Npgsql.Web comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "select rolename from roles where applicationname = @appname"; - comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; + comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; using (var reader = comm.ExecuteReader()) { var r = new List (); var rolenameColumn = reader.GetOrdinal ("rolename"); @@ -301,8 +301,8 @@ namespace Npgsql.Web using (var comm = conn.CreateCommand()) { comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "select rolename from usersroles where applicationname = @appname and username = @username"; - comm.Parameters.Add ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = username; - comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; + comm.Parameters.AddWithValue ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = username; + comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; using (var reader = comm.ExecuteReader()) { var r = new List (); var rolenameColumn = reader.GetOrdinal ("rolename"); @@ -333,8 +333,8 @@ namespace Npgsql.Web comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "select username from usersroles where applicationname = @appname " + "and rolename = @rolename"; - comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 255).Value = roleName; - comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 255).Value = applicationName; + comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 255).Value = roleName; + comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 255).Value = applicationName; using (var reader = comm.ExecuteReader()) { var r = new List (); var usernameColumn = reader.GetOrdinal ("username"); @@ -370,9 +370,9 @@ namespace Npgsql.Web comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "select count(*)>0 from usersroles where applicationname = @appname " + "and username = @username and rolename = @rolename"; - comm.Parameters.Add ("@username", username); - comm.Parameters.Add ("@rolename", roleName); - comm.Parameters.Add ("@appname", applicationName); + comm.Parameters.AddWithValue ("@username", username); + comm.Parameters.AddWithValue ("@rolename", roleName); + comm.Parameters.AddWithValue ("@appname", applicationName); var retval = (bool)comm.ExecuteScalar (); return retval; } @@ -401,9 +401,9 @@ namespace Npgsql.Web comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "delete from usersroles where applicationname = @appname and " + "username = @username and rolename = @rolename"; - NpgsqlParameter pu = comm.Parameters.Add ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250); - NpgsqlParameter pr = comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250); - comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; + NpgsqlParameter pu = comm.Parameters.AddWithValue ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250); + NpgsqlParameter pr = comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250); + comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; foreach (string rolename in roleNames) { pr.Value = rolename; foreach (string username in usernames) { @@ -429,8 +429,8 @@ namespace Npgsql.Web using (var comm = new NpgsqlCommand("role_exists", conn)) { comm.CommandType = System.Data.CommandType.Text; comm.CommandText = "select Count(*)>0 from roles where applicationname = @applicationname and rolename = @rolename"; - comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; - comm.Parameters.Add ("@applicationname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; + comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; + comm.Parameters.AddWithValue ("@applicationname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; var retval = (bool)comm.ExecuteScalar (); return retval; } diff --git a/NpgsqlMRPProviders/packages.config b/NpgsqlMRPProviders/packages.config new file mode 100644 index 00000000..f5cffebe --- /dev/null +++ b/NpgsqlMRPProviders/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/WorkFlowProvider/NpgsqlContentProvider.cs b/WorkFlowProvider/NpgsqlContentProvider.cs index a99e2946..81e93265 100644 --- a/WorkFlowProvider/NpgsqlContentProvider.cs +++ b/WorkFlowProvider/NpgsqlContentProvider.cs @@ -33,11 +33,11 @@ namespace Yavsc using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = "insert into commandes (prdref,creation,params,clientname,applicationname) values (@pref,@creat,@prms,@cli,@app) returning id"; - cmd.Parameters.Add ("@pref", com.ProductRef); - cmd.Parameters.Add ("@creat", com.CreationDate); - cmd.Parameters.Add ("@prms", JsonConvert.SerializeObject(com.Parameters)); - cmd.Parameters.Add ("@cli", Membership.GetUser().UserName); - cmd.Parameters.Add ("@app", ApplicationName); + cmd.Parameters.AddWithValue ("@pref", com.ProductRef); + cmd.Parameters.AddWithValue ("@creat", com.CreationDate); + cmd.Parameters.AddWithValue ("@prms", JsonConvert.SerializeObject(com.Parameters)); + cmd.Parameters.AddWithValue ("@cli", Membership.GetUser().UserName); + cmd.Parameters.AddWithValue ("@app", ApplicationName); cnx.Open (); com.Id = id = (long)cmd.ExecuteScalar (); } @@ -64,8 +64,8 @@ namespace Yavsc using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = "select id,creation,prdref,params from commandes where @user = clientname and applicationname = @app"; - cmd.Parameters.Add ("@user", username); - cmd.Parameters.Add ("@app", this.ApplicationName); + cmd.Parameters.AddWithValue ("@user", username); + cmd.Parameters.AddWithValue ("@app", this.ApplicationName); cnx.Open (); using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) { while (rdr.Read ()) { @@ -249,7 +249,7 @@ namespace Yavsc cmd.CommandText = "select _id from estimate where client = @uname or username = @uname"; - cmd.Parameters.Add ("@uname", username); + cmd.Parameters.AddWithValue ("@uname", username); cnx.Open (); List ests = new List (); using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) { @@ -283,11 +283,11 @@ namespace Yavsc cmd.CommandText += "client = @clid"; if (responsible != null) cmd.CommandText += " and "; - cmd.Parameters.Add ("@clid", client); + cmd.Parameters.AddWithValue ("@clid", client); } if (responsible != null) { cmd.CommandText += "username = @resp"; - cmd.Parameters.Add ("@resp", responsible); + cmd.Parameters.AddWithValue ("@resp", responsible); } cnx.Open (); @@ -314,7 +314,7 @@ namespace Yavsc cmd.CommandText = "delete from writtings where _id = @wrid"; - cmd.Parameters.Add ("@wrid", wrid); + cmd.Parameters.AddWithValue ("@wrid", wrid); cnx.Open (); cmd.ExecuteNonQuery (); } @@ -332,7 +332,7 @@ namespace Yavsc cmd.CommandText = "delete from estimate where _id = @estid"; - cmd.Parameters.Add ("@estid", estid); + cmd.Parameters.AddWithValue ("@estid", estid); cnx.Open (); cmd.ExecuteNonQuery (); } @@ -351,7 +351,7 @@ namespace Yavsc cmd.CommandText = "select title,username,client,description from estimate where _id = @estid"; - cmd.Parameters.Add ("@estid", estimid); + cmd.Parameters.AddWithValue ("@estid", estimid); cnx.Open (); Estimate est = null; using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) { @@ -372,7 +372,7 @@ namespace Yavsc est.Description = rdr.GetString (index); est.Id = estimid; using (NpgsqlCommand cmdw = new NpgsqlCommand ("select _id, productid, ucost, count, description from writtings where estimid = @estid", cnx)) { - cmdw.Parameters.Add("@estid", estimid); + cmdw.Parameters.AddWithValue("@estid", estimid); using (NpgsqlDataReader rdrw = cmdw.ExecuteReader ()) { List lw = null; if (rdrw.HasRows) { @@ -422,11 +422,11 @@ namespace Yavsc "count = @count, " + "productid = @prdid " + "where _id = @wrid"; - cmd.Parameters.Add ("@wrid", wr.Id); - cmd.Parameters.Add ("@desc", wr.Description); - cmd.Parameters.Add ("@ucost", wr.UnitaryCost); - cmd.Parameters.Add ("@prdid", wr.ProductReference); - cmd.Parameters.Add ("@count", wr.Count); + cmd.Parameters.AddWithValue ("@wrid", wr.Id); + cmd.Parameters.AddWithValue ("@desc", wr.Description); + cmd.Parameters.AddWithValue ("@ucost", wr.UnitaryCost); + cmd.Parameters.AddWithValue ("@prdid", wr.ProductReference); + cmd.Parameters.AddWithValue ("@count", wr.Count); cnx.Open (); cmd.ExecuteNonQuery (); cnx.Close (); @@ -445,11 +445,11 @@ namespace Yavsc cmd.CommandText = "update estimate set title = @tit, username = @un, " + "description = @descr, client = @cli where _id = @estid"; - cmd.Parameters.Add ("@tit", estim.Title); - cmd.Parameters.Add ("@un", estim.Responsible); - cmd.Parameters.Add ("@descr", estim.Description); - cmd.Parameters.Add ("@cli", estim.Client); - cmd.Parameters.Add ("@estid", estim.Id); + cmd.Parameters.AddWithValue ("@tit", estim.Title); + cmd.Parameters.AddWithValue ("@un", estim.Responsible); + cmd.Parameters.AddWithValue ("@descr", estim.Description); + cmd.Parameters.AddWithValue ("@cli", estim.Client); + cmd.Parameters.AddWithValue ("@estid", estim.Id); cnx.Open (); cmd.ExecuteNonQuery (); cnx.Close (); @@ -472,12 +472,12 @@ namespace Yavsc using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = "insert into writtings (description, estimid, ucost, count, productid) VALUES (@dscr,@estid,@ucost,@count,@prdid) returning _id"; - cmd.Parameters.Add ("@dscr", desc); - cmd.Parameters.Add("@estid", estid); + cmd.Parameters.AddWithValue ("@dscr", desc); + cmd.Parameters.AddWithValue("@estid", estid); - cmd.Parameters.Add("@ucost", ucost); - cmd.Parameters.Add("@count", count); - cmd.Parameters.Add("@prdid", productid); + cmd.Parameters.AddWithValue("@ucost", ucost); + cmd.Parameters.AddWithValue("@count", count); + cmd.Parameters.AddWithValue("@prdid", productid); cnx.Open (); long res = (long) cmd.ExecuteScalar (); @@ -498,8 +498,8 @@ namespace Yavsc using (NpgsqlCommand cmd = cnx.CreateCommand ()) { cmd.CommandText = "update writtings set description = @dscr where _id = @writid"; - cmd.Parameters.Add ("@tit", newDesc); - cmd.Parameters.Add ("@writid", writid); + cmd.Parameters.AddWithValue ("@tit", newDesc); + cmd.Parameters.AddWithValue ("@writid", writid); cnx.Open (); cmd.ExecuteNonQuery (); cnx.Close (); @@ -522,11 +522,11 @@ namespace Yavsc cmd.CommandText = "insert into estimate (title,description,username,client,applicationname) " + "values (@tit,@descr,@resp,@un,@app) returning _id"; - cmd.Parameters.Add ("@tit", title); - cmd.Parameters.Add ("@un", client); - cmd.Parameters.Add ("@resp", responsible); - cmd.Parameters.Add ("@descr", description); - cmd.Parameters.Add("@app", ApplicationName); + cmd.Parameters.AddWithValue ("@tit", title); + cmd.Parameters.AddWithValue ("@un", client); + cmd.Parameters.AddWithValue ("@resp", responsible); + cmd.Parameters.AddWithValue ("@descr", description); + cmd.Parameters.AddWithValue("@app", ApplicationName); cnx.Open (); Estimate created = new Estimate (); created.Id = (long)cmd.ExecuteScalar (); diff --git a/WorkFlowProvider/NpgsqlContentProvider.csproj b/WorkFlowProvider/NpgsqlContentProvider.csproj index e3109a37..916cc466 100644 --- a/WorkFlowProvider/NpgsqlContentProvider.csproj +++ b/WorkFlowProvider/NpgsqlContentProvider.csproj @@ -32,7 +32,6 @@ - @@ -44,6 +43,12 @@ + + ..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll + + + ..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll + @@ -56,4 +61,7 @@ YavscModel + + + \ No newline at end of file diff --git a/WorkFlowProvider/packages.config b/WorkFlowProvider/packages.config new file mode 100644 index 00000000..f5cffebe --- /dev/null +++ b/WorkFlowProvider/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/google-services.json b/google-services.json new file mode 100644 index 00000000..c0f09126 --- /dev/null +++ b/google-services.json @@ -0,0 +1 @@ +{"project_info":{"project_id":"yavsc-001","project_number":"325408689282","name":"Yavsc"},"client":[{"client_info":{"client_id":"android:fr.pschneider.android.wearable.speedtracker","client_type":1,"android_client_info":{"package_name":"fr.pschneider.android.wearable.speedtracker"}},"oauth_client":[],"services":{"analytics_service":{"status":1},"cloud_messaging_service":{"status":2,"apns_config":[]},"appinvite_service":{"status":1,"other_platform_oauth_client":[]},"google_signin_service":{"status":1},"ads_service":{"status":1}}}]} \ No newline at end of file diff --git a/plugins/fortune/MyClass.cs b/plugins/fortune/MyClass.cs index 19e85300..1fdc5f5f 100644 --- a/plugins/fortune/MyClass.cs +++ b/plugins/fortune/MyClass.cs @@ -2,7 +2,6 @@ using Yavsc.Model; using System.Configuration; using System.Text; -using System.Web.Mvc; using System.Collections.Generic; namespace fortune diff --git a/web/ApiControllers/Calendar/CalendarController.cs b/web/ApiControllers/Calendar/CalendarController.cs index 86710f92..9cf2eacd 100644 --- a/web/ApiControllers/Calendar/CalendarController.cs +++ b/web/ApiControllers/Calendar/CalendarController.cs @@ -1,5 +1,5 @@ // -// NightFlashController.cs +// CalendarController.cs // // Author: // Paul Schneider @@ -22,6 +22,12 @@ using System; using System.Web.Http; using System.ComponentModel.DataAnnotations; using Yavsc.ApiControllers.Calendar.Model; +using Yavsc.Helpers; +using System.ComponentModel; +using Yavsc.Model; +using System.Web.Security; +using System.Web.Profile; +using System.Web.Http.ModelBinding; namespace Yavsc.ApiControllers.Calendar { @@ -30,6 +36,44 @@ namespace Yavsc.ApiControllers.Calendar /// public class CalendarController: ApiController { + YaEvent[] getTestList() + { + return new YaEvent[] { + new YaEvent () { + Description = "Test Descr", + Title = "Night club special bubble party", + Location = new Position () { + Longitude = 0, + Latitude = 0 + } + }, + new YaEvent () { + Title = "Test2", + ImgLocator = "http://bla/im.png", + Location = new Position () { + Longitude = 0, + Latitude = 0 + } + }, + new YaEvent () { + Description = "Test Descr", + Title = "Night club special bubble party", + Location = new Position () { + Longitude = 0, + Latitude = 0 + } + }, + new YaEvent () { + Title = "Test2", + ImgLocator = "http://bla/im.png", + Location = new Position () { + Longitude = 0, + Latitude = 0 + } + } + }; + } + /// /// List events according the specified search arguments. /// @@ -38,40 +82,7 @@ namespace Yavsc.ApiControllers.Calendar [HttpGet] public YaEvent[] List ([FromUri] PositionAndKeyphrase args) { - return new YaEvent[] { - new YaEvent () { - Description = "Test Descr", - Title = "Night club special bubble party", - Location = new Position() { - Longitude = 0, - Latitude = 0 - } - }, - new YaEvent () { - Title = "Test2", - ImgLocator = "http://bla/im.png", - Location = new Position() { - Longitude = 0, - Latitude = 0 - } - }, - new YaEvent () { - Description = "Test Descr", - Title = "Night club special bubble party", - Location = new Position() { - Longitude = 0, - Latitude = 0 - } - }, - new YaEvent () { - Title = "Test2", - ImgLocator = "http://bla/im.png", - Location = new Position() { - Longitude = 0, - Latitude = 0 - } - } - }; + return getTestList(); } /// @@ -119,12 +130,260 @@ namespace Yavsc.ApiControllers.Calendar /// Ev. public int PostEvent ([FromBody] ProvidedEvent ev) { - return -1; + throw new NotImplementedException(); + + } + /// + /// Notification. + /// + public class Notification { + /// + /// The title. + /// + public string title; + /// + /// The body. + /// + public string body; + /// + /// The icon. + /// + public string icon; + /// + /// The sound. + /// + public string sound; + /// + /// The tag. + /// + public string tag; + /// + /// The color. + /// + public string color; + /// + /// The click action. + /// + public string click_action; + } + // https://gcm-http.googleapis.com/gcm/send + /// + /// Message with payload. + /// + public class MessageWithPayload { + /// + /// To. + /// + public string to; + /// + /// The registration identifiers. + /// + public string [] registration_ids; + /// + /// The data. + /// + public T[] data ; + /// + /// The notification. + /// + public Notification notification; + /// + /// The collapse key. + /// + public string collapse_key; // in order to collapse ... + /// + /// The priority. + /// + public int priority; // between 0 and 10, 10 is the lowest! + /// + /// The content available. + /// + public bool content_available; + /// + /// The delay while idle. + /// + public bool delay_while_idle; + /// + /// The time to live. + /// + public int time_to_live; // seconds + /// + /// The name of the restricted package. + /// + public string restricted_package_name; + /// + /// The dry run. + /// + public bool dry_run; + /// + /// Validate the specified modelState. + /// + /// Model state. + public void Validate(ModelStateDictionary modelState) { + if (to==null && registration_ids == null) { + modelState.AddModelError ("to", "One of \"to\" or \"registration_ids\" parameters must be specified"); + modelState.AddModelError ("registration_ids", "*"); + } + if (notification == null && data == null) { + modelState.AddModelError ("notification", "At least one of \"notification\" or \"data\" parameters must be specified"); + modelState.AddModelError ("data", "*"); + } + if (notification != null) { + if (notification.icon == null) + modelState.AddModelError ("notification.icon", "please, specify an icon resoure name"); + if (notification.title == null) + modelState.AddModelError ("notification.title", "please, specify a title"); + } + } + } + + /// + /// Message with payload response. + /// + public class MessageWithPayloadResponse { + /// + /// The multicast identifier. + /// + public int multicast_id; + /// + /// The success count. + /// + public int success; + /// + /// The failure count. + /// + public int failure; + /// + /// The canonical identifiers... ?!? + /// + public int canonical_ids; + /// + /// Detailled result. + /// + public class Result { + /// + /// The message identifier. + /// + public string message_id; + /// + /// The registration identifier. + /// + public string registration_id; + /// + /// The error. + /// + public string error; + } + + /// + /// The results. + /// + public Result [] results; + } + + /// + /// GCM register model. + /// + public class GCMRegisterModel { + /// + /// Gets or sets the name of the user. + /// + /// The name of the user. + [Localizable(true)] + [Display(ResourceType=typeof(LocalizedText),Name="UserName")] + [Required(ErrorMessage = "S'il vous plait, entrez un nom d'utilisateur")] + public string UserName { get; set; } + + /// + /// Gets or sets the password. + /// + /// The password. + [DisplayName("Mot de passe")] + [Required(ErrorMessage = "S'il vous plait, entez un mot de passe")] + public string Password { get; set; } + + /// + /// Gets or sets the email. + /// + /// The email. + [DisplayName("Adresse e-mail")] + [Required(ErrorMessage = "S'il vous plait, entrez un e-mail valide")] + public string Email { get; set; } + + /// + /// Gets or sets the registration identifier against Google Clood Messaging and their info on this application. + /// + /// The registration identifier. + public string RegistrationId { get; set; } + + } + + /// + /// Registers with push notifications enabled. + /// + /// Model. + [ValidateAjax] + public void RegisterWithPushNotifications(GCMRegisterModel model) + { + if (ModelState.IsValid) { + MembershipCreateStatus mcs; + var user = Membership.CreateUser ( + model.UserName, + model.Password, + model.Email, + null, + null, + false, + out mcs); + switch (mcs) { + case MembershipCreateStatus.DuplicateEmail: + ModelState.AddModelError ("Email", "Cette adresse e-mail correspond " + + "à un compte utilisateur existant"); + break; + case MembershipCreateStatus.DuplicateUserName: + ModelState.AddModelError ("UserName", "Ce nom d'utilisateur est " + + "déjà enregistré"); + break; + case MembershipCreateStatus.Success: + YavscHelpers.SendActivationEmail (user); + // TODO set registration id + throw new NotImplementedException (); + } + } + } + + /// + /// Sets the registration identifier. + /// + /// Registration identifier. [Authorize] - void NotifyEvent(EventPub evpub) { - throw new NotImplementedException(); + public void SetRegistrationId(string registrationId) + { + // TODO set registration id + setRegistrationId (Membership.GetUser ().UserName, registrationId); + } + + private void setRegistrationId(string username, string regid) { + ProfileBase pr = ProfileBase.Create(username); + pr.SetPropertyValue ("gregid", regid); + } + + /// + /// Notifies the event. + /// + /// Evpub. + public MessageWithPayloadResponse NotifyEvent(EventPub evpub) { + SimpleJsonPostMethod,MessageWithPayloadResponse> r = + new SimpleJsonPostMethod,MessageWithPayloadResponse>( + "https://gcm-http.googleapis.com/gcm/send"); + using (r) { + var msg = new MessageWithPayload () { data = new YaEvent[] { (YaEvent)evpub } }; + msg.to = string.Join (" ", Circle.Union (evpub.Circles)); + + return r.Invoke (msg); + } } } } diff --git a/web/ApiControllers/Calendar/Model/Circle.cs b/web/ApiControllers/Calendar/Model/Circle.cs index 855397e6..71a7c5fa 100644 --- a/web/ApiControllers/Calendar/Model/Circle.cs +++ b/web/ApiControllers/Calendar/Model/Circle.cs @@ -1,5 +1,5 @@ // -// NightFlashController.cs +// Circle.cs // // Author: // Paul Schneider @@ -21,13 +21,42 @@ using System; using System.Web.Http; using System.ComponentModel.DataAnnotations; +using System.Collections.Generic; namespace Yavsc.ApiControllers.Calendar.Model { - class Circle + /// + /// Circle. + /// + public class Circle { + /// + /// Gets or sets the title. + /// + /// The title. public string Title { get; set; } - string [] Users { get; set; } + + /// + /// Gets or sets the users. + /// + /// The users. + public string [] Users { get; set; } + + /// + /// Union the specified that. + /// + /// That. + public static string [] Union (Circle []those) + { + List content = new List(); + foreach (Circle c in those) { + foreach (string user_name in c.Users) { + if (!content.Contains (user_name)) + content.Add (user_name); + } + } + return content.ToArray (); + } } } diff --git a/web/ApiControllers/Calendar/Model/EstablishmentType.cs b/web/ApiControllers/Calendar/Model/EstablishmentType.cs deleted file mode 100644 index 2d5da9e5..00000000 --- a/web/ApiControllers/Calendar/Model/EstablishmentType.cs +++ /dev/null @@ -1,62 +0,0 @@ -// -// NFEvent.cs -// -// Author: -// Paul Schneider -// -// Copyright (c) 2015 Paul Schneider -// -// 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 . - -using System; -using System.Web.Http; -using System.ComponentModel.DataAnnotations; - -namespace Yavsc.ApiControllers.Calendar.Model -{ - /// - /// Establishment type. - /// - public enum EstablishmentType - { - /// - /// The discotheque. - /// - Discotheque, - /// - /// The piano bar. - /// - PianoBar, - /// - /// The bar. - /// - Bar, - /// - /// The place publique. - /// - PlacePublique, - /// - /// The maison privee. - /// - MaisonPrivee, - /// - /// The domaine publique. - /// - DomainePublique, - /// - /// The domaine prive. - /// - DomainePrive - } -} diff --git a/web/ApiControllers/Calendar/Model/EventPub.cs b/web/ApiControllers/Calendar/Model/EventPub.cs index ad340995..ecd3eab6 100644 --- a/web/ApiControllers/Calendar/Model/EventPub.cs +++ b/web/ApiControllers/Calendar/Model/EventPub.cs @@ -1,5 +1,5 @@ // -// NightFlashController.cs +// EventPub.cs // // Author: // Paul Schneider @@ -22,12 +22,21 @@ using System; using System.Web.Http; using System.ComponentModel.DataAnnotations; using Yavsc.ApiControllers.Calendar.Model; +using Yavsc.Model; namespace Yavsc.ApiControllers.Calendar.Model { - class EventPub: YaEvent + /// + /// Event pub. + /// + public class EventPub: YaEvent { - Circle[] Circles { get; set; } + /// + /// Gets or sets the circles. + /// + /// The circles. + [Display(ResourceType=typeof(LocalizedText),Name="Circles")] + public Circle[] Circles { get; set; } } } diff --git a/web/ApiControllers/Calendar/Model/EventType.cs b/web/ApiControllers/Calendar/Model/EventType.cs deleted file mode 100644 index 64187483..00000000 --- a/web/ApiControllers/Calendar/Model/EventType.cs +++ /dev/null @@ -1,71 +0,0 @@ -// -// EventType.cs -// -// Author: -// Paul Schneider -// -// Copyright (c) 2015 Paul Schneider -// -// 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 . - -using System; -using System.Web.Http; -using System.ComponentModel.DataAnnotations; - -namespace Yavsc.ApiControllers.Calendar.Model -{ - /// - /// Event type. - /// - public enum EventType - { - /// - /// The concert gratuit. - /// - ConcertGratuit, - /// - /// The concert prive. - /// - ConcertPrive, - /// - /// The distraciton. - /// - Distraciton, - /// - /// The rencontre. - /// - Rencontre, - /// - /// The assemblee. - /// - Assemblee, - /// - /// The reunion. - /// - Reunion, - /// - /// The bureau. - /// - Bureau, - /// - /// The manifestation. - /// - Manifestation, - /// - /// The zone de danger. - /// - ZoneDeDanger - } - -} diff --git a/web/ApiControllers/Calendar/Model/UserPrefs.cs b/web/ApiControllers/Calendar/Model/UserPrefs.cs index ea185b11..48e5fe3c 100644 --- a/web/ApiControllers/Calendar/Model/UserPrefs.cs +++ b/web/ApiControllers/Calendar/Model/UserPrefs.cs @@ -1,5 +1,5 @@ // -// NightFlashController.cs +// UserPrefs.cs // // Author: // Paul Schneider @@ -28,7 +28,7 @@ namespace Yavsc.ApiControllers.Calendar.Model class UserPrefs { Circle [] Circles { get; set ; } - Dictionary MusicTypeRatings { get; set; } + Dictionary EventTypeRatings { get; set; } Dictionary LocationTypeRatings { get; set; } } } diff --git a/web/ApiControllers/Calendar/Model/YaEvent.cs b/web/ApiControllers/Calendar/Model/YaEvent.cs index 58c314be..74bc4d85 100644 --- a/web/ApiControllers/Calendar/Model/YaEvent.cs +++ b/web/ApiControllers/Calendar/Model/YaEvent.cs @@ -22,6 +22,7 @@ using System; using System.Web.Http; using System.ComponentModel.DataAnnotations; +using Yavsc.Model; namespace Yavsc.ApiControllers.Calendar.Model { @@ -31,71 +32,65 @@ namespace Yavsc.ApiControllers.Calendar.Model /// public class YaEvent { - /// - /// Initializes a new instance of the class. - /// - public YaEvent() - { - this.EstabType = EstablishmentType.DomainePublique; - this.NFEvType = EventType.Distraciton; - } - - /// - /// Gets or sets the type of the NF ev. - /// - /// The type of the NF ev. - [Required] - public EventType NFEvType { get; set; } - - /// - /// Gets or sets the type of the estab. - /// - /// The type of the estab. - [Required(ErrorMessage="Please, choose an establisment type.")] - public EstablishmentType EstabType { get; set; } /// /// The title. /// [Required(ErrorMessage="Please, choose a .")] + [Display(ResourceType=typeof(LocalizedText),Name="Title")] public string Title { get; set; } /// /// The description. /// - [Required(ErrorMessage="Please, choose a Description.")] public string Description { get; set; } + [Required(ErrorMessage="Please, choose a Description.")] + [Display(ResourceType=typeof(LocalizedText),Name="Description")] + public string Description { get; set; } /// /// The location. /// - [Required(ErrorMessage="Please, choose a Location.")] public Position Location { get; set; } + [Required(ErrorMessage="Please, choose a Location.")] + [Display(ResourceType=typeof(LocalizedText),Name="Location")] + public Position Location { get; set; } /// /// The start date. /// - [Required(ErrorMessage="Please, choose a Start Date.")] public DateTime StartDate { get; set; } + [Required(ErrorMessage="Please, choose a Start Date.")] + [Display(ResourceType=typeof(LocalizedText),Name="StartDate")] + public DateTime StartDate { get; set; } /// /// Gets or sets the end date. /// /// The end date. - [Required(ErrorMessage="Please, choose an End Date.")] public DateTime EndDate { get; set; } + [Required(ErrorMessage="Please, choose an End Date.")] + [Display(ResourceType=typeof(LocalizedText),Name="EndDate")] + public DateTime EndDate { get; set; } /// /// The name of the NF provider. /// - [Required(ErrorMessage="Please, choose a Nigth Flash Provider Name.")] public string NFProviderName { get; set; } + [Required(ErrorMessage="Please, choose a Provider Name.")] + [Display(ResourceType=typeof(LocalizedText),Name="ProviderName")] + public string ProviderName { get; set; } /// /// The NF provider identifier. /// - [Required(ErrorMessage="Please, choose a Night Flash Provider Identifier.")] public string NFProviderId { get; set; } + [Required(ErrorMessage="Please, choose a Provider Identifier.")] + [Display(ResourceType=typeof(LocalizedText),Name="ProviderId")] + public string ProviderId { get; set; } /// /// The promotion code. /// - public string PromotionCode { get; set; } + [Display(ResourceType=typeof(LocalizedText),Name="Comment")] + public string Comment { get; set; } /// /// The event web page. /// + [Display(ResourceType=typeof(LocalizedText),Name="EventWebPage")] public string EventWebPage { get; set; } /// /// The image locator. - /// - + /// + [Display(ResourceType=typeof(LocalizedText),Name="ImgLocator")] public string ImgLocator { get; set; } } } diff --git a/web/Controllers/FileSystemController.cs b/web/Controllers/FileSystemController.cs index 476872fc..8cc59001 100644 --- a/web/Controllers/FileSystemController.cs +++ b/web/Controllers/FileSystemController.cs @@ -13,29 +13,18 @@ namespace Yavsc.Controllers /// /// File system controller. /// + public class FileSystemController : Controller { - /// - /// Gets the users base directory. - /// - /// The users dir. - public string RootDir { - get { - return mgr.Prefix; - } - } - - FileSystemManager mgr = null ; /// /// Initialize the specified requestContext. /// /// Request context. + [Authorize] protected override void Initialize (System.Web.Routing.RequestContext requestContext) { base.Initialize (requestContext); - mgr = new FileSystemManager ( - string.Format("~/users/{0}",Membership.GetUser().UserName)); } /// @@ -44,7 +33,10 @@ namespace Yavsc.Controllers [Authorize] public ActionResult Index (string id) { - return View (mgr.GetFiles (id)); + FileSystemManager fsmgr = new FileSystemManager (); + var files = fsmgr.GetFiles (id); + files.Owner = Membership.GetUser ().UserName; + return View (files); } /// @@ -53,6 +45,7 @@ namespace Yavsc.Controllers /// Identifier. public ActionResult Details (string id) { + foreach (char x in Path.GetInvalidPathChars()) { if (id.Contains (x)) { ViewData ["Message"] = @@ -62,10 +55,19 @@ namespace Yavsc.Controllers return RedirectToAction ("Index"); } } - FileInfo fi = mgr.FileInfo (id); - - ViewData ["Content"] = Url.Content (fi.FullName); + FileSystemManager fsmgr = new FileSystemManager (); + FileInfo fi = fsmgr.FileInfo (id); + ViewData ["id"] = id; + // TODO : ensure that we use the default port for + // the used sheme + ViewData ["url"] = + string.Format( + "{0}://{1}/users/{2}/{3}", + Request.Url.Scheme, + Request.Url.Authority, + Membership.GetUser ().UserName , + id ); return View (fi); } @@ -77,16 +79,10 @@ namespace Yavsc.Controllers [Authorize] public ActionResult Create (string id) { - mgr.Put ( id, Request.Files); - return View ("Index",mgr.GetFiles(id)); + FileSystemManager fsmgr = new FileSystemManager (); + return View ("Index",fsmgr.GetFiles(id)); } - /// - /// Gets the user's base dir. - /// - /// The base dir. - public string UserBaseDir { get { return Path.Combine (RootDir, Membership.GetUser ().UserName); } } - /// /// Edit the specified id. /// diff --git a/web/Controllers/FrontOfficeController.cs b/web/Controllers/FrontOfficeController.cs index 92bbd620..836201d5 100644 --- a/web/Controllers/FrontOfficeController.cs +++ b/web/Controllers/FrontOfficeController.cs @@ -12,6 +12,7 @@ using System.Web.Security; using System.Threading; using Yavsc.Model.FrontOffice; using Yavsc.Model.FileSystem; +using Yavsc.ApiControllers.Calendar.Model; namespace Yavsc.Controllers { @@ -43,7 +44,10 @@ namespace Yavsc.Controllers { return View (); } - + public ActionResult EventPub (EventPub model) + { + return View (model); + } /// /// Estimates this instance. /// diff --git a/web/Models/App.master b/web/Models/App.master index 06b8e660..fbb0fb7c 100644 --- a/web/Models/App.master +++ b/web/Models/App.master @@ -60,6 +60,11 @@ ViewState["orgtitle"] = T.GetString(Page.Title);