* 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
main
Paul Schneider 11 years ago
parent 04304ac0c3
commit 31734da129
39 changed files with 777 additions and 469 deletions

@ -101,7 +101,7 @@ namespace ITContentProvider
cnx.Open (); cnx.Open ();
using (NpgsqlCommand cmd = cnx.CreateCommand()) { using (NpgsqlCommand cmd = cnx.CreateCommand()) {
cmd.CommandText = "delete from projets where id = @id"; cmd.CommandText = "delete from projets where id = @id";
cmd.Parameters.Add ("@id", prjId); cmd.Parameters.AddWithValue ("@id", prjId);
cmd.ExecuteNonQuery(); cmd.ExecuteNonQuery();
} }
cnx.Close (); cnx.Close ();
@ -122,10 +122,10 @@ namespace ITContentProvider
cnx.Open (); cnx.Open ();
using (NpgsqlCommand cmd = cnx.CreateCommand()) { using (NpgsqlCommand cmd = cnx.CreateCommand()) {
cmd.CommandText = "insert into projets (name,managerid,ApplicatonName,prdesc) values (@name,@mid,@appname,@pdesc)"; cmd.CommandText = "insert into projets (name,managerid,ApplicatonName,prdesc) values (@name,@mid,@appname,@pdesc)";
cmd.Parameters.Add ("@name", name); cmd.Parameters.AddWithValue ("@name", name);
cmd.Parameters.Add ("@mid", ownerId); cmd.Parameters.AddWithValue ("@mid", ownerId);
cmd.Parameters.Add ("@appname", ApplicationName); cmd.Parameters.AddWithValue ("@appname", ApplicationName);
cmd.Parameters.Add ("@desc", desc); cmd.Parameters.AddWithValue ("@desc", desc);
id = (int)cmd.ExecuteScalar (); id = (int)cmd.ExecuteScalar ();
} }
cnx.Close (); cnx.Close ();

@ -32,7 +32,6 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="Npgsql" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.ComponentModel.DataAnnotations" />
@ -40,6 +39,12 @@
<Reference Include="System.Web.Http" /> <Reference Include="System.Web.Http" />
<Reference Include="System.Web.Http.WebHost" /> <Reference Include="System.Web.Http.WebHost" />
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="Mono.Security">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll</HintPath>
</Reference>
<Reference Include="Npgsql">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
@ -66,4 +71,7 @@
<ItemGroup> <ItemGroup>
<Content Include="Views\Modules\IT\Index.aspx" /> <Content Include="Views\Modules\IT\Index.aspx" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
</Project> </Project>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Npgsql" version="2.2.5" targetFramework="net451" />
</packages>

@ -26,8 +26,8 @@ namespace Npgsql.Web.Blog
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
using (NpgsqlCommand cmd = cnx.CreateCommand ()) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = "insert into bltag (blid,tag) values (@postid,@tag) returning _id"; cmd.CommandText = "insert into bltag (blid,tag) values (@postid,@tag) returning _id";
cmd.Parameters.Add("@tag",tag); cmd.Parameters.AddWithValue("@tag",tag);
cmd.Parameters.Add("@postid",postid); cmd.Parameters.AddWithValue("@postid",postid);
return (long) cmd.ExecuteScalar (); return (long) cmd.ExecuteScalar ();
} }
} }
@ -40,7 +40,7 @@ namespace Npgsql.Web.Blog
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
using (NpgsqlCommand cmd = cnx.CreateCommand ()) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = "delete from bltag where _id = @tagid"; cmd.CommandText = "delete from bltag where _id = @tagid";
cmd.Parameters.Add("@tagid",tagid); cmd.Parameters.AddWithValue("@tagid",tagid);
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
} }
} }
@ -71,8 +71,8 @@ namespace Npgsql.Web.Blog
"where applicationname = @appname and postid = @id" + "where applicationname = @appname and postid = @id" +
((getHidden) ? " and visible = true ":" ") + ((getHidden) ? " and visible = true ":" ") +
"order by posted asc" ; "order by posted asc" ;
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
cmd.Parameters.Add ("@id", postid); cmd.Parameters.AddWithValue ("@id", postid);
cnx.Open (); cnx.Open ();
using (NpgsqlDataReader rdr = cmd.ExecuteReader()) { using (NpgsqlDataReader rdr = cmd.ExecuteReader()) {
while (rdr.Read ()) { while (rdr.Read ()) {
@ -108,11 +108,11 @@ namespace Npgsql.Web.Blog
" bcontent=@content, " + " bcontent=@content, " +
" visible = @visible " + " visible = @visible " +
"where _id = @id"; "where _id = @id";
cmd.Parameters.Add ("@now", now); cmd.Parameters.AddWithValue ("@now", now);
cmd.Parameters.Add ("@title", title); cmd.Parameters.AddWithValue ("@title", title);
cmd.Parameters.Add ("@content", content); cmd.Parameters.AddWithValue ("@content", content);
cmd.Parameters.Add ("@visible", visible); cmd.Parameters.AddWithValue ("@visible", visible);
cmd.Parameters.Add ("@id", postid); cmd.Parameters.AddWithValue ("@id", postid);
cnx.Open (); cnx.Open ();
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
cnx.Close(); cnx.Close();
@ -146,14 +146,14 @@ namespace Npgsql.Web.Blog
"modified,posted,visible,username,applicationname)" + "modified,posted,visible,username,applicationname)" +
"values (@postid,@bcontent,@modified,@posted," + "values (@postid,@bcontent,@modified,@posted," +
"@visible,@username,@appname) returning _id"; "@visible,@username,@appname) returning _id";
cmd.Parameters.Add ("@postid", postid); cmd.Parameters.AddWithValue ("@postid", postid);
cmd.Parameters.Add ("@bcontent", content); cmd.Parameters.AddWithValue ("@bcontent", content);
DateTime now = DateTime.Now; DateTime now = DateTime.Now;
cmd.Parameters.Add ("@modified", now); cmd.Parameters.AddWithValue ("@modified", now);
cmd.Parameters.Add ("@posted", now); cmd.Parameters.AddWithValue ("@posted", now);
cmd.Parameters.Add ("@visible", visible); cmd.Parameters.AddWithValue ("@visible", visible);
cmd.Parameters.Add ("@username", from); cmd.Parameters.AddWithValue ("@username", from);
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
cnx.Open (); cnx.Open ();
return (long) cmd.ExecuteScalar(); return (long) cmd.ExecuteScalar();
} }
@ -233,8 +233,8 @@ namespace Npgsql.Web.Blog
using (NpgsqlCommand cmd = cnx.CreateCommand()) { using (NpgsqlCommand cmd = cnx.CreateCommand()) {
cmd.CommandText = "select username, title, bcontent, modified, posted, visible from blog " + cmd.CommandText = "select username, title, bcontent, modified, posted, visible from blog " +
"where applicationname = @appname and _id = @id"; "where applicationname = @appname and _id = @id";
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
cmd.Parameters.Add ("@id", postid); cmd.Parameters.AddWithValue ("@id", postid);
cnx.Open (); cnx.Open ();
using (NpgsqlDataReader rdr = cmd.ExecuteReader()) { using (NpgsqlDataReader rdr = cmd.ExecuteReader()) {
if (rdr.Read ()) { if (rdr.Read ()) {
@ -262,7 +262,7 @@ namespace Npgsql.Web.Blog
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
using (NpgsqlCommand cmd = cnx.CreateCommand ()) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = "delete from comment where _id = @id returning postid"; cmd.CommandText = "delete from comment where _id = @id returning postid";
cmd.Parameters.Add ("id", cmtid); cmd.Parameters.AddWithValue ("id", cmtid);
cnx.Open (); cnx.Open ();
postid = (long) cmd.ExecuteScalar (); postid = (long) cmd.ExecuteScalar ();
} }
@ -281,9 +281,9 @@ namespace Npgsql.Web.Blog
using (NpgsqlCommand cmd = cnx.CreateCommand()) { using (NpgsqlCommand cmd = cnx.CreateCommand()) {
cmd.CommandText = "select _id,bcontent,modified,posted,visible from blog " + cmd.CommandText = "select _id,bcontent,modified,posted,visible from blog " +
"where applicationname = @appname and username = @username and title = @title"; "where applicationname = @appname and username = @username and title = @title";
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
cmd.Parameters.Add ("@username", username); cmd.Parameters.AddWithValue ("@username", username);
cmd.Parameters.Add ("@title", title); cmd.Parameters.AddWithValue ("@title", title);
cnx.Open (); cnx.Open ();
using (NpgsqlDataReader rdr = cmd.ExecuteReader()) { using (NpgsqlDataReader rdr = cmd.ExecuteReader()) {
if (rdr.Read ()) { if (rdr.Read ()) {
@ -295,18 +295,20 @@ namespace Npgsql.Web.Blog
be.Posted = rdr.GetDateTime (rdr.GetOrdinal ("posted")); be.Posted = rdr.GetDateTime (rdr.GetOrdinal ("posted"));
be.Visible = rdr.GetBoolean (rdr.GetOrdinal ("visible")); be.Visible = rdr.GetBoolean (rdr.GetOrdinal ("visible"));
be.Id = rdr.GetInt64 (rdr.GetOrdinal ("_id")); be.Id = rdr.GetInt64 (rdr.GetOrdinal ("_id"));
using (NpgsqlCommand cmdtags = cnx.CreateCommand()) { }
List<string> tags = new List<string> (); rdr.Close ();
cmd.CommandText = "select tag.name from tag,tagged where tag._id = tagged.tagid and tagged.postid = @pid"; }
cmd.Parameters.Add ("@pid", be.Id); if (be!=null)
using (NpgsqlDataReader rdrt = cmd.ExecuteReader ()) { using (NpgsqlCommand cmdtags = cnx.CreateCommand()) {
while (rdrt.Read ()) { List<string> tags = new List<string> ();
tags.Add (rdrt.GetString (0)); 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 ()) {
be.Tags = tags.ToArray (); while (rdrt.Read ()) {
tags.Add (rdrt.GetString (0));
} }
} }
be.Tags = tags.ToArray ();
} }
} }
return be; return be;
@ -330,14 +332,14 @@ namespace Npgsql.Web.Blog
using (NpgsqlCommand cmd = cnx.CreateCommand()) { using (NpgsqlCommand cmd = cnx.CreateCommand()) {
cmd.CommandText = "insert into blog (title,bcontent,modified,posted,visible,username,applicationname)" + cmd.CommandText = "insert into blog (title,bcontent,modified,posted,visible,username,applicationname)" +
"values (@title,@bcontent,@modified,@posted,@visible,@username,@appname) returning _id"; "values (@title,@bcontent,@modified,@posted,@visible,@username,@appname) returning _id";
cmd.Parameters.Add ("@title", title); cmd.Parameters.AddWithValue ("@title", title);
cmd.Parameters.Add ("@bcontent", content); cmd.Parameters.AddWithValue ("@bcontent", content);
DateTime now = DateTime.Now; DateTime now = DateTime.Now;
cmd.Parameters.Add ("@modified", now); cmd.Parameters.AddWithValue ("@modified", now);
cmd.Parameters.Add ("@posted", now); cmd.Parameters.AddWithValue ("@posted", now);
cmd.Parameters.Add ("@visible", visible); cmd.Parameters.AddWithValue ("@visible", visible);
cmd.Parameters.Add ("@username", username); cmd.Parameters.AddWithValue ("@username", username);
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
cnx.Open (); cnx.Open ();
return (long) cmd.ExecuteScalar(); return (long) cmd.ExecuteScalar();
} }
@ -359,18 +361,18 @@ namespace Npgsql.Web.Blog
using (NpgsqlCommand cmd = cnx.CreateCommand()) { using (NpgsqlCommand cmd = cnx.CreateCommand()) {
cmd.CommandText = "select title,bcontent,modified,posted,username,visible from blog " + cmd.CommandText = "select title,bcontent,modified,posted,username,visible from blog " +
"where applicationname = @appname"; "where applicationname = @appname";
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
if ((searchflags & FindBlogEntryFlags.MatchContent) > 0) { if ((searchflags & FindBlogEntryFlags.MatchContent) > 0) {
cmd.CommandText += " and bcontent like @bcontent"; cmd.CommandText += " and bcontent like @bcontent";
cmd.Parameters.Add ("@bcontent", pattern); cmd.Parameters.AddWithValue ("@bcontent", pattern);
} }
if ((searchflags & FindBlogEntryFlags.MatchTitle) > 0) { if ((searchflags & FindBlogEntryFlags.MatchTitle) > 0) {
cmd.CommandText += " and title like @title"; cmd.CommandText += " and title like @title";
cmd.Parameters.Add ("@title", pattern); cmd.Parameters.AddWithValue ("@title", pattern);
} }
if ((searchflags & FindBlogEntryFlags.MatchUserName) > 0) { if ((searchflags & FindBlogEntryFlags.MatchUserName) > 0) {
cmd.CommandText += " and username like @username"; cmd.CommandText += " and username like @username";
cmd.Parameters.Add ("@username", pattern); cmd.Parameters.AddWithValue ("@username", pattern);
} }
if ((searchflags & FindBlogEntryFlags.MatchInvisible) == 0) { if ((searchflags & FindBlogEntryFlags.MatchInvisible) == 0) {
cmd.CommandText += " and visible = true"; cmd.CommandText += " and visible = true";
@ -409,9 +411,9 @@ namespace Npgsql.Web.Blog
using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString)) using (NpgsqlConnection cnx=new NpgsqlConnection(connectionString))
using (NpgsqlCommand cmd = cnx.CreateCommand()) { using (NpgsqlCommand cmd = cnx.CreateCommand()) {
cmd.CommandText = "delete from blog where username = @username and applicationname = @appname and title=@title"; cmd.CommandText = "delete from blog where username = @username and applicationname = @appname and title=@title";
cmd.Parameters.Add ("@username",username); cmd.Parameters.AddWithValue ("@username",username);
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
cmd.Parameters.Add ("@title",title); cmd.Parameters.AddWithValue ("@title",title);
cnx.Open (); cnx.Open ();
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
cnx.Close(); cnx.Close();
@ -443,8 +445,8 @@ namespace Npgsql.Web.Blog
"from blog where applicationname = @appname and visible = true " + "from blog where applicationname = @appname and visible = true " +
" order by posted desc limit @len" ; " order by posted desc limit @len" ;
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
cmd.Parameters.Add ("@len", defaultPageSize*10); cmd.Parameters.AddWithValue ("@len", defaultPageSize*10);
cnx.Open (); cnx.Open ();
using (NpgsqlDataReader rdr = cmd.ExecuteReader()) { using (NpgsqlDataReader rdr = cmd.ExecuteReader()) {
totalRecords = 0; totalRecords = 0;

@ -41,9 +41,14 @@
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="Npgsql" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="Mono.Security">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll</HintPath>
</Reference>
<Reference Include="Npgsql">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ProjectExtensions> <ProjectExtensions>
<MonoDevelop> <MonoDevelop>
@ -56,6 +61,7 @@
</ProjectExtensions> </ProjectExtensions>
<ItemGroup> <ItemGroup>
<None Include="Sql\BlogTable.sql" /> <None Include="Sql\BlogTable.sql" />
<None Include="packages.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\yavscModel\YavscModel.csproj"> <ProjectReference Include="..\yavscModel\YavscModel.csproj">

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Npgsql" version="2.2.5" targetFramework="net451" />
</packages>

@ -41,12 +41,17 @@
<Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="Npgsql" />
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Web.ApplicationServices" /> <Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Data.Linq" /> <Reference Include="System.Data.Linq" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="Mono.Security">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll</HintPath>
</Reference>
<Reference Include="Npgsql">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ProjectExtensions> <ProjectExtensions>
<MonoDevelop> <MonoDevelop>
@ -66,5 +71,6 @@
<None Include="Sql\RolesTable.sql" /> <None Include="Sql\RolesTable.sql" />
<None Include="Sql\UserRoleTable.sql" /> <None Include="Sql\UserRoleTable.sql" />
<None Include="Sql\StockSymbols.sql" /> <None Include="Sql\StockSymbols.sql" />
<None Include="packages.config" />
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -259,10 +259,10 @@ namespace Npgsql.Web
using (NpgsqlCommand cmd = new NpgsqlCommand ("UPDATE Users " + using (NpgsqlCommand cmd = new NpgsqlCommand ("UPDATE Users " +
" SET Passw = @Password, LastPasswordChangedDate = @LastPasswordChangedDate " + " SET Passw = @Password, LastPasswordChangedDate = @LastPasswordChangedDate " +
" WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPwd); cmd.Parameters.AddWithValue ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPwd);
cmd.Parameters.Add ("@LastPasswordChangedDate", DateTime.Now); cmd.Parameters.AddWithValue ("@LastPasswordChangedDate", DateTime.Now);
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
conn.Open (); conn.Open ();
rowsAffected = cmd.ExecuteNonQuery (); rowsAffected = cmd.ExecuteNonQuery ();
conn.Close (); conn.Close ();
@ -301,10 +301,10 @@ namespace Npgsql.Web
using (NpgsqlCommand cmd = new NpgsqlCommand ("UPDATE Users " + using (NpgsqlCommand cmd = new NpgsqlCommand ("UPDATE Users " +
" SET PasswordQuestion = @Question, PasswordAnswer = @Answer" + " SET PasswordQuestion = @Question, PasswordAnswer = @Answer" +
" WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@Question", NpgsqlDbType.Varchar, 255).Value = newPwdQuestion; cmd.Parameters.AddWithValue ("@Question", NpgsqlDbType.Varchar, 255).Value = newPwdQuestion;
cmd.Parameters.Add ("@Answer", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPwdAnswer); cmd.Parameters.AddWithValue ("@Answer", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPwdAnswer);
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
conn.Open (); conn.Open ();
rowsAffected = cmd.ExecuteNonQuery (); rowsAffected = cmd.ExecuteNonQuery ();
conn.Close (); conn.Close ();
@ -388,24 +388,24 @@ namespace Npgsql.Web
"@FailedPasswordAttemptCount , @FailedPasswordAttemptWindowStart, " + "@FailedPasswordAttemptCount , @FailedPasswordAttemptWindowStart, " +
" @FailedPasswordAnswerAttemptCount, @FailedPasswordAnswerAttemptWindowStart)", conn)) { " @FailedPasswordAnswerAttemptCount, @FailedPasswordAnswerAttemptWindowStart)", conn)) {
cmd.Parameters.Add ("@PKID", NpgsqlDbType.Varchar).Value = providerUserKey; cmd.Parameters.AddWithValue ("@PKID", NpgsqlDbType.Varchar).Value = providerUserKey;
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (password); cmd.Parameters.AddWithValue ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (password);
cmd.Parameters.Add ("@Email", NpgsqlDbType.Varchar, 128).Value = email; cmd.Parameters.AddWithValue ("@Email", NpgsqlDbType.Varchar, 128).Value = email;
cmd.Parameters.Add ("@PasswordQuestion", NpgsqlDbType.Varchar, 255).Value = passwordQuestion; cmd.Parameters.AddWithValue ("@PasswordQuestion", NpgsqlDbType.Varchar, 255).Value = passwordQuestion;
cmd.Parameters.Add ("@PasswordAnswer", NpgsqlDbType.Varchar, 255).Value = EncodePassword (passwordAnswer); cmd.Parameters.AddWithValue ("@PasswordAnswer", NpgsqlDbType.Varchar, 255).Value = EncodePassword (passwordAnswer);
cmd.Parameters.Add ("@IsApproved", NpgsqlDbType.Bit).Value = isApproved; cmd.Parameters.AddWithValue ("@IsApproved", NpgsqlDbType.Bit).Value = isApproved;
cmd.Parameters.Add ("@Comment", NpgsqlDbType.Varchar, 255).Value = ""; cmd.Parameters.AddWithValue ("@Comment", NpgsqlDbType.Varchar, 255).Value = "";
cmd.Parameters.Add ("@CreationDate", createDate); cmd.Parameters.AddWithValue ("@CreationDate", createDate);
cmd.Parameters.Add ("@LastPasswordChangedDate", createDate); cmd.Parameters.AddWithValue ("@LastPasswordChangedDate", createDate);
cmd.Parameters.Add ("@LastActivityDate", createDate); cmd.Parameters.AddWithValue ("@LastActivityDate", createDate);
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
cmd.Parameters.Add ("@IsLockedOut", NpgsqlDbType.Bit).Value = false; cmd.Parameters.AddWithValue ("@IsLockedOut", NpgsqlDbType.Bit).Value = false;
cmd.Parameters.Add ("@LastLockedOutDate", createDate); cmd.Parameters.AddWithValue ("@LastLockedOutDate", createDate);
cmd.Parameters.Add ("@FailedPasswordAttemptCount", NpgsqlDbType.Integer).Value = 0; cmd.Parameters.AddWithValue ("@FailedPasswordAttemptCount", NpgsqlDbType.Integer).Value = 0;
cmd.Parameters.Add ("@FailedPasswordAttemptWindowStart", createDate); cmd.Parameters.AddWithValue ("@FailedPasswordAttemptWindowStart", createDate);
cmd.Parameters.Add ("@FailedPasswordAnswerAttemptCount", NpgsqlDbType.Integer).Value = 0; cmd.Parameters.AddWithValue ("@FailedPasswordAnswerAttemptCount", NpgsqlDbType.Integer).Value = 0;
cmd.Parameters.Add ("@FailedPasswordAnswerAttemptWindowStart", createDate); cmd.Parameters.AddWithValue ("@FailedPasswordAnswerAttemptWindowStart", createDate);
conn.Open (); conn.Open ();
int recAdded = cmd.ExecuteNonQuery (); int recAdded = cmd.ExecuteNonQuery ();
if (recAdded > 0) { if (recAdded > 0) {
@ -450,8 +450,8 @@ namespace Npgsql.Web
using (NpgsqlConnection conn = new NpgsqlConnection (connectionString)) { using (NpgsqlConnection conn = new NpgsqlConnection (connectionString)) {
using (NpgsqlCommand cmd = new NpgsqlCommand ("DELETE FROM Users " + using (NpgsqlCommand cmd = new NpgsqlCommand ("DELETE FROM Users " +
" WHERE Username = @Username AND Applicationname = @ApplicationName", conn)) { " WHERE Username = @Username AND Applicationname = @ApplicationName", conn)) {
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
conn.Open (); conn.Open ();
rowsAffected = cmd.ExecuteNonQuery (); rowsAffected = cmd.ExecuteNonQuery ();
if (deleteAllRelatedData) { if (deleteAllRelatedData) {
@ -481,7 +481,7 @@ namespace Npgsql.Web
using (NpgsqlConnection conn = new NpgsqlConnection (connectionString)) { using (NpgsqlConnection conn = new NpgsqlConnection (connectionString)) {
using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Count(*) FROM Users " + using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Count(*) FROM Users " +
"WHERE ApplicationName = @ApplicationName", conn)) { "WHERE ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = ApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = ApplicationName;
conn.Open (); conn.Open ();
totalRecords = 0; totalRecords = 0;
totalRecords = (int)((long)cmd.ExecuteScalar ()); totalRecords = (int)((long)cmd.ExecuteScalar ());
@ -539,8 +539,8 @@ namespace Npgsql.Web
using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Count(*) FROM Users " + using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Count(*) FROM Users " +
" WHERE LastActivityDate > @CompareDate AND ApplicationName = @ApplicationName", conn)) { " WHERE LastActivityDate > @CompareDate AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@CompareDate", compareTime); cmd.Parameters.AddWithValue ("@CompareDate", compareTime);
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; 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 " + using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Passw, PasswordAnswer, IsLockedOut FROM Users " +
" WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
NpgsqlDataReader reader = null; NpgsqlDataReader reader = null;
@ -646,29 +646,30 @@ namespace Npgsql.Web
" LastActivityDate, LastPasswordChangedDate, LastLockedOutDate" + " LastActivityDate, LastPasswordChangedDate, LastLockedOutDate" +
" FROM Users WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { " FROM Users WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
conn.Open (); conn.Open ();
using (NpgsqlDataReader reader = cmd.ExecuteReader ()) { using (NpgsqlDataReader reader = cmd.ExecuteReader ()) {
if (reader.HasRows) { if (reader.HasRows) {
reader.Read (); reader.Read ();
u = GetUserFromReader (reader); 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 (); 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 (); conn.Close ();
} }
return u; return u;
@ -694,7 +695,7 @@ namespace Npgsql.Web
" LastActivityDate, LastPasswordChangedDate, LastLockedOutDate" + " LastActivityDate, LastPasswordChangedDate, LastLockedOutDate" +
" FROM Users WHERE PKID = @PKID", conn)) { " FROM Users WHERE PKID = @PKID", conn)) {
cmd.Parameters.Add ("@PKID", NpgsqlDbType.Varchar).Value = providerUserKey; cmd.Parameters.AddWithValue ("@PKID", NpgsqlDbType.Varchar).Value = providerUserKey;
conn.Open (); conn.Open ();
using (NpgsqlDataReader reader = cmd.ExecuteReader ()) { using (NpgsqlDataReader reader = cmd.ExecuteReader ()) {
@ -702,16 +703,17 @@ namespace Npgsql.Web
reader.Read (); reader.Read ();
u = GetUserFromReader (reader); 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 (); 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 (); conn.Close ();
@ -790,9 +792,9 @@ namespace Npgsql.Web
using (NpgsqlCommand cmd = new NpgsqlCommand ("UPDATE Users " + using (NpgsqlCommand cmd = new NpgsqlCommand ("UPDATE Users " +
" SET IsLockedOut = False, LastLockedOutDate = @LastLockedOutDate " + " SET IsLockedOut = False, LastLockedOutDate = @LastLockedOutDate " +
" WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@LastLockedOutDate", DateTime.Now); cmd.Parameters.AddWithValue ("@LastLockedOutDate", DateTime.Now);
cmd.Parameters.Add ("@Username", username); cmd.Parameters.AddWithValue ("@Username", username);
cmd.Parameters.Add ("@ApplicationName", pApplicationName); cmd.Parameters.AddWithValue ("@ApplicationName", pApplicationName);
conn.Open (); conn.Open ();
rowsAffected = cmd.ExecuteNonQuery (); rowsAffected = cmd.ExecuteNonQuery ();
conn.Close (); conn.Close ();
@ -819,8 +821,8 @@ namespace Npgsql.Web
using (NpgsqlConnection conn = new NpgsqlConnection (connectionString)) { using (NpgsqlConnection conn = new NpgsqlConnection (connectionString)) {
using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Username" + using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Username" +
" FROM Users WHERE Email = @Email AND ApplicationName = @ApplicationName", conn)) { " FROM Users WHERE Email = @Email AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@Email", NpgsqlDbType.Varchar, 128).Value = email; cmd.Parameters.AddWithValue ("@Email", NpgsqlDbType.Varchar, 128).Value = email;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
conn.Open (); conn.Open ();
username = (string)cmd.ExecuteScalar (); username = (string)cmd.ExecuteScalar ();
conn.Close (); conn.Close ();
@ -870,8 +872,8 @@ namespace Npgsql.Web
using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT PasswordAnswer, IsLockedOut FROM Users " + using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT PasswordAnswer, IsLockedOut FROM Users " +
" WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
string passwordAnswer = ""; string passwordAnswer = "";
@ -900,10 +902,10 @@ namespace Npgsql.Web
" SET Passw = @Password, LastPasswordChangedDate = @LastPasswordChangedDate" + " SET Passw = @Password, LastPasswordChangedDate = @LastPasswordChangedDate" +
" WHERE Username = @Username AND ApplicationName = @ApplicationName AND IsLockedOut = False", conn); " WHERE Username = @Username AND ApplicationName = @ApplicationName AND IsLockedOut = False", conn);
updateCmd.Parameters.Add ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPassword); updateCmd.Parameters.AddWithValue ("@Password", NpgsqlDbType.Varchar, 255).Value = EncodePassword (newPassword);
updateCmd.Parameters.Add ("@LastPasswordChangedDate", DateTime.Now); updateCmd.Parameters.AddWithValue ("@LastPasswordChangedDate", DateTime.Now);
updateCmd.Parameters.Add ("@Username", username); updateCmd.Parameters.AddWithValue ("@Username", username);
updateCmd.Parameters.Add ("@ApplicationName", pApplicationName); updateCmd.Parameters.AddWithValue ("@ApplicationName", pApplicationName);
rowsAffected = updateCmd.ExecuteNonQuery (); rowsAffected = updateCmd.ExecuteNonQuery ();
@ -935,11 +937,11 @@ namespace Npgsql.Web
" SET Email = @Email, Comment = @Comment," + " SET Email = @Email, Comment = @Comment," +
" IsApproved = @IsApproved" + " IsApproved = @IsApproved" +
" WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@Email", NpgsqlDbType.Varchar, 128).Value = user.Email; cmd.Parameters.AddWithValue ("@Email", NpgsqlDbType.Varchar, 128).Value = user.Email;
cmd.Parameters.Add ("@Comment", NpgsqlDbType.Varchar, 255).Value = user.Comment; cmd.Parameters.AddWithValue ("@Comment", NpgsqlDbType.Varchar, 255).Value = user.Comment;
cmd.Parameters.Add ("@IsApproved", NpgsqlDbType.Bit).Value = user.IsApproved; cmd.Parameters.AddWithValue ("@IsApproved", NpgsqlDbType.Bit).Value = user.IsApproved;
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = user.UserName; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = user.UserName;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
conn.Open (); conn.Open ();
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
conn.Close (); conn.Close ();
@ -966,8 +968,8 @@ namespace Npgsql.Web
using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Passw, IsApproved FROM Users " + using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT Passw, IsApproved FROM Users " +
" WHERE Username = @Username AND ApplicationName = @ApplicationName AND IsLockedOut = False", conn)) { " WHERE Username = @Username AND ApplicationName = @ApplicationName AND IsLockedOut = False", conn)) {
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
bool isApproved = false; bool isApproved = false;
@ -993,9 +995,9 @@ namespace Npgsql.Web
NpgsqlCommand updateCmd = new NpgsqlCommand ("UPDATE Users SET LastLoginDate = @LastLoginDate" + NpgsqlCommand updateCmd = new NpgsqlCommand ("UPDATE Users SET LastLoginDate = @LastLoginDate" +
" WHERE Username = @Username AND ApplicationName = @ApplicationName", conn); " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn);
updateCmd.Parameters.Add ("@LastLoginDate", DateTime.Now); updateCmd.Parameters.AddWithValue ("@LastLoginDate", DateTime.Now);
updateCmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; updateCmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
updateCmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; updateCmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
updateCmd.ExecuteNonQuery (); updateCmd.ExecuteNonQuery ();
} }
@ -1032,8 +1034,8 @@ namespace Npgsql.Web
" FROM Users " + " FROM Users " +
" WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) { " WHERE Username = @Username AND ApplicationName = @ApplicationName", conn)) {
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
DateTime windowStart = new DateTime (); DateTime windowStart = new DateTime ();
@ -1079,10 +1081,10 @@ namespace Npgsql.Web
cmd.Parameters.Clear (); cmd.Parameters.Clear ();
cmd.Parameters.Add ("@Count", NpgsqlDbType.Integer).Value = 1; cmd.Parameters.AddWithValue ("@Count", NpgsqlDbType.Integer).Value = 1;
cmd.Parameters.Add ("@WindowStart", DateTime.Now); cmd.Parameters.AddWithValue ("@WindowStart", DateTime.Now);
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
@ -1097,10 +1099,10 @@ namespace Npgsql.Web
cmd.Parameters.Clear (); cmd.Parameters.Clear ();
cmd.Parameters.Add ("@IsLockedOut", NpgsqlDbType.Bit).Value = true; cmd.Parameters.AddWithValue ("@IsLockedOut", NpgsqlDbType.Bit).Value = true;
cmd.Parameters.Add ("@LastLockedOutDate", DateTime.Now); cmd.Parameters.AddWithValue ("@LastLockedOutDate", DateTime.Now);
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
@ -1120,9 +1122,9 @@ namespace Npgsql.Web
cmd.Parameters.Clear (); cmd.Parameters.Clear ();
cmd.Parameters.Add ("@Count", NpgsqlDbType.Integer).Value = failureCount; cmd.Parameters.AddWithValue ("@Count", NpgsqlDbType.Integer).Value = failureCount;
cmd.Parameters.Add ("@Username", NpgsqlDbType.Varchar, 255).Value = username; cmd.Parameters.AddWithValue ("@Username", NpgsqlDbType.Varchar, 255).Value = username;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
} }
@ -1260,8 +1262,8 @@ namespace Npgsql.Web
using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT count(*)" + using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT count(*)" +
" FROM Users " + " FROM Users " +
" WHERE Username LIKE @uns AND ApplicationName = @appn ", conn)) { " WHERE Username LIKE @uns AND ApplicationName = @appn ", conn)) {
cmd.Parameters.Add ("@uns", usernameToMatch); cmd.Parameters.AddWithValue ("@uns", usernameToMatch);
cmd.Parameters.Add ("@appn", ApplicationName); cmd.Parameters.AddWithValue ("@appn", ApplicationName);
totalRecords = (int)((long)cmd.ExecuteScalar ()); totalRecords = (int)((long)cmd.ExecuteScalar ());
} }
if (totalRecords > 0) if (totalRecords > 0)
@ -1271,8 +1273,8 @@ namespace Npgsql.Web
" FROM Users " + " FROM Users " +
" WHERE Username LIKE @UsernameSearch AND ApplicationName = @ApplicationName " + " WHERE Username LIKE @UsernameSearch AND ApplicationName = @ApplicationName " +
" ORDER BY Username Asc", conn)) { " ORDER BY Username Asc", conn)) {
cmd.Parameters.Add ("@UsernameSearch", NpgsqlDbType.Varchar, 255).Value = usernameToMatch; cmd.Parameters.AddWithValue ("@UsernameSearch", NpgsqlDbType.Varchar, 255).Value = usernameToMatch;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = pApplicationName;
using (NpgsqlDataReader reader = cmd.ExecuteReader ()) { using (NpgsqlDataReader reader = cmd.ExecuteReader ()) {
int counter = 0; int counter = 0;
@ -1319,8 +1321,8 @@ namespace Npgsql.Web
using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT count(*) " + using (NpgsqlCommand cmd = new NpgsqlCommand ("SELECT count(*) " +
" FROM Users " + " FROM Users " +
" WHERE Email LIKE @EmailSearch AND ApplicationName = @appname ", conn)) { " WHERE Email LIKE @EmailSearch AND ApplicationName = @appname ", conn)) {
cmd.Parameters.Add ("@EmailSearch", emailToMatch); cmd.Parameters.AddWithValue ("@EmailSearch", emailToMatch);
cmd.Parameters.Add ("@appname", this.ApplicationName); cmd.Parameters.AddWithValue ("@appname", this.ApplicationName);
totalRecords = (int)(long)cmd.ExecuteScalar (); totalRecords = (int)(long)cmd.ExecuteScalar ();
} }
@ -1330,8 +1332,8 @@ namespace Npgsql.Web
" FROM Users " + " FROM Users " +
" WHERE Email LIKE @EmailSearch AND ApplicationName = @ApplicationName " + " WHERE Email LIKE @EmailSearch AND ApplicationName = @ApplicationName " +
" ORDER BY Username Asc", conn)) { " ORDER BY Username Asc", conn)) {
cmd.Parameters.Add ("@EmailSearch", NpgsqlDbType.Varchar, 255).Value = emailToMatch; cmd.Parameters.AddWithValue ("@EmailSearch", NpgsqlDbType.Varchar, 255).Value = emailToMatch;
cmd.Parameters.Add ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = ApplicationName; cmd.Parameters.AddWithValue ("@ApplicationName", NpgsqlDbType.Varchar, 255).Value = ApplicationName;
using (NpgsqlDataReader reader = cmd.ExecuteReader ()) { using (NpgsqlDataReader reader = cmd.ExecuteReader ()) {
int counter = 0; int counter = 0;
int startIndex = pageSize * pageIndex; int startIndex = pageSize * pageIndex;

@ -111,8 +111,8 @@ namespace Npgsql.Web
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) { using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) {
using (NpgsqlCommand cmd = cnx.CreateCommand ()) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = "select username, uniqueid, lastactivitydate, lastupdateddate, isanonymous from profiles where username like @username and applicationname = @appname"; cmd.CommandText = "select username, uniqueid, lastactivitydate, lastupdateddate, isanonymous from profiles where username like @username and applicationname = @appname";
cmd.Parameters.Add ("@username", usernameToMatch); cmd.Parameters.AddWithValue ("@username", usernameToMatch);
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
cnx.Open (); cnx.Open ();
using (NpgsqlDataReader r = cmd.ExecuteReader ()) { using (NpgsqlDataReader r = cmd.ExecuteReader ()) {
if (r.HasRows) { if (r.HasRows) {
@ -206,8 +206,8 @@ namespace Npgsql.Web
"profiledata.uniqueid = profiles.uniqueid " + "profiledata.uniqueid = profiles.uniqueid " +
"and profiles.username = @username " + "and profiles.username = @username " +
"and profiles.applicationname = @appname"; "and profiles.applicationname = @appname";
cmd.Parameters.Add ("@username", username); cmd.Parameters.AddWithValue ("@username", username);
cmd.Parameters.Add ("@appname", applicationName); cmd.Parameters.AddWithValue ("@appname", applicationName);
cnx.Open (); cnx.Open ();
using (NpgsqlDataReader r = cmd.ExecuteReader ( using (NpgsqlDataReader r = cmd.ExecuteReader (
System.Data.CommandBehavior.CloseConnection | System.Data.CommandBehavior.SingleRow)) { System.Data.CommandBehavior.CloseConnection | System.Data.CommandBehavior.SingleRow)) {
@ -249,8 +249,8 @@ namespace Npgsql.Web
cmdpi.CommandText = "select count(uniqueid) " + cmdpi.CommandText = "select count(uniqueid) " +
"from profiles where username = @username " + "from profiles where username = @username " +
"and applicationname = @appname"; "and applicationname = @appname";
cmdpi.Parameters.Add ("@username", username); cmdpi.Parameters.AddWithValue ("@username", username);
cmdpi.Parameters.Add ("@appname", applicationName); cmdpi.Parameters.AddWithValue ("@appname", applicationName);
long c = (long)cmdpi.ExecuteScalar (); long c = (long)cmdpi.ExecuteScalar ();
if (c == 0) { if (c == 0) {
@ -263,7 +263,7 @@ namespace Npgsql.Web
// //
using (NpgsqlCommand cmdpdins = cnx.CreateCommand ()) { using (NpgsqlCommand cmdpdins = cnx.CreateCommand ()) {
cmdpdins.CommandText = "insert into profiledata (uniqueid) values (@puid)"; cmdpdins.CommandText = "insert into profiledata (uniqueid) values (@puid)";
cmdpdins.Parameters.Add ("@puid", puid); cmdpdins.Parameters.AddWithValue ("@puid", puid);
cmdpdins.ExecuteNonQuery (); cmdpdins.ExecuteNonQuery ();
} }
} else { } else {
@ -288,8 +288,8 @@ namespace Npgsql.Web
"where uniqueid = @puid ", "where uniqueid = @puid ",
s.Name s.Name
); );
cmd.Parameters.Add ("@puid", puid); cmd.Parameters.AddWithValue ("@puid", puid);
cmd.Parameters.Add ("@val", s.PropertyValue); cmd.Parameters.AddWithValue ("@val", s.PropertyValue);
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
} }
} }

@ -123,9 +123,9 @@ namespace Npgsql.Web
using (var comm = conn.CreateCommand()) { using (var comm = conn.CreateCommand()) {
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "insert into usersroles (applicationname, username, rolename) values (@appname,@user,@role)"; comm.CommandText = "insert into usersroles (applicationname, username, rolename) values (@appname,@user,@role)";
comm.Parameters.Add ("appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; comm.Parameters.AddWithValue ("appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName;
NpgsqlParameter pu = comm.Parameters.Add ("user", NpgsqlTypes.NpgsqlDbType.Varchar, 250); NpgsqlParameter pu = comm.Parameters.AddWithValue ("user", NpgsqlTypes.NpgsqlDbType.Varchar, 250);
NpgsqlParameter pr = comm.Parameters.Add ("role", NpgsqlTypes.NpgsqlDbType.Varchar, 250); NpgsqlParameter pr = comm.Parameters.AddWithValue ("role", NpgsqlTypes.NpgsqlDbType.Varchar, 250);
foreach (string u in usernames) { foreach (string u in usernames) {
pu.Value = u; pu.Value = u;
foreach (string r in roleNames) { foreach (string r in roleNames) {
@ -174,9 +174,9 @@ namespace Npgsql.Web
using (var comm = conn.CreateCommand()) { using (var comm = conn.CreateCommand()) {
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "insert into roles (rolename, applicationname, comment) values (@rolename, @appname, @comment)"; comm.CommandText = "insert into roles (rolename, applicationname, comment) values (@rolename, @appname, @comment)";
comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName;
comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName;
comm.Parameters.Add ("@comment", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; comm.Parameters.AddWithValue ("@comment", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName;
comm.ExecuteNonQuery (); comm.ExecuteNonQuery ();
} }
} }
@ -206,9 +206,9 @@ namespace Npgsql.Web
using (var comm = conn.CreateCommand()) { using (var comm = conn.CreateCommand()) {
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "delete from roles where rolename = @rolename and applicationname = @appname"; comm.CommandText = "delete from roles where rolename = @rolename and applicationname = @appname";
comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName;
comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName;
comm.Parameters.Add ("@comment", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName; comm.Parameters.AddWithValue ("@comment", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName;
comm.ExecuteNonQuery (); comm.ExecuteNonQuery ();
} }
} }
@ -245,9 +245,9 @@ namespace Npgsql.Web
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "select username from usersroles where applicationname = @appname " + comm.CommandText = "select username from usersroles where applicationname = @appname " +
"and rolename = @rolename and username like @username"; "and rolename = @rolename and username like @username";
comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = rolename; comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = rolename;
comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName;
comm.Parameters.Add ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = usernameToMatch; comm.Parameters.AddWithValue ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = usernameToMatch;
using (var reader = comm.ExecuteReader()) { using (var reader = comm.ExecuteReader()) {
var r = new List<string> (); var r = new List<string> ();
var usernameColumn = reader.GetOrdinal ("username"); var usernameColumn = reader.GetOrdinal ("username");
@ -272,7 +272,7 @@ namespace Npgsql.Web
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "select rolename from roles where applicationname = @appname"; 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()) { using (var reader = comm.ExecuteReader()) {
var r = new List<string> (); var r = new List<string> ();
var rolenameColumn = reader.GetOrdinal ("rolename"); var rolenameColumn = reader.GetOrdinal ("rolename");
@ -301,8 +301,8 @@ namespace Npgsql.Web
using (var comm = conn.CreateCommand()) { using (var comm = conn.CreateCommand()) {
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "select rolename from usersroles where applicationname = @appname and username = @username"; comm.CommandText = "select rolename from usersroles where applicationname = @appname and username = @username";
comm.Parameters.Add ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = username; comm.Parameters.AddWithValue ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = username;
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()) { using (var reader = comm.ExecuteReader()) {
var r = new List<string> (); var r = new List<string> ();
var rolenameColumn = reader.GetOrdinal ("rolename"); var rolenameColumn = reader.GetOrdinal ("rolename");
@ -333,8 +333,8 @@ namespace Npgsql.Web
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "select username from usersroles where applicationname = @appname " + comm.CommandText = "select username from usersroles where applicationname = @appname " +
"and rolename = @rolename"; "and rolename = @rolename";
comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 255).Value = roleName; comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 255).Value = roleName;
comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 255).Value = applicationName; comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 255).Value = applicationName;
using (var reader = comm.ExecuteReader()) { using (var reader = comm.ExecuteReader()) {
var r = new List<string> (); var r = new List<string> ();
var usernameColumn = reader.GetOrdinal ("username"); var usernameColumn = reader.GetOrdinal ("username");
@ -370,9 +370,9 @@ namespace Npgsql.Web
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "select count(*)>0 from usersroles where applicationname = @appname " + comm.CommandText = "select count(*)>0 from usersroles where applicationname = @appname " +
"and username = @username and rolename = @rolename"; "and username = @username and rolename = @rolename";
comm.Parameters.Add ("@username", username); comm.Parameters.AddWithValue ("@username", username);
comm.Parameters.Add ("@rolename", roleName); comm.Parameters.AddWithValue ("@rolename", roleName);
comm.Parameters.Add ("@appname", applicationName); comm.Parameters.AddWithValue ("@appname", applicationName);
var retval = (bool)comm.ExecuteScalar (); var retval = (bool)comm.ExecuteScalar ();
return retval; return retval;
} }
@ -401,9 +401,9 @@ namespace Npgsql.Web
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "delete from usersroles where applicationname = @appname and " + comm.CommandText = "delete from usersroles where applicationname = @appname and " +
"username = @username and rolename = @rolename"; "username = @username and rolename = @rolename";
NpgsqlParameter pu = comm.Parameters.Add ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250); NpgsqlParameter pu = comm.Parameters.AddWithValue ("@username", NpgsqlTypes.NpgsqlDbType.Varchar, 250);
NpgsqlParameter pr = comm.Parameters.Add ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250); NpgsqlParameter pr = comm.Parameters.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250);
comm.Parameters.Add ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; comm.Parameters.AddWithValue ("@appname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName;
foreach (string rolename in roleNames) { foreach (string rolename in roleNames) {
pr.Value = rolename; pr.Value = rolename;
foreach (string username in usernames) { foreach (string username in usernames) {
@ -429,8 +429,8 @@ namespace Npgsql.Web
using (var comm = new NpgsqlCommand("role_exists", conn)) { using (var comm = new NpgsqlCommand("role_exists", conn)) {
comm.CommandType = System.Data.CommandType.Text; comm.CommandType = System.Data.CommandType.Text;
comm.CommandText = "select Count(*)>0 from roles where applicationname = @applicationname and rolename = @rolename"; 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.AddWithValue ("@rolename", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = roleName;
comm.Parameters.Add ("@applicationname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName; comm.Parameters.AddWithValue ("@applicationname", NpgsqlTypes.NpgsqlDbType.Varchar, 250).Value = applicationName;
var retval = (bool)comm.ExecuteScalar (); var retval = (bool)comm.ExecuteScalar ();
return retval; return retval;
} }

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Npgsql" version="2.2.5" targetFramework="net451" />
</packages>

@ -33,11 +33,11 @@ namespace Yavsc
using (NpgsqlCommand cmd = cnx.CreateCommand ()) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = cmd.CommandText =
"insert into commandes (prdref,creation,params,clientname,applicationname) values (@pref,@creat,@prms,@cli,@app) returning id"; "insert into commandes (prdref,creation,params,clientname,applicationname) values (@pref,@creat,@prms,@cli,@app) returning id";
cmd.Parameters.Add ("@pref", com.ProductRef); cmd.Parameters.AddWithValue ("@pref", com.ProductRef);
cmd.Parameters.Add ("@creat", com.CreationDate); cmd.Parameters.AddWithValue ("@creat", com.CreationDate);
cmd.Parameters.Add ("@prms", JsonConvert.SerializeObject(com.Parameters)); cmd.Parameters.AddWithValue ("@prms", JsonConvert.SerializeObject(com.Parameters));
cmd.Parameters.Add ("@cli", Membership.GetUser().UserName); cmd.Parameters.AddWithValue ("@cli", Membership.GetUser().UserName);
cmd.Parameters.Add ("@app", ApplicationName); cmd.Parameters.AddWithValue ("@app", ApplicationName);
cnx.Open (); cnx.Open ();
com.Id = id = (long)cmd.ExecuteScalar (); com.Id = id = (long)cmd.ExecuteScalar ();
} }
@ -64,8 +64,8 @@ namespace Yavsc
using (NpgsqlCommand cmd = cnx.CreateCommand ()) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = cmd.CommandText =
"select id,creation,prdref,params from commandes where @user = clientname and applicationname = @app"; "select id,creation,prdref,params from commandes where @user = clientname and applicationname = @app";
cmd.Parameters.Add ("@user", username); cmd.Parameters.AddWithValue ("@user", username);
cmd.Parameters.Add ("@app", this.ApplicationName); cmd.Parameters.AddWithValue ("@app", this.ApplicationName);
cnx.Open (); cnx.Open ();
using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) { using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) {
while (rdr.Read ()) { while (rdr.Read ()) {
@ -249,7 +249,7 @@ namespace Yavsc
cmd.CommandText = cmd.CommandText =
"select _id from estimate where client = @uname or username = @uname"; "select _id from estimate where client = @uname or username = @uname";
cmd.Parameters.Add ("@uname", username); cmd.Parameters.AddWithValue ("@uname", username);
cnx.Open (); cnx.Open ();
List<Estimate> ests = new List<Estimate> (); List<Estimate> ests = new List<Estimate> ();
using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) { using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) {
@ -283,11 +283,11 @@ namespace Yavsc
cmd.CommandText += "client = @clid"; cmd.CommandText += "client = @clid";
if (responsible != null) if (responsible != null)
cmd.CommandText += " and "; cmd.CommandText += " and ";
cmd.Parameters.Add ("@clid", client); cmd.Parameters.AddWithValue ("@clid", client);
} }
if (responsible != null) { if (responsible != null) {
cmd.CommandText += "username = @resp"; cmd.CommandText += "username = @resp";
cmd.Parameters.Add ("@resp", responsible); cmd.Parameters.AddWithValue ("@resp", responsible);
} }
cnx.Open (); cnx.Open ();
@ -314,7 +314,7 @@ namespace Yavsc
cmd.CommandText = cmd.CommandText =
"delete from writtings where _id = @wrid"; "delete from writtings where _id = @wrid";
cmd.Parameters.Add ("@wrid", wrid); cmd.Parameters.AddWithValue ("@wrid", wrid);
cnx.Open (); cnx.Open ();
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
} }
@ -332,7 +332,7 @@ namespace Yavsc
cmd.CommandText = cmd.CommandText =
"delete from estimate where _id = @estid"; "delete from estimate where _id = @estid";
cmd.Parameters.Add ("@estid", estid); cmd.Parameters.AddWithValue ("@estid", estid);
cnx.Open (); cnx.Open ();
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
} }
@ -351,7 +351,7 @@ namespace Yavsc
cmd.CommandText = cmd.CommandText =
"select title,username,client,description from estimate where _id = @estid"; "select title,username,client,description from estimate where _id = @estid";
cmd.Parameters.Add ("@estid", estimid); cmd.Parameters.AddWithValue ("@estid", estimid);
cnx.Open (); cnx.Open ();
Estimate est = null; Estimate est = null;
using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) { using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) {
@ -372,7 +372,7 @@ namespace Yavsc
est.Description = rdr.GetString (index); est.Description = rdr.GetString (index);
est.Id = estimid; est.Id = estimid;
using (NpgsqlCommand cmdw = new NpgsqlCommand ("select _id, productid, ucost, count, description from writtings where estimid = @estid", cnx)) { 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 ()) { using (NpgsqlDataReader rdrw = cmdw.ExecuteReader ()) {
List<Writting> lw = null; List<Writting> lw = null;
if (rdrw.HasRows) { if (rdrw.HasRows) {
@ -422,11 +422,11 @@ namespace Yavsc
"count = @count, " + "count = @count, " +
"productid = @prdid " + "productid = @prdid " +
"where _id = @wrid"; "where _id = @wrid";
cmd.Parameters.Add ("@wrid", wr.Id); cmd.Parameters.AddWithValue ("@wrid", wr.Id);
cmd.Parameters.Add ("@desc", wr.Description); cmd.Parameters.AddWithValue ("@desc", wr.Description);
cmd.Parameters.Add ("@ucost", wr.UnitaryCost); cmd.Parameters.AddWithValue ("@ucost", wr.UnitaryCost);
cmd.Parameters.Add ("@prdid", wr.ProductReference); cmd.Parameters.AddWithValue ("@prdid", wr.ProductReference);
cmd.Parameters.Add ("@count", wr.Count); cmd.Parameters.AddWithValue ("@count", wr.Count);
cnx.Open (); cnx.Open ();
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
cnx.Close (); cnx.Close ();
@ -445,11 +445,11 @@ namespace Yavsc
cmd.CommandText = cmd.CommandText =
"update estimate set title = @tit, username = @un, " + "update estimate set title = @tit, username = @un, " +
"description = @descr, client = @cli where _id = @estid"; "description = @descr, client = @cli where _id = @estid";
cmd.Parameters.Add ("@tit", estim.Title); cmd.Parameters.AddWithValue ("@tit", estim.Title);
cmd.Parameters.Add ("@un", estim.Responsible); cmd.Parameters.AddWithValue ("@un", estim.Responsible);
cmd.Parameters.Add ("@descr", estim.Description); cmd.Parameters.AddWithValue ("@descr", estim.Description);
cmd.Parameters.Add ("@cli", estim.Client); cmd.Parameters.AddWithValue ("@cli", estim.Client);
cmd.Parameters.Add ("@estid", estim.Id); cmd.Parameters.AddWithValue ("@estid", estim.Id);
cnx.Open (); cnx.Open ();
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
cnx.Close (); cnx.Close ();
@ -472,12 +472,12 @@ namespace Yavsc
using (NpgsqlCommand cmd = cnx.CreateCommand ()) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = cmd.CommandText =
"insert into writtings (description, estimid, ucost, count, productid) VALUES (@dscr,@estid,@ucost,@count,@prdid) returning _id"; "insert into writtings (description, estimid, ucost, count, productid) VALUES (@dscr,@estid,@ucost,@count,@prdid) returning _id";
cmd.Parameters.Add ("@dscr", desc); cmd.Parameters.AddWithValue ("@dscr", desc);
cmd.Parameters.Add("@estid", estid); cmd.Parameters.AddWithValue("@estid", estid);
cmd.Parameters.Add("@ucost", ucost); cmd.Parameters.AddWithValue("@ucost", ucost);
cmd.Parameters.Add("@count", count); cmd.Parameters.AddWithValue("@count", count);
cmd.Parameters.Add("@prdid", productid); cmd.Parameters.AddWithValue("@prdid", productid);
cnx.Open (); cnx.Open ();
long res = (long) cmd.ExecuteScalar (); long res = (long) cmd.ExecuteScalar ();
@ -498,8 +498,8 @@ namespace Yavsc
using (NpgsqlCommand cmd = cnx.CreateCommand ()) { using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = cmd.CommandText =
"update writtings set description = @dscr where _id = @writid"; "update writtings set description = @dscr where _id = @writid";
cmd.Parameters.Add ("@tit", newDesc); cmd.Parameters.AddWithValue ("@tit", newDesc);
cmd.Parameters.Add ("@writid", writid); cmd.Parameters.AddWithValue ("@writid", writid);
cnx.Open (); cnx.Open ();
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
cnx.Close (); cnx.Close ();
@ -522,11 +522,11 @@ namespace Yavsc
cmd.CommandText = cmd.CommandText =
"insert into estimate (title,description,username,client,applicationname) " + "insert into estimate (title,description,username,client,applicationname) " +
"values (@tit,@descr,@resp,@un,@app) returning _id"; "values (@tit,@descr,@resp,@un,@app) returning _id";
cmd.Parameters.Add ("@tit", title); cmd.Parameters.AddWithValue ("@tit", title);
cmd.Parameters.Add ("@un", client); cmd.Parameters.AddWithValue ("@un", client);
cmd.Parameters.Add ("@resp", responsible); cmd.Parameters.AddWithValue ("@resp", responsible);
cmd.Parameters.Add ("@descr", description); cmd.Parameters.AddWithValue ("@descr", description);
cmd.Parameters.Add("@app", ApplicationName); cmd.Parameters.AddWithValue("@app", ApplicationName);
cnx.Open (); cnx.Open ();
Estimate created = new Estimate (); Estimate created = new Estimate ();
created.Id = (long)cmd.ExecuteScalar (); created.Id = (long)cmd.ExecuteScalar ();

@ -32,7 +32,6 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="Npgsql" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Web.Mvc" /> <Reference Include="System.Web.Mvc" />
@ -44,6 +43,12 @@
<Reference Include="System.Web.ApplicationServices" /> <Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Mono.Security">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll</HintPath>
</Reference>
<Reference Include="Npgsql">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
@ -56,4 +61,7 @@
<Name>YavscModel</Name> <Name>YavscModel</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
</Project> </Project>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Npgsql" version="2.2.5" targetFramework="net451" />
</packages>

@ -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}}}]}

@ -2,7 +2,6 @@
using Yavsc.Model; using Yavsc.Model;
using System.Configuration; using System.Configuration;
using System.Text; using System.Text;
using System.Web.Mvc;
using System.Collections.Generic; using System.Collections.Generic;
namespace fortune namespace fortune

@ -1,5 +1,5 @@
// //
// NightFlashController.cs // CalendarController.cs
// //
// Author: // Author:
// Paul Schneider <paulschneider@free.fr> // Paul Schneider <paulschneider@free.fr>
@ -22,6 +22,12 @@ using System;
using System.Web.Http; using System.Web.Http;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Yavsc.ApiControllers.Calendar.Model; 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 namespace Yavsc.ApiControllers.Calendar
{ {
@ -30,19 +36,13 @@ namespace Yavsc.ApiControllers.Calendar
/// </summary> /// </summary>
public class CalendarController: ApiController public class CalendarController: ApiController
{ {
/// <summary> YaEvent[] getTestList()
/// List events according the specified search arguments.
/// </summary>
/// <param name="args">Arguments.</param>
[ValidateAjaxAttribute]
[HttpGet]
public YaEvent[] List ([FromUri] PositionAndKeyphrase args)
{ {
return new YaEvent[] { return new YaEvent[] {
new YaEvent () { new YaEvent () {
Description = "Test Descr", Description = "Test Descr",
Title = "Night club special bubble party", Title = "Night club special bubble party",
Location = new Position() { Location = new Position () {
Longitude = 0, Longitude = 0,
Latitude = 0 Latitude = 0
} }
@ -50,7 +50,7 @@ namespace Yavsc.ApiControllers.Calendar
new YaEvent () { new YaEvent () {
Title = "Test2", Title = "Test2",
ImgLocator = "http://bla/im.png", ImgLocator = "http://bla/im.png",
Location = new Position() { Location = new Position () {
Longitude = 0, Longitude = 0,
Latitude = 0 Latitude = 0
} }
@ -58,7 +58,7 @@ namespace Yavsc.ApiControllers.Calendar
new YaEvent () { new YaEvent () {
Description = "Test Descr", Description = "Test Descr",
Title = "Night club special bubble party", Title = "Night club special bubble party",
Location = new Position() { Location = new Position () {
Longitude = 0, Longitude = 0,
Latitude = 0 Latitude = 0
} }
@ -66,7 +66,7 @@ namespace Yavsc.ApiControllers.Calendar
new YaEvent () { new YaEvent () {
Title = "Test2", Title = "Test2",
ImgLocator = "http://bla/im.png", ImgLocator = "http://bla/im.png",
Location = new Position() { Location = new Position () {
Longitude = 0, Longitude = 0,
Latitude = 0 Latitude = 0
} }
@ -74,6 +74,17 @@ namespace Yavsc.ApiControllers.Calendar
}; };
} }
/// <summary>
/// List events according the specified search arguments.
/// </summary>
/// <param name="args">Arguments.</param>
[ValidateAjaxAttribute]
[HttpGet]
public YaEvent[] List ([FromUri] PositionAndKeyphrase args)
{
return getTestList();
}
/// <summary> /// <summary>
/// Provider the specified ProviderId. /// Provider the specified ProviderId.
/// </summary> /// </summary>
@ -119,12 +130,260 @@ namespace Yavsc.ApiControllers.Calendar
/// <param name="ev">Ev.</param> /// <param name="ev">Ev.</param>
public int PostEvent ([FromBody] ProvidedEvent ev) public int PostEvent ([FromBody] ProvidedEvent ev)
{ {
return -1; throw new NotImplementedException();
}
/// <summary>
/// Notification.
/// </summary>
public class Notification {
/// <summary>
/// The title.
/// </summary>
public string title;
/// <summary>
/// The body.
/// </summary>
public string body;
/// <summary>
/// The icon.
/// </summary>
public string icon;
/// <summary>
/// The sound.
/// </summary>
public string sound;
/// <summary>
/// The tag.
/// </summary>
public string tag;
/// <summary>
/// The color.
/// </summary>
public string color;
/// <summary>
/// The click action.
/// </summary>
public string click_action;
}
// https://gcm-http.googleapis.com/gcm/send
/// <summary>
/// Message with payload.
/// </summary>
public class MessageWithPayload<T> {
/// <summary>
/// To.
/// </summary>
public string to;
/// <summary>
/// The registration identifiers.
/// </summary>
public string [] registration_ids;
/// <summary>
/// The data.
/// </summary>
public T[] data ;
/// <summary>
/// The notification.
/// </summary>
public Notification notification;
/// <summary>
/// The collapse key.
/// </summary>
public string collapse_key; // in order to collapse ...
/// <summary>
/// The priority.
/// </summary>
public int priority; // between 0 and 10, 10 is the lowest!
/// <summary>
/// The content available.
/// </summary>
public bool content_available;
/// <summary>
/// The delay while idle.
/// </summary>
public bool delay_while_idle;
/// <summary>
/// The time to live.
/// </summary>
public int time_to_live; // seconds
/// <summary>
/// The name of the restricted package.
/// </summary>
public string restricted_package_name;
/// <summary>
/// The dry run.
/// </summary>
public bool dry_run;
/// <summary>
/// Validate the specified modelState.
/// </summary>
/// <param name="modelState">Model state.</param>
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");
}
}
}
/// <summary>
/// Message with payload response.
/// </summary>
public class MessageWithPayloadResponse {
/// <summary>
/// The multicast identifier.
/// </summary>
public int multicast_id;
/// <summary>
/// The success count.
/// </summary>
public int success;
/// <summary>
/// The failure count.
/// </summary>
public int failure;
/// <summary>
/// The canonical identifiers... ?!?
/// </summary>
public int canonical_ids;
/// <summary>
/// Detailled result.
/// </summary>
public class Result {
/// <summary>
/// The message identifier.
/// </summary>
public string message_id;
/// <summary>
/// The registration identifier.
/// </summary>
public string registration_id;
/// <summary>
/// The error.
/// </summary>
public string error;
}
/// <summary>
/// The results.
/// </summary>
public Result [] results;
}
/// <summary>
/// GCM register model.
/// </summary>
public class GCMRegisterModel {
/// <summary>
/// Gets or sets the name of the user.
/// </summary>
/// <value>The name of the user.</value>
[Localizable(true)]
[Display(ResourceType=typeof(LocalizedText),Name="UserName")]
[Required(ErrorMessage = "S'il vous plait, entrez un nom d'utilisateur")]
public string UserName { get; set; }
/// <summary>
/// Gets or sets the password.
/// </summary>
/// <value>The password.</value>
[DisplayName("Mot de passe")]
[Required(ErrorMessage = "S'il vous plait, entez un mot de passe")]
public string Password { get; set; }
/// <summary>
/// Gets or sets the email.
/// </summary>
/// <value>The email.</value>
[DisplayName("Adresse e-mail")]
[Required(ErrorMessage = "S'il vous plait, entrez un e-mail valide")]
public string Email { get; set; }
/// <summary>
/// Gets or sets the registration identifier against Google Clood Messaging and their info on this application.
/// </summary>
/// <value>The registration identifier.</value>
public string RegistrationId { get; set; }
}
/// <summary>
/// Registers with push notifications enabled.
/// </summary>
/// <param name="model">Model.</param>
[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 ();
}
}
} }
/// <summary>
/// Sets the registration identifier.
/// </summary>
/// <param name="registrationId">Registration identifier.</param>
[Authorize] [Authorize]
void NotifyEvent(EventPub evpub) { public void SetRegistrationId(string registrationId)
throw new NotImplementedException(); {
// 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);
}
/// <summary>
/// Notifies the event.
/// </summary>
/// <param name="evpub">Evpub.</param>
public MessageWithPayloadResponse NotifyEvent(EventPub evpub) {
SimpleJsonPostMethod<MessageWithPayload<YaEvent>,MessageWithPayloadResponse> r =
new SimpleJsonPostMethod<MessageWithPayload<YaEvent>,MessageWithPayloadResponse>(
"https://gcm-http.googleapis.com/gcm/send");
using (r) {
var msg = new MessageWithPayload<YaEvent> () { data = new YaEvent[] { (YaEvent)evpub } };
msg.to = string.Join (" ", Circle.Union (evpub.Circles));
return r.Invoke (msg);
}
} }
} }
} }

@ -1,5 +1,5 @@
// //
// NightFlashController.cs // Circle.cs
// //
// Author: // Author:
// Paul Schneider <paulschneider@free.fr> // Paul Schneider <paulschneider@free.fr>
@ -21,13 +21,42 @@
using System; using System;
using System.Web.Http; using System.Web.Http;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
namespace Yavsc.ApiControllers.Calendar.Model namespace Yavsc.ApiControllers.Calendar.Model
{ {
class Circle /// <summary>
/// Circle.
/// </summary>
public class Circle
{ {
/// <summary>
/// Gets or sets the title.
/// </summary>
/// <value>The title.</value>
public string Title { get; set; } public string Title { get; set; }
string [] Users { get; set; }
/// <summary>
/// Gets or sets the users.
/// </summary>
/// <value>The users.</value>
public string [] Users { get; set; }
/// <summary>
/// Union the specified that.
/// </summary>
/// <param name="that">That.</param>
public static string [] Union (Circle []those)
{
List<string> content = new List<string>();
foreach (Circle c in those) {
foreach (string user_name in c.Users) {
if (!content.Contains (user_name))
content.Add (user_name);
}
}
return content.ToArray ();
}
} }
} }

@ -1,62 +0,0 @@
//
// NFEvent.cs
//
// Author:
// Paul Schneider <paulschneider@free.fr>
//
// 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 <http://www.gnu.org/licenses/>.
using System;
using System.Web.Http;
using System.ComponentModel.DataAnnotations;
namespace Yavsc.ApiControllers.Calendar.Model
{
/// <summary>
/// Establishment type.
/// </summary>
public enum EstablishmentType
{
/// <summary>
/// The discotheque.
/// </summary>
Discotheque,
/// <summary>
/// The piano bar.
/// </summary>
PianoBar,
/// <summary>
/// The bar.
/// </summary>
Bar,
/// <summary>
/// The place publique.
/// </summary>
PlacePublique,
/// <summary>
/// The maison privee.
/// </summary>
MaisonPrivee,
/// <summary>
/// The domaine publique.
/// </summary>
DomainePublique,
/// <summary>
/// The domaine prive.
/// </summary>
DomainePrive
}
}

@ -1,5 +1,5 @@
// //
// NightFlashController.cs // EventPub.cs
// //
// Author: // Author:
// Paul Schneider <paulschneider@free.fr> // Paul Schneider <paulschneider@free.fr>
@ -22,12 +22,21 @@ using System;
using System.Web.Http; using System.Web.Http;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Yavsc.ApiControllers.Calendar.Model; using Yavsc.ApiControllers.Calendar.Model;
using Yavsc.Model;
namespace Yavsc.ApiControllers.Calendar.Model namespace Yavsc.ApiControllers.Calendar.Model
{ {
class EventPub: YaEvent /// <summary>
/// Event pub.
/// </summary>
public class EventPub: YaEvent
{ {
Circle[] Circles { get; set; } /// <summary>
/// Gets or sets the circles.
/// </summary>
/// <value>The circles.</value>
[Display(ResourceType=typeof(LocalizedText),Name="Circles")]
public Circle[] Circles { get; set; }
} }
} }

@ -1,71 +0,0 @@
//
// EventType.cs
//
// Author:
// Paul Schneider <paulschneider@free.fr>
//
// 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 <http://www.gnu.org/licenses/>.
using System;
using System.Web.Http;
using System.ComponentModel.DataAnnotations;
namespace Yavsc.ApiControllers.Calendar.Model
{
/// <summary>
/// Event type.
/// </summary>
public enum EventType
{
/// <summary>
/// The concert gratuit.
/// </summary>
ConcertGratuit,
/// <summary>
/// The concert prive.
/// </summary>
ConcertPrive,
/// <summary>
/// The distraciton.
/// </summary>
Distraciton,
/// <summary>
/// The rencontre.
/// </summary>
Rencontre,
/// <summary>
/// The assemblee.
/// </summary>
Assemblee,
/// <summary>
/// The reunion.
/// </summary>
Reunion,
/// <summary>
/// The bureau.
/// </summary>
Bureau,
/// <summary>
/// The manifestation.
/// </summary>
Manifestation,
/// <summary>
/// The zone de danger.
/// </summary>
ZoneDeDanger
}
}

@ -1,5 +1,5 @@
// //
// NightFlashController.cs // UserPrefs.cs
// //
// Author: // Author:
// Paul Schneider <paulschneider@free.fr> // Paul Schneider <paulschneider@free.fr>
@ -28,7 +28,7 @@ namespace Yavsc.ApiControllers.Calendar.Model
class UserPrefs class UserPrefs
{ {
Circle [] Circles { get; set ; } Circle [] Circles { get; set ; }
Dictionary<string,double> MusicTypeRatings { get; set; } Dictionary<string,double> EventTypeRatings { get; set; }
Dictionary<string,double> LocationTypeRatings { get; set; } Dictionary<string,double> LocationTypeRatings { get; set; }
} }
} }

@ -22,6 +22,7 @@
using System; using System;
using System.Web.Http; using System.Web.Http;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Yavsc.Model;
namespace Yavsc.ApiControllers.Calendar.Model namespace Yavsc.ApiControllers.Calendar.Model
{ {
@ -31,71 +32,65 @@ namespace Yavsc.ApiControllers.Calendar.Model
/// </summary> /// </summary>
public class YaEvent public class YaEvent
{ {
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.ApiControllers.Calendar.Model.YaEvent"/> class.
/// </summary>
public YaEvent()
{
this.EstabType = EstablishmentType.DomainePublique;
this.NFEvType = EventType.Distraciton;
}
/// <summary>
/// Gets or sets the type of the NF ev.
/// </summary>
/// <value>The type of the NF ev.</value>
[Required]
public EventType NFEvType { get; set; }
/// <summary>
/// Gets or sets the type of the estab.
/// </summary>
/// <value>The type of the estab.</value>
[Required(ErrorMessage="Please, choose an establisment type.")]
public EstablishmentType EstabType { get; set; }
/// <summary> /// <summary>
/// The title. /// The title.
/// </summary> /// </summary>
[Required(ErrorMessage="Please, choose a .")] [Required(ErrorMessage="Please, choose a .")]
[Display(ResourceType=typeof(LocalizedText),Name="Title")]
public string Title { get; set; } public string Title { get; set; }
/// <summary> /// <summary>
/// The description. /// The description.
/// </summary> /// </summary>
[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; }
/// <summary> /// <summary>
/// The location. /// The location.
/// </summary> /// </summary>
[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; }
/// <summary> /// <summary>
/// The start date. /// The start date.
/// </summary> /// </summary>
[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; }
/// <summary> /// <summary>
/// Gets or sets the end date. /// Gets or sets the end date.
/// </summary> /// </summary>
/// <value>The end date.</value> /// <value>The end date.</value>
[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; }
/// <summary> /// <summary>
/// The name of the NF provider. /// The name of the NF provider.
/// </summary> /// </summary>
[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; }
/// <summary> /// <summary>
/// The NF provider identifier. /// The NF provider identifier.
/// </summary> /// </summary>
[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; }
/// <summary> /// <summary>
/// The promotion code. /// The promotion code.
/// </summary> /// </summary>
public string PromotionCode { get; set; } [Display(ResourceType=typeof(LocalizedText),Name="Comment")]
public string Comment { get; set; }
/// <summary> /// <summary>
/// The event web page. /// The event web page.
/// </summary> /// </summary>
[Display(ResourceType=typeof(LocalizedText),Name="EventWebPage")]
public string EventWebPage { get; set; } public string EventWebPage { get; set; }
/// <summary> /// <summary>
/// The image locator. /// The image locator.
/// </summary>- /// </summary>
[Display(ResourceType=typeof(LocalizedText),Name="ImgLocator")]
public string ImgLocator { get; set; } public string ImgLocator { get; set; }
} }
} }

@ -13,29 +13,18 @@ namespace Yavsc.Controllers
/// <summary> /// <summary>
/// File system controller. /// File system controller.
/// </summary> /// </summary>
public class FileSystemController : Controller public class FileSystemController : Controller
{ {
/// <summary>
/// Gets the users base directory.
/// </summary>
/// <value>The users dir.</value>
public string RootDir {
get {
return mgr.Prefix;
}
}
FileSystemManager mgr = null ;
/// <summary> /// <summary>
/// Initialize the specified requestContext. /// Initialize the specified requestContext.
/// </summary> /// </summary>
/// <param name="requestContext">Request context.</param> /// <param name="requestContext">Request context.</param>
[Authorize]
protected override void Initialize (System.Web.Routing.RequestContext requestContext) protected override void Initialize (System.Web.Routing.RequestContext requestContext)
{ {
base.Initialize (requestContext); base.Initialize (requestContext);
mgr = new FileSystemManager (
string.Format("~/users/{0}",Membership.GetUser().UserName));
} }
/// <summary> /// <summary>
@ -44,7 +33,10 @@ namespace Yavsc.Controllers
[Authorize] [Authorize]
public ActionResult Index (string id) 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);
} }
/// <summary> /// <summary>
@ -53,6 +45,7 @@ namespace Yavsc.Controllers
/// <param name="id">Identifier.</param> /// <param name="id">Identifier.</param>
public ActionResult Details (string id) public ActionResult Details (string id)
{ {
foreach (char x in Path.GetInvalidPathChars()) { foreach (char x in Path.GetInvalidPathChars()) {
if (id.Contains (x)) { if (id.Contains (x)) {
ViewData ["Message"] = ViewData ["Message"] =
@ -62,10 +55,19 @@ namespace Yavsc.Controllers
return RedirectToAction ("Index"); return RedirectToAction ("Index");
} }
} }
FileInfo fi = mgr.FileInfo (id); FileSystemManager fsmgr = new FileSystemManager ();
FileInfo fi = fsmgr.FileInfo (id);
ViewData ["Content"] = Url.Content (fi.FullName);
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); return View (fi);
} }
@ -77,16 +79,10 @@ namespace Yavsc.Controllers
[Authorize] [Authorize]
public ActionResult Create (string id) public ActionResult Create (string id)
{ {
mgr.Put ( id, Request.Files); FileSystemManager fsmgr = new FileSystemManager ();
return View ("Index",mgr.GetFiles(id)); return View ("Index",fsmgr.GetFiles(id));
} }
/// <summary>
/// Gets the user's base dir.
/// </summary>
/// <value>The base dir.</value>
public string UserBaseDir { get { return Path.Combine (RootDir, Membership.GetUser ().UserName); } }
/// <summary> /// <summary>
/// Edit the specified id. /// Edit the specified id.
/// </summary> /// </summary>

@ -12,6 +12,7 @@ using System.Web.Security;
using System.Threading; using System.Threading;
using Yavsc.Model.FrontOffice; using Yavsc.Model.FrontOffice;
using Yavsc.Model.FileSystem; using Yavsc.Model.FileSystem;
using Yavsc.ApiControllers.Calendar.Model;
namespace Yavsc.Controllers namespace Yavsc.Controllers
{ {
@ -43,7 +44,10 @@ namespace Yavsc.Controllers
{ {
return View (); return View ();
} }
public ActionResult EventPub (EventPub model)
{
return View (model);
}
/// <summary> /// <summary>
/// Estimates this instance. /// Estimates this instance.
/// </summary> /// </summary>

@ -60,6 +60,11 @@ ViewState["orgtitle"] = T.GetString(Page.Title);
</aside> </aside>
<div style="float:right; height:5em; z-index:-1;"></div> <div style="float:right; height:5em; z-index:-1;"></div>
<footer> <footer>
<!-- Placez cette balise dans l'en-tête ou juste avant la balise de fermeture du corps de texte. -->
<script src="https://apis.google.com/js/platform.js" async defer>
{lang: 'fr'}
</script>
<div class="g-plusone" data-annotation="inline" data-width="230"></div>
<%= Html.ActionLink("Contact","Contact","Home",null, new { @class="footerlink" }) %> <br/> <%= Html.ActionLink("Contact","Contact","Home",null, new { @class="footerlink" }) %> <br/>
<% foreach ( string link in Yavsc.ThanksHelper.Links()) { %> <% foreach ( string link in Yavsc.ThanksHelper.Links()) { %>
<%= link %> <%= link %>

@ -47,14 +47,14 @@ namespace Yavsc
using (NpgsqlCommand cmd = cnx.CreateCommand ()) using (NpgsqlCommand cmd = cnx.CreateCommand ())
{ {
cmd.CommandText = "insert into testbytea (t) values (@tv)"; cmd.CommandText = "insert into testbytea (t) values (@tv)";
cmd.Parameters.Add ("@tv", a); cmd.Parameters.AddWithValue ("@tv", a);
cmd.ExecuteNonQuery (); cmd.ExecuteNonQuery ();
} }
using (NpgsqlCommand cmd = cnx.CreateCommand ()) using (NpgsqlCommand cmd = cnx.CreateCommand ())
{ {
cmd.CommandText = "select t from testbytea"; cmd.CommandText = "select t from testbytea";
cmd.Parameters.Add ("@tv", a); cmd.Parameters.AddWithValue ("@tv", a);
NpgsqlDataReader rdr = cmd.ExecuteReader (); NpgsqlDataReader rdr = cmd.ExecuteReader ();
if (!rdr.Read ()) if (!rdr.Read ())

@ -7,5 +7,5 @@ Dérnière modification :
<%= Model.LastWriteTime %><br/> <%= Model.LastWriteTime %><br/>
Dernier accès : Dernier accès :
<%= Model.LastAccessTime %><br/> <%= Model.LastAccessTime %><br/>
Lien permanent : <a href="/<%= ViewData["Content"] %>">/<%= ViewData["Content"] %></a> Lien permanent : <a href="<%= ViewData["url"] %>"><%= ViewData["url"] %></a>
</asp:Content> </asp:Content>

@ -1,8 +1,9 @@
<%@ Page Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<Yavsc.FileInfoCollection>" %> <%@ Page Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<Yavsc.Model.FileSystem.FileInfoCollection>" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server"> <asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<h1> Index of <%= Model.Owner %>'s files (<%= Html.Encode(Model.Count) %>) </h1> <h1> Index of <%= Model.Owner %>'s files (<%= Html.Encode(Model.Count) %>)
</h1>
<ul> <ul>
<% foreach (System.IO.FileInfo fi in Model) { %> <% foreach (System.IO.FileInfo fi in Model) { %>
<li> <%= Html.ActionLink(fi.Name,"Details",new {id = fi.Name}) %> </li> <li> <%= Html.ActionLink(fi.Name,"Details",new {id = fi.Name}) %> </li>
<% } %> <% } %>
</ul> </ul>

@ -0,0 +1,23 @@
<%@ Page Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<Yavsc.ApiControllers.Calendar.Model.EventPub>" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm()) { %>
<%= Html.LabelFor(model => model.Title) %>: <%=Model.Title%><br/>
<%= Html.LabelFor(model => model.Description) %>: <%=Model.Description%> <br/>
<%= Html.LabelFor(model => model.Location) %>: <%=Model.Location%> <br/>
<%= Html.LabelFor(model => model.StartDate) %>: <%=Model.StartDate%> <br/>
<%= Html.LabelFor(model => model.EndDate) %>: <%=Model.EndDate%> <br/>
<%= Html.LabelFor(model => model.Circles) %>: <%=Model.Circles%> <br/>
<%= Html.LabelFor(model => model.ImgLocator) %>: <%=Model.ImgLocator%> <br/>
<%= Html.LabelFor(model => model.EventWebPage) %>: <%=Model.EventWebPage%> <br/>
<%= Html.LabelFor(model => model.ProviderName) %>: <%=Model.ProviderName%> <br/>
<%= Html.LabelFor(model => model.Comment) %>: <%=Model.Comment%> <br/>
<% } %>
</asp:Content>

@ -45,17 +45,7 @@ http://msdn2.microsoft.com/en-us/library/b5ysx397.aspx
--> -->
<compilation defaultLanguage="C#" debug="false"> <compilation defaultLanguage="C#" debug="false">
<assemblies> <assemblies>
<add assembly="Npgsql, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
<add assembly="System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <add assembly="System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> <add assembly="System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> <add assembly="System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
@ -149,6 +139,7 @@ http://msdn2.microsoft.com/en-us/library/b5ysx397.aspx
<add name="avatar" /> <add name="avatar" />
<add name="gcalapi" /> <add name="gcalapi" />
<add name="gcalid" /> <add name="gcalid" />
<add name="gregid" />
</properties> </properties>
</profile> </profile>
<blog defaultProvider="NpgsqlBlogProvider"> <blog defaultProvider="NpgsqlBlogProvider">
@ -261,7 +252,7 @@ http://msdn2.microsoft.com/en-us/library/b5ysx397.aspx
</root> </root>
</log4net> </log4net>
<connectionStrings> <connectionStrings>
<add name="yavsc" connectionString="Server=127.0.0.1;Port=5432;Database=yavsc;User Id=yavsc;Password=admin;Encoding=Unicode;" providerName="Npgsql" /> <add name="yavsc" connectionString="Server=127.0.0.1;Port=5432;Database=YavscDev;User Id=yavscdev;Password=admin;Encoding=Unicode;" providerName="Npgsql" />
</connectionStrings> </connectionStrings>
<appSettings> <appSettings>
<add key="WorkflowContentProviderClass" value="yavsc.NpgsqlContentProvider" /> <add key="WorkflowContentProviderClass" value="yavsc.NpgsqlContentProvider" />

@ -54,7 +54,6 @@
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="Npgsql" />
<Reference Include="CodeKicker.BBCode"> <Reference Include="CodeKicker.BBCode">
<HintPath>lib\CodeKicker.BBCode.dll</HintPath> <HintPath>lib\CodeKicker.BBCode.dll</HintPath>
</Reference> </Reference>
@ -85,6 +84,12 @@
<Reference Include="System.Net.Http.Formatting" /> <Reference Include="System.Net.Http.Formatting" />
<Reference Include="System.Net.Http.WebRequest" /> <Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Web.WebPages.Razor" /> <Reference Include="System.Web.WebPages.Razor" />
<Reference Include="Mono.Security">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll</HintPath>
</Reference>
<Reference Include="Npgsql">
<HintPath>..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Models\" /> <Folder Include="Models\" />
@ -187,8 +192,6 @@
<Compile Include="ApiControllers\Calendar\Model\Schedule.cs" /> <Compile Include="ApiControllers\Calendar\Model\Schedule.cs" />
<Compile Include="ApiControllers\Calendar\Model\ProviderPublicInfo.cs" /> <Compile Include="ApiControllers\Calendar\Model\ProviderPublicInfo.cs" />
<Compile Include="ApiControllers\Calendar\Model\WeekDay.cs" /> <Compile Include="ApiControllers\Calendar\Model\WeekDay.cs" />
<Compile Include="ApiControllers\Calendar\Model\EstablishmentType.cs" />
<Compile Include="ApiControllers\Calendar\Model\EventType.cs" />
<Compile Include="ApiControllers\Calendar\CalendarController.cs" /> <Compile Include="ApiControllers\Calendar\CalendarController.cs" />
<Compile Include="ApiControllers\Calendar\Model\YaEvent.cs" /> <Compile Include="ApiControllers\Calendar\Model\YaEvent.cs" />
<Compile Include="ApiControllers\Calendar\Model\Circle.cs" /> <Compile Include="ApiControllers\Calendar\Model\Circle.cs" />
@ -682,6 +685,7 @@
<Content Include="Views\FrontOffice\Estimate.aspx" /> <Content Include="Views\FrontOffice\Estimate.aspx" />
<Content Include="Theme\dark\croix.png" /> <Content Include="Theme\dark\croix.png" />
<Content Include="Views\Admin\RemoveRole..aspx" /> <Content Include="Views\Admin\RemoveRole..aspx" />
<Content Include="Views\FrontOffice\EventPub.aspx" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

@ -122,6 +122,7 @@ CREATE TABLE profiledata
gtokenexpir timestamp with time zone, -- Google access token expiration date gtokenexpir timestamp with time zone, -- Google access token expiration date
avatar character varying(512), -- url for an avatar avatar character varying(512), -- url for an avatar
gcalapi boolean NOT NULL DEFAULT false, -- true when user authorized to use its Google calendar gcalapi boolean NOT NULL DEFAULT false, -- true when user authorized to use its Google calendar
gregid character varying(1024), -- Google Cloud Message registration identifier
CONSTRAINT fkprofiles2 FOREIGN KEY (uniqueid) CONSTRAINT fkprofiles2 FOREIGN KEY (uniqueid)
REFERENCES profiles (uniqueid) MATCH SIMPLE REFERENCES profiles (uniqueid) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE ON UPDATE CASCADE ON DELETE CASCADE
@ -142,6 +143,7 @@ COMMENT ON COLUMN profiledata.gtokentype IS 'Google access token type';
COMMENT ON COLUMN profiledata.grefreshtoken IS 'Google refresh token'; COMMENT ON COLUMN profiledata.grefreshtoken IS 'Google refresh token';
COMMENT ON COLUMN profiledata.gtokenexpir IS 'Google access token expiration date'; COMMENT ON COLUMN profiledata.gtokenexpir IS 'Google access token expiration date';
COMMENT ON COLUMN profiledata.avatar IS 'url for an avatar'; COMMENT ON COLUMN profiledata.avatar IS 'url for an avatar';
COMMENT ON COLUMN profiledata.gregid IS 'Google Cloud Message registration identifier';
-- Index: fki_fkprofiles2 -- Index: fki_fkprofiles2

@ -5,5 +5,6 @@
<package id="jquery-globalize" version="0.1.3" targetFramework="net45" /> <package id="jquery-globalize" version="0.1.3" targetFramework="net45" />
<package id="log4net" version="2.0.3" targetFramework="net40" /> <package id="log4net" version="2.0.3" targetFramework="net40" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net451" /> <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net451" />
<package id="Npgsql" version="2.2.5" targetFramework="net451" />
<package id="PayPalCoreSDK" version="1.6.0" targetFramework="net451" /> <package id="PayPalCoreSDK" version="1.6.0" targetFramework="net451" />
</packages> </packages>

@ -56,11 +56,14 @@ namespace Yavsc.Model.FileSystem
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Yavsc.Model.FileSystem.FileSystemManager"/> class. /// Initializes a new instance of the <see cref="Yavsc.Model.FileSystem.FileSystemManager"/> class.
/// </summary> /// </summary>
public FileSystemManager (string rootDirectory="~/files", char dirSep = '/') public FileSystemManager (string rootDirectory="~/users/{0}", char dirSep = '/')
{ {
prefix = rootDirectory; MembershipUser user = Membership.GetUser ();
if (user == null)
throw new Exception ("Not membership available");
Prefix = HttpContext.Current.Server.MapPath (
string.Format (rootDirectory, user.UserName));
DirectorySeparator = dirSep; DirectorySeparator = dirSep;
} }
string regexFileName = "^[A-Za-z0-9#^!+ _~\\-.]+$"; string regexFileName = "^[A-Za-z0-9#^!+ _~\\-.]+$";
@ -109,9 +112,6 @@ namespace Yavsc.Model.FileSystem
} }
set { set {
prefix = value; prefix = value;
if (value.StartsWith ("~/")) {
prefix = HttpContext.Current.Server.MapPath(value);
}
} }
} }
@ -145,7 +145,7 @@ namespace Yavsc.Model.FileSystem
{ {
string path = Prefix; string path = Prefix;
if (subdir != null) { if (subdir != null) {
checkSubDir (subdir); checkSubDir (subdir); // checks for specification validity
path = Path.Combine (Prefix, subdir); path = Path.Combine (Prefix, subdir);
} }
DirectoryInfo di = new DirectoryInfo (path); DirectoryInfo di = new DirectoryInfo (path);

@ -89,7 +89,7 @@ namespace Yavsc.Model.FrontOffice
} }
private FileSystemManager GetFSM() { private FileSystemManager GetFSM() {
return new FileSystemManager ("~/commands"); return new FileSystemManager ("~/commands/{0}");
} }
} }
} }

@ -64,12 +64,24 @@ namespace Yavsc.Model {
} }
} }
public static string ProviderId {
get {
return ResourceManager.GetString("ProviderId", resourceCulture);
}
}
public static string Welcome { public static string Welcome {
get { get {
return ResourceManager.GetString("Welcome", resourceCulture); return ResourceManager.GetString("Welcome", resourceCulture);
} }
} }
public static string StartDate {
get {
return ResourceManager.GetString("StartDate", resourceCulture);
}
}
public static string My_Estimates { public static string My_Estimates {
get { get {
return ResourceManager.GetString("My_Estimates", resourceCulture); return ResourceManager.GetString("My_Estimates", resourceCulture);
@ -94,6 +106,12 @@ namespace Yavsc.Model {
} }
} }
public static string ImgLocator {
get {
return ResourceManager.GetString("ImgLocator", resourceCulture);
}
}
public static string MaxDate { public static string MaxDate {
get { get {
return ResourceManager.GetString("MaxDate", resourceCulture); return ResourceManager.GetString("MaxDate", resourceCulture);
@ -124,12 +142,36 @@ namespace Yavsc.Model {
} }
} }
public static string Comment {
get {
return ResourceManager.GetString("Comment", resourceCulture);
}
}
public static string ProviderName {
get {
return ResourceManager.GetString("ProviderName", resourceCulture);
}
}
public static string User_List { public static string User_List {
get { get {
return ResourceManager.GetString("User List", resourceCulture); return ResourceManager.GetString("User List", resourceCulture);
} }
} }
public static string Circles {
get {
return ResourceManager.GetString("Circles", resourceCulture);
}
}
public static string EndDate {
get {
return ResourceManager.GetString("EndDate", resourceCulture);
}
}
public static string Message_sent { public static string Message_sent {
get { get {
return ResourceManager.GetString("Message_sent", resourceCulture); return ResourceManager.GetString("Message_sent", resourceCulture);
@ -208,6 +250,12 @@ namespace Yavsc.Model {
} }
} }
public static string Location {
get {
return ResourceManager.GetString("Location", resourceCulture);
}
}
public static string MinDate { public static string MinDate {
get { get {
return ResourceManager.GetString("MinDate", resourceCulture); return ResourceManager.GetString("MinDate", resourceCulture);
@ -220,6 +268,12 @@ namespace Yavsc.Model {
} }
} }
public static string EventWebPage {
get {
return ResourceManager.GetString("EventWebPage", resourceCulture);
}
}
public static string DuplicateEmail { public static string DuplicateEmail {
get { get {
return ResourceManager.GetString("DuplicateEmail", resourceCulture); return ResourceManager.GetString("DuplicateEmail", resourceCulture);

@ -48,4 +48,14 @@
<data name="Item_added_to_basket"><value>Article ajouté au panier</value></data> <data name="Item_added_to_basket"><value>Article ajouté au panier</value></data>
<data name="Estimate_not_found"><value>Devis non trouvé</value></data> <data name="Estimate_not_found"><value>Devis non trouvé</value></data>
<data name="My_Estimates"><value>Mes estimations</value></data> <data name="My_Estimates"><value>Mes estimations</value></data>
<data name="User_name"><value>Nom d'utilisateur</value></data>
<data name="Circles"><value>Cercles</value></data>
<data name="Location"><value>Lieu</value></data>
<data name="StartDate"><value>Date de démarrage</value></data>
<data name="EndDate"><value>Date de fin</value></data>
<data name="ProviderName"><value>Nom du fournisseur</value></data>
<data name="ProviderId"><value>Identifiant du fournisseur</value></data>
<data name="Comment"><value>Commentaire</value></data>
<data name="EventWebPage"><value>Page web de l'événement</value></data>
<data name="ImgLocator"><value>URI de l'image</value></data>
</root> </root>

@ -44,10 +44,20 @@
<data name="was_added_to_the_role"><value>was added to the role</value></data> <data name="was_added_to_the_role"><value>was added to the role</value></data>
<data name="was_added_to_the_empty_role"><value>There was no user in the '{1}' role. You ({0}) was just added as firt user in the '{1}' role.</value></data> <data name="was_added_to_the_empty_role"><value>There was no user in the '{1}' role. You ({0}) was just added as firt user in the '{1}' role.</value></data>
<data name="younotadmin"><value>You're not administrator</value></data> <data name="younotadmin"><value>You're not administrator</value></data>
<data name="role_created"><value>role created</value></data> <data name="role_created"><value>role created</value></data>
<data name="Item_added_to_basket"><value>Item added to basket</value></data> <data name="Item_added_to_basket"><value>Item added to basket</value></data>
<data name="Estimate_not_found"><value>Estimate not found</value></data> <data name="Estimate_not_found"><value>Estimate not found</value></data>
<data name="DuplicateEmail"><value>This email adress is already used ({0}).</value></data> <data name="DuplicateEmail"><value>This email adress is already used ({0}).</value></data>
<data name="DuplicateUserName"><value>This user name is already used ({0}).</value></data> <data name="DuplicateUserName"><value>This user name is already used ({0}).</value></data>
<data name="My_Estimates"><value>My estimates</value></data> <data name="My_Estimates"><value>My estimates</value></data>
</root> <data name="User_name"><value>User name</value></data>
<data name="Circles"><value>Circles</value></data>
<data name="Location"><value>Location</value></data>
<data name="StartDate"><value>Start date</value></data>
<data name="EndDate"><value>End date</value></data>
<data name="ProviderName"><value>Provider name</value></data>
<data name="ProviderId"><value>Provider identifier</value></data>
<data name="Comment"><value>Comment</value></data>
<data name="EventWebPage"><value>Event Web page</value></data>
<data name="ImgLocator"><value>Image URI</value></data>
</root>

Loading…