* 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
This commit is contained in:
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>
|
||||||
4
ITContentProvider/packages.config
Normal file
4
ITContentProvider/packages.config
Normal file
|
|
@ -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,10 +295,14 @@ 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"));
|
||||||
|
}
|
||||||
|
rdr.Close ();
|
||||||
|
}
|
||||||
|
if (be!=null)
|
||||||
using (NpgsqlCommand cmdtags = cnx.CreateCommand()) {
|
using (NpgsqlCommand cmdtags = cnx.CreateCommand()) {
|
||||||
List<string> tags = new List<string> ();
|
List<string> tags = new List<string> ();
|
||||||
cmd.CommandText = "select tag.name from tag,tagged where tag._id = tagged.tagid and tagged.postid = @pid";
|
cmd.CommandText = "select tag.name from tag,tagged where tag._id = tagged.tagid and tagged.postid = @pid";
|
||||||
cmd.Parameters.Add ("@pid", be.Id);
|
cmd.Parameters.AddWithValue ("@pid", be.Id);
|
||||||
using (NpgsqlDataReader rdrt = cmd.ExecuteReader ()) {
|
using (NpgsqlDataReader rdrt = cmd.ExecuteReader ()) {
|
||||||
while (rdrt.Read ()) {
|
while (rdrt.Read ()) {
|
||||||
tags.Add (rdrt.GetString (0));
|
tags.Add (rdrt.GetString (0));
|
||||||
|
|
@ -307,8 +311,6 @@ namespace Npgsql.Web.Blog
|
||||||
be.Tags = tags.ToArray ();
|
be.Tags = tags.ToArray ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
return be;
|
return be;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
4
NpgsqlBlogProvider/packages.config
Normal file
4
NpgsqlBlogProvider/packages.config
Normal file
|
|
@ -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,17 +703,18 @@ namespace Npgsql.Web
|
||||||
reader.Read ();
|
reader.Read ();
|
||||||
u = GetUserFromReader (reader);
|
u = GetUserFromReader (reader);
|
||||||
|
|
||||||
if (userIsOnline) {
|
|
||||||
|
}
|
||||||
|
reader.Close ();
|
||||||
|
if (u!=null && userIsOnline) {
|
||||||
NpgsqlCommand updateCmd = new NpgsqlCommand ("UPDATE Users " +
|
NpgsqlCommand updateCmd = new NpgsqlCommand ("UPDATE Users " +
|
||||||
"SET LastActivityDate = @LastActivityDate " +
|
"SET LastActivityDate = @LastActivityDate " +
|
||||||
"WHERE PKID = @PKID", conn);
|
"WHERE PKID = @PKID", conn);
|
||||||
updateCmd.Parameters.Add ("@LastActivityDate", DateTime.Now);
|
updateCmd.Parameters.AddWithValue ("@LastActivityDate", DateTime.Now);
|
||||||
updateCmd.Parameters.Add ("@PKID", providerUserKey);
|
updateCmd.Parameters.AddWithValue ("@PKID", providerUserKey);
|
||||||
updateCmd.ExecuteNonQuery ();
|
updateCmd.ExecuteNonQuery ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
reader.Close ();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
4
NpgsqlMRPProviders/packages.config
Normal file
4
NpgsqlMRPProviders/packages.config
Normal file
|
|
@ -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>
|
||||||
4
WorkFlowProvider/packages.config
Normal file
4
WorkFlowProvider/packages.config
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Npgsql" version="2.2.5" targetFramework="net451" />
|
||||||
|
</packages>
|
||||||
1
google-services.json
Normal file
1
google-services.json
Normal file
|
|
@ -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,6 +36,44 @@ namespace Yavsc.ApiControllers.Calendar
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class CalendarController: ApiController
|
public class CalendarController: ApiController
|
||||||
{
|
{
|
||||||
|
YaEvent[] getTestList()
|
||||||
|
{
|
||||||
|
return new YaEvent[] {
|
||||||
|
new YaEvent () {
|
||||||
|
Description = "Test Descr",
|
||||||
|
Title = "Night club special bubble party",
|
||||||
|
Location = new Position () {
|
||||||
|
Longitude = 0,
|
||||||
|
Latitude = 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new YaEvent () {
|
||||||
|
Title = "Test2",
|
||||||
|
ImgLocator = "http://bla/im.png",
|
||||||
|
Location = new Position () {
|
||||||
|
Longitude = 0,
|
||||||
|
Latitude = 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new YaEvent () {
|
||||||
|
Description = "Test Descr",
|
||||||
|
Title = "Night club special bubble party",
|
||||||
|
Location = new Position () {
|
||||||
|
Longitude = 0,
|
||||||
|
Latitude = 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new YaEvent () {
|
||||||
|
Title = "Test2",
|
||||||
|
ImgLocator = "http://bla/im.png",
|
||||||
|
Location = new Position () {
|
||||||
|
Longitude = 0,
|
||||||
|
Latitude = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// List events according the specified search arguments.
|
/// List events according the specified search arguments.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -38,40 +82,7 @@ namespace Yavsc.ApiControllers.Calendar
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public YaEvent[] List ([FromUri] PositionAndKeyphrase args)
|
public YaEvent[] List ([FromUri] PositionAndKeyphrase args)
|
||||||
{
|
{
|
||||||
return new YaEvent[] {
|
return getTestList();
|
||||||
new YaEvent () {
|
|
||||||
Description = "Test Descr",
|
|
||||||
Title = "Night club special bubble party",
|
|
||||||
Location = new Position() {
|
|
||||||
Longitude = 0,
|
|
||||||
Latitude = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new YaEvent () {
|
|
||||||
Title = "Test2",
|
|
||||||
ImgLocator = "http://bla/im.png",
|
|
||||||
Location = new Position() {
|
|
||||||
Longitude = 0,
|
|
||||||
Latitude = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new YaEvent () {
|
|
||||||
Description = "Test Descr",
|
|
||||||
Title = "Night club special bubble party",
|
|
||||||
Location = new Position() {
|
|
||||||
Longitude = 0,
|
|
||||||
Latitude = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new YaEvent () {
|
|
||||||
Title = "Test2",
|
|
||||||
ImgLocator = "http://bla/im.png",
|
|
||||||
Location = new Position() {
|
|
||||||
Longitude = 0,
|
|
||||||
Latitude = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <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>
|
||||||
|
|
|
||||||
23
web/Views/FrontOffice/EventPub.aspx
Normal file
23
web/Views/FrontOffice/EventPub.aspx
Normal file
|
|
@ -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}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
54
yavscModel/LocalizedText.Designer.cs
generated
54
yavscModel/LocalizedText.Designer.cs
generated
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -50,4 +50,14 @@
|
||||||
<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…
Add table
Add a link
Reference in a new issue