Merge from booking branch

This commit is contained in:
Paul Schneider 2015-11-17 22:22:59 +01:00
commit 9a2652739b
266 changed files with 12833 additions and 2337 deletions

View file

@ -104,5 +104,13 @@ namespace Yavsc.ApiControllers
if (user != null && ModelState.IsValid)
Url.SendActivationMessage (user);
}
[ValidateAjax]
[Authorize(Roles="Admin")]
public void AddUserToRole(UserRole model)
{
Roles.AddUserToRole (model.UserName, model.Role);
}
}
}

View file

@ -14,6 +14,9 @@ using System.Diagnostics;
using Yavsc.Formatters;
using Yavsc.Model;
namespace Yavsc.ApiControllers
{
/// <summary>
@ -143,19 +146,45 @@ namespace Yavsc.ApiControllers
/// <summary>
/// Create the specified blog entry.
/// </summary>
/// <param name="bp">Bp.</param>
/// <param name="be">Bp.</param>
[Authorize, HttpPost]
public long Create (BasePost bp)
public long Post (BlogEntry be)
{
return BlogManager.Post (User.Identity.Name, bp.Title, "", bp.Visible, null);
if (be.Id == 0)
return BlogManager.Post (User.Identity.Name, be.Title,
be.Content, be.Visible,be.AllowedCircles );
else
BlogManager.UpdatePost (be);
return 0;
}
/// <summary>
/// Blog entry rating.
/// </summary>
public class BlogEntryRating {
/// <summary>
/// Gets or sets the post identifier.
/// </summary>
/// <value>The post identifier.</value>
public long Id { get; set; }
/// <summary>
/// Gets or sets the rate.
/// </summary>
/// <value>The rate.</value>
public int Rate { get; set; }
}
[Authorize, HttpPost]
public void Note (long id, int note)
/// <summary>
/// Rate the specified model.
/// </summary>
/// <param name="model">Model.</param>
[Authorize(Roles="Moderator"), HttpPost, ValidateAjax]
public void Rate (BlogEntryRating model)
{
if (note < 0 || note > 100)
throw new ArgumentException ("0<=note<=100");
BlogManager.Note (id, note);
if (model.Rate < 0 || model.Rate > 100)
ModelState.AddModelError ("Rate", "0<=Rate<=100");
else {
BlogManager.Rate (model.Id, model.Rate);
}
}
/// <summary>
/// Searchs the file.
@ -176,7 +205,7 @@ namespace Yavsc.ApiControllers
[Authorize, HttpPost, ValidateAjaxAttribute]
public void SetPhoto(long id, [FromBody] string photo)
{
BlogManager.Provider.UpdatePostPhoto (id, photo);
BlogManager.UpdatePostPhoto (id, photo);
}
/// <summary>

View file

@ -22,7 +22,7 @@ namespace Yavsc.ApiControllers
/// <summary>
/// Front office controller.
/// </summary>
public class FrontOfficeController : ApiController
public class FrontOfficeController : YavscController
{
/// <summary>
/// The wfmgr.

View file

@ -23,8 +23,14 @@ using System.Web.Http;
namespace Yavsc.ApiControllers
{
/// <summary>
/// GCM controller.
/// </summary>
public class GCMController : ApiController
{
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.ApiControllers.GCMController"/> class.
/// </summary>
public GCMController ()
{
}

View file

@ -25,15 +25,27 @@ using System.Web.Profile;
namespace Yavsc.ApiControllers
{
/// <summary>
/// Yavsc controller.
/// </summary>
public class YavscController : ApiController
{
/// <summary>
/// Initializes a new instance of the <see cref="Yavsc.ApiControllers.YavscController"/> class.
/// </summary>
public YavscController ()
{
}
/// <summary>
/// Auth.
/// </summary>
public class Auth {
public string Id { get; set; }
}
/// <summary>
/// Allows the cookies.
/// </summary>
/// <param name="model">Model.</param>
public void AllowCookies (Auth model)
{
// TODO check Auth when existing
@ -43,7 +55,10 @@ namespace Yavsc.ApiControllers
pr.Save ();
}
}
/// <summary>
/// Defaults the response.
/// </summary>
/// <returns>The response.</returns>
protected HttpResponseMessage DefaultResponse()
{
return ModelState.IsValid ?

View file

@ -123,6 +123,7 @@ CREATE TABLE profiledata
gcalapi boolean NOT NULL DEFAULT false,
gregid character varying(1024), -- Google Cloud Message registration identifier
allowcookies boolean NOT NULL DEFAULT false,
uitheme character varying(64),
CONSTRAINT fkprofiles2 FOREIGN KEY (uniqueid)
REFERENCES profiles (uniqueid) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
@ -176,7 +177,7 @@ CREATE TABLE blog
visible boolean NOT NULL,
_id bigserial NOT NULL,
photo character varying(512), -- a photo url, supposed to be the main photo...
note integer NOT NULL DEFAULT 50, -- a global note for this entry, between 0 and 100
rate integer NOT NULL DEFAULT 50, -- a global note for this entry, between 0 and 100
CONSTRAINT blog_pkey PRIMARY KEY (_id),
CONSTRAINT bloguser FOREIGN KEY (applicationname, username)
REFERENCES users (applicationname, username) MATCH SIMPLE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 B

After

Width:  |  Height:  |  Size: 312 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 394 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 B

After

Width:  |  Height:  |  Size: 368 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 332 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 327 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 392 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 B

After

Width:  |  Height:  |  Size: 312 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 394 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 B

After

Width:  |  Height:  |  Size: 368 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 332 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 327 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 392 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Before After
Before After

View file

@ -1,14 +1,12 @@
body {
background-color: black;
color: #D0FFD0;
font-family: 'Arial', cursive;
padding: 0;
margin: 0;
}
.tagname { color: #D0FFD0; }
.tagname+.tagname:before { content: ', '; }
.tagname:hover { background-color: red; cursor:pointer; }
.tagname:hover { cursor:pointer; }
/* Start by setting display:none to make this hidden.
Then we position it in relation to the viewport window
@ -36,6 +34,7 @@ body {
left: 0;
right: 0;
width: 100%;
max-height: 100%;
overflow-y: auto;
overflow-x: hidden;
}
@ -49,67 +48,21 @@ body.loading .modal {
}
.iconsmall { max-height: 1.3em; max-width: 1.3em; }
input, textarea, checkbox {
color: #FFFFA0;
background-color: black;
}
.photo { width: 100%; }
.blogbanner { float: left; top:0; }
.subtitle { font-size:small; font-style: italic; }
header {
transition: margin 2s, padding 2s;
padding: 0;
margin: 0;
padding-top: 2em;
padding-bottom:2em;
display: block;
background: url("/App_Themes/images/star-939235_1280.jpg") -3em -3em no-repeat fixed;
}
header h1, header a {
transition:padding 2s;
background-color: rgba(0,0,0,.5);
margin:0; padding:1em;
}
nav {
transition: margin 2s, padding 2s;
margin: 2em;
padding: 2em;
display: block;
border-radius:1em;
background: url("/App_Themes/images/helix-nebula-1400x1400.s.jpg") 50% 10% repeat fixed ;
justify-content: space-around;
}
nav li { display: inline-block; }
main {
transition: margin 2s, padding 2s;
margin: 2em;
padding: 2em;
display: block;
border-radius:1em;
background: url("/App_Themes/images/p8-av4.png") 50% 20em no-repeat fixed ;
}
footer {
transition: margin 2s, padding 2s;
background: url("/App_Themes/images/helix-nebula-1400x1400.s.jpg") 50% 90% repeat fixed ;
margin: 0;
margin-top: 2em;
padding: 2em;
display: block;
clear: both;
font-size: smaller;
justify-content: space-around;
}
footer a {
border-radius:1em;
padding:1em;
}
legend {
border-radius:5px;
padding:.5em;
background-color: rgba(0,0,32,.5);
}
#copyr { text-align: center; display: block; background-color: rgba(20,20,20,.8); }
footer p { display:inline-block; }
@ -126,179 +79,30 @@ fieldset {
border-radius:5px; border: solid 1px #000060;
}
main video, main img {
max-width:100%;
max-height:75%;
padding: 1em;
}
aside {
display: inline-block;
float: right;
max-width: 40em;
}
.postpreview {
display: inline-block;
max-width: 40em;
padding: 1em;
background-color: rgba(0,0,32,0.8);
border-radius:1em;
}
.postpreview video, .postpreview img {
max-width: 100%;
padding: 1em;
}
.post {
display:block;
padding: 1em;
background-color: rgba(0,0,32,0.8);
color: #eee;
border-radius:1em;
}
.hiddenpost { background-color: rgba(16,16,16,0.5); }
.fullwidth { width: 100%; }
textarea.fullwidth { min-height:10em; }
.thanks {
max-width: 10%;
text-align: center;
font-size:smaller;
display:inline;
bottom:0;
}
.panel {
display:inline-block;
}
.panel,.bshpanel, aside {
background-color: rgba(20,20,20,.8);
border-radius: 1em;
padding: 1em;
}
.spanel {
max-width: 18em;
display: inline-block;
padding: .3em;
}
.xspanel {
max-width:13em;
display: inline-block;
padding:.2em;
}
.xxspanel {
max-width:7em;
display: inline-block;
padding:.1em;
}
.hint {
display: inline;
font-style: italic;
font-size: smaller;
}
.hint::before {
content: "(";
}
.hint::after {
content: ")";
}
.usertitleref {
border-radius: 1em;
background-color:rgba(0,0,32,0.6);
font-family: 'Arial', cursive;
padding: 1em;
}
label {
font-size: medium;
}
.editable {
margin: .5em;
min-height:1em;
border-radius: 1em;
border: dashed rgb(020,20,256) 2px;
}
.notification {
font-size: large;
background-color: rgba(64,64,0,0.5);
border: solid green 1px;
padding: 1em;
border-radius:1em;
margin:1em;
padding:1em;
}
.dirty {
background-color: rgba(128,128,0,0.5);
}
.error, #error {
color: #f88;
font-size: large;
background-color: rgba(256,0,0,0.5);
}
.validation-summary-errors{
color: #f88;
background-color: rgba(256,0,0,0.5);
}
.hidden { display:none; }
ul.preview li:nth-child(-n+10) {
display:inline;
font-size:xx-small;
}
ul.preview li:nth-child(n) {
display:none;
}
.validation-summary-errors{
color: #f88;
}
a {
text-decoration: none;
}
.actionlink, .menuitem, a {
display:inline-block;
color: yellow;
border-radius:1em;
border: solid black 1px;
background-color: rgba(20,20,20,.8);
border-style: solid;
border-width:1px;
cursor: pointer;
font-family: 'Arial', cursive;
padding: 1em;
}
input, select, textarea {
color: white;
background-color:rgba(0,0,64,0.8);
border: solid 1px rgb(128,128,128);
border-radius:1em;
border-style: solid;
border-width:1px;
font-family: 'Arial', cursive;
}
a:hover {
background-color:rgba(30,0,124,0.9);
border: solid green 1px;
}
a:active {
background-color:rgba(124,0,32,0.9);
}
input:hover, textarea:hover {
color: white;
background-color:rgba(64,64,64,0.8);
}
.code {
font-family: "monospace";
background-color: rgba(0,0,256,0.1);
border-radius:25px;
white-space: pre-wrap;
}
#avatar {
float: left;
margin:1em;
@ -320,18 +124,31 @@ a:active {
padding:5px; margin:5px;
background-color: rgba(0,0,40,.8);
}
.input-validation-error { border: solid 1px red; }
.field-validation-error { color: red; }
.skillname {
padding:.5em;
margin:.25em;
max-width: 24em;
text-align: center;
display: inline-block;
background-color: rgba(16,16,64,0.8);
border-radius:1em;
border: solid 1px #aaf;
}
.input-validation-error { border: solid 1px red; background-color: rgba(180,256,256,.5); }
.field-validation-error { color: red; background-color: rgba(180,256,256,.5); }
.c2 { font-size: small; font-style: italic; }
.c3 { font-size: x-small; font-style: italic; }
.rate { width:5em; cursor: pointer; text-align:center; }
h2 select { font-size: large; }
@media print {
body {background-color:white;color:black;}
.control, .actionlink, .menuitem, nav { display:none;}
}
.bshpanel { display:block; }
.bshpanel { display: inline-block; }
.bsh { display: none; }
.c3 { display:initial; }
.c3-alt { display:none; }
@ -373,6 +190,8 @@ header h1, header a , .actionlink, .menuitem, a { padding:.5em;}
border-radius:.5em;
margin:.5em;
padding:.5em;
max-height: 100%;
overflow-y: auto;
}
.menuitem {
display: block;
@ -423,3 +242,4 @@ header h1, header a { padding:.2em;}
.c2-alt { display:initial; }
}

File diff suppressed because it is too large Load diff

View file

@ -335,6 +335,7 @@ namespace Yavsc.Controllers
prf.SetPropertyValue ("AccountNumber", model.AccountNumber);
prf.SetPropertyValue ("BankedKey", model.BankedKey);
prf.SetPropertyValue ("gcalid", model.GoogleCalendar);
prf.SetPropertyValue ("UITheme", model.UITheme);
prf.Save ();
if (editsTheUserName) {

View file

@ -25,9 +25,9 @@ namespace Yavsc.Controllers
public ActionResult Index()
{
// FIXME do this in a new installation script.
if (!Roles.RoleExists (roleName)) {
Roles.CreateRole (roleName);
YavscHelpers.Notify (ViewData, roleName + " " + LocalizedText.role_created);
if (!Roles.RoleExists (_adminRoleName)) {
Roles.CreateRole (_adminRoleName);
YavscHelpers.Notify (ViewData, _adminRoleName + " " + LocalizedText.role_created);
}
return View ();
}
@ -156,6 +156,13 @@ namespace Yavsc.Controllers
Roles.RemoveUserFromRole(username,rolename);
return Redirect(returnUrl);
}
[Authorize(Roles="Admin")]
public ActionResult AddUserToRole(string username, string rolename, string returnUrl)
{
Roles.AddUsersToRole(new string[] { username } ,rolename);
return Redirect(returnUrl);
}
/// <summary>
/// Removes the user.
/// </summary>
@ -223,7 +230,27 @@ namespace Yavsc.Controllers
MembershipUserCollection c = Membership.GetAllUsers ();
return View (c);
}
[Authorize()]
public ActionResult UsersInRole (string rolename)
{
if (rolename == null)
rolename = "Admin";
ViewData ["RoleName"] = rolename;
ViewData ["Roles"] = Roles.GetAllRoles ();
ViewData ["UsersInRole"] = Roles.GetUsersInRole (rolename);
return View ();
}
[Authorize()]
public ActionResult UserRoles (string username)
{
ViewData ["AllRoles"] = Roles.GetAllRoles ();
if (username == null)
username = User.Identity.Name;
ViewData ["UserName"] = username;
ViewData ["UsersRoles"] = Roles.GetRolesForUser (username);
return View ();
}
/// <summary>
/// a form to add a role
/// </summary>
@ -257,7 +284,7 @@ namespace Yavsc.Controllers
return View (Roles.GetAllRoles ());
}
private const string roleName = "Admin";
private const string _adminRoleName = "Admin";
/// <summary>
/// Assing the Admin role to the specified user in model.
@ -267,7 +294,7 @@ namespace Yavsc.Controllers
public ActionResult Admin (NewAdminModel model)
{
// ASSERT (Roles.RoleExists (adminRoleName))
string [] admins = Roles.GetUsersInRole (roleName);
string [] admins = Roles.GetUsersInRole (_adminRoleName);
string currentUser = Membership.GetUser ().UserName;
List<SelectListItem> users = new List<SelectListItem> ();
foreach (MembershipUser u in Membership.GetAllUsers ()) {
@ -279,22 +306,21 @@ namespace Yavsc.Controllers
ViewData ["admins"] = admins;
ViewData ["useritems"] = users;
if (ModelState.IsValid) {
Roles.AddUserToRole (model.UserName, roleName);
YavscHelpers.Notify(ViewData, model.UserName + " "+LocalizedText.was_added_to_the_role+" '" + roleName + "'");
Roles.AddUserToRole (model.UserName, _adminRoleName);
YavscHelpers.Notify(ViewData, model.UserName + " "+LocalizedText.was_added_to_the_role+" '" + _adminRoleName + "'");
} else {
if (admins.Length > 0) {
if (! admins.Contains (Membership.GetUser ().UserName)) {
ModelState.Remove("UserName");
ModelState.AddModelError("UserName",LocalizedText.younotadmin+"!");
return View ("Index");
}
} else {
// No admin, gives the Admin Role to the current user
Roles.AddUserToRole (currentUser, roleName);
Roles.AddUserToRole (currentUser, _adminRoleName);
admins = new string[] { currentUser };
YavscHelpers.Notify(ViewData, string.Format (
LocalizedText.was_added_to_the_empty_role,
currentUser, roleName));
currentUser, _adminRoleName));
}
}
return View (model);

View file

@ -77,7 +77,6 @@ namespace Yavsc.Controllers
/// <param name="id">Title.</param>
/// <param name="pageIndex">Page index.</param>
/// <param name="pageSize">Page size.</param>
///
[HttpGet]
public ActionResult Title (string title, int pageIndex = 0, int pageSize = 10)
{
@ -89,7 +88,7 @@ namespace Yavsc.Controllers
BlogManager.FindPost (username, title, sf, pageIndex, pageSize, out recordCount);
var utc = new UTBlogEntryCollection (title);
utc.AddRange (c);
ViewData ["RecordCount"] = recordCount;
ViewData ["ResultCount"] = recordCount;
ViewData ["PageIndex"] = pageIndex;
ViewData ["PageSize"] = pageSize;
return View ("Title", utc);
@ -135,8 +134,10 @@ namespace Yavsc.Controllers
ViewData ["BlogTitle"] = bupr.BlogTitle;
ViewData ["Avatar"] = bupr.avatar;
}
ViewData ["RecordCount"] = recordcount;
UUBlogEntryCollection uuc = new UUBlogEntryCollection (user, c);
ViewData ["ResultCount"] = recordcount;
ViewData ["PageIndex"] = pageIndex;
ViewData ["PageSize"] = pageSize;
return View ("UserPosts", uuc);
}
@ -279,8 +280,8 @@ namespace Yavsc.Controllers
/// </summary>
/// <returns>The edit.</returns>
/// <param name="model">Model.</param>
[Authorize(Roles="Blogger")]
public ActionResult ValidateEdit (BlogEntry model)
[Authorize(Roles="")]
public ActionResult Edit (BlogEntry model)
{
ViewData ["SiteName"] = sitename;
ViewData ["Author"] = Membership.GetUser ().UserName;
@ -289,13 +290,13 @@ namespace Yavsc.Controllers
// ensures rights to update
BlogManager.GetForEditing (model.Id, true);
BlogManager.UpdatePost (model.Id, model.Title, model.Content, model.Visible, model.AllowedCircles);
YavscHelpers.Notify (ViewData, LocalizedText.BillUpdated);
}
else
} else {
model.Id = BlogManager.Post (model.Author, model.Title, model.Content, model.Visible, model.AllowedCircles);
if (model.Photo != null)
BlogManager.UpdatePostPhoto (model.Id, model.Photo);
return RedirectToAction ("Title", new { title = model.Title });
YavscHelpers.Notify (ViewData, LocalizedText.BillCreated);
}
BlogManager.UpdatePostPhoto (model.Id, model.Photo);
}
ViewData ["AllowedCircles"] =
CircleManager.DefaultProvider.List (
@ -312,7 +313,7 @@ namespace Yavsc.Controllers
/// </summary>
/// <param name="id">Identifier.</param>
[Authorize(Roles="Blogger")]
public ActionResult Edit (long postid)
public ActionResult EditId (long postid)
{
BlogEntry e = BlogManager.GetForEditing (postid);
@ -333,7 +334,7 @@ namespace Yavsc.Controllers
Text = x.Title,
Selected = e.AllowedCircles.Contains (x.Id)
});
return View (e);
return View ("Edit",e);
}
/// <summary>

View file

@ -16,6 +16,7 @@ using Yavsc.Model.Calendar;
using System.Configuration;
using Yavsc.Helpers;
using Yavsc.Model.FrontOffice.Catalog;
using Yavsc.Model.Skill;
namespace Yavsc.Controllers
{
@ -85,12 +86,12 @@ namespace Yavsc.Controllers
/// Estimate the specified id.
/// </summary>
/// <param name="id">Identifier.</param>
public ActionResult Get (long id)
public ActionResult Get (long estimid)
{
Estimate f = wfmgr.GetEstimate (id);
Estimate f = wfmgr.GetEstimate (estimid);
if (f == null) {
ModelState.AddModelError ("Id", "Wrong Id");
return View (new Estimate () { Id=id } );
return View (new Estimate () { Id=estimid } );
}
return View (f);
}
@ -162,11 +163,11 @@ namespace Yavsc.Controllers
/// Catalog this instance.
/// </summary>
[AcceptVerbs ("GET")]
public ActionResult Brand (string id)
public ActionResult Brand (string brandid)
{
Catalog c = CatalogManager.GetCatalog ();
ViewData ["BrandName"] = id;
return View (c.GetBrand (id));
ViewData ["BrandName"] = brandid;
return View (c.GetBrand (brandid));
}
/// <summary>
@ -200,10 +201,10 @@ namespace Yavsc.Controllers
/// <param name="pc">Pc.</param>
/// <param name="pref">Preference.</param>
[AcceptVerbs ("GET")]
public ActionResult Product (string id, string pc, string pref)
public ActionResult Product (string brandid, string pc, string pref)
{
Product p = null;
ViewData ["BrandName"] = id;
ViewData ["BrandName"] = brandid;
ViewData ["ProdCatRef"] = pc;
ViewData ["ProdRef"] = pref;
Catalog cat = CatalogManager.GetCatalog ();
@ -212,7 +213,7 @@ namespace Yavsc.Controllers
ViewData ["RefType"] = "Catalog";
return View ("ReferenceNotFound");
}
Brand b = cat.GetBrand (id);
Brand b = cat.GetBrand (brandid);
if (b == null) {
ViewData ["RefType"] = "Brand";
return View ("ReferenceNotFound");
@ -259,5 +260,50 @@ namespace Yavsc.Controllers
}
}
/// <summary>
/// Booking the specified model.
/// </summary>
/// <param name="model">Model.</param>
public ActionResult Booking (BookingQuery model)
{
return View ();
}
/// <summary>
/// Skills the specified model.
/// </summary>
[Authorize(Roles="Admin")]
public ActionResult Skills (string search)
{
if (search == null)
search = "%";
var skills = SkillManager.FindSkill (search);
return View (skills);
}
/// <summary>
/// Display and should
/// offer Ajax edition of
/// user's skills.
/// </summary>
/// <param name="usp">the User Skills Profile.</param>
[Authorize()]
public ActionResult UserSkills (PerformerProfile usp)
{
if (usp.UserName == null)
// this is not a call to update,
// and this can not concern another user
// than the current logged one.
usp = new PerformerProfile( User.Identity.Name );
// if (usp.UserName was null) {
usp = SkillManager.GetUserSkills (usp.UserName);
var skills = SkillManager.FindSkill ("%");
ViewData ["SiteSkills"] = skills;
// TODO or not to do, handle a skills profile update,
// actually performed via the Web API :-°
// } else if (ModelState.IsValid) {}
return View (usp);
}
}
}

View file

@ -78,12 +78,9 @@ namespace Yavsc.Controllers
if (string.IsNullOrWhiteSpace (returnUrl))
returnUrl = "/";
Session ["returnUrl"] = returnUrl;
OAuth2 oa = new OAuth2 (AuthGRU,clientId,clientSecret);
oa.Login (Response, SetSessionSate ());
string state = SetSessionSate ();
Response.Login (state, AuthGRU);
}
private string clientId = ConfigurationManager.AppSettings ["GOOGLE_CLIENT_ID"];
private string clientSecret = ConfigurationManager.AppSettings ["GOOGLE_CLIENT_SECRET"];
private string clientApiKey = ConfigurationManager.AppSettings ["GOOGLE_API_KEY"];
/// <summary>
/// Gets the cal auth.
/// </summary>
@ -93,8 +90,7 @@ namespace Yavsc.Controllers
if (string.IsNullOrWhiteSpace (returnUrl))
returnUrl = "/";
Session ["returnUrl"] = returnUrl;
OAuth2 oa = new OAuth2 (CalendarGRU,clientId,clientSecret);
oa.GetCalendarScope (Response, SetSessionSate ());
Response.CalLogin (SetSessionSate (), CalendarGRU);
}
/// <summary>
@ -107,8 +103,7 @@ namespace Yavsc.Controllers
public ActionResult CalAuth ()
{
string msg;
OAuth2 oa = new OAuth2 (CalendarGRU,clientId,clientSecret);
OAuth2 oa = GoogleHelpers.CreateOAuth2 (CalendarGRU);
AuthToken gat = oa.GetToken (Request, (string) Session ["state"], out msg);
if (gat == null) {
YavscHelpers.Notify(ViewData, msg);
@ -127,6 +122,7 @@ namespace Yavsc.Controllers
/// It should be called immediatly after getting the token from Google, in
/// order to save a descent value as expiration date.
/// </summary>
/// <param name="pr">pr.</param>
/// <param name="gat">Gat.</param>
private void SaveToken (ProfileBase pr, AuthToken gat)
{
@ -145,7 +141,7 @@ namespace Yavsc.Controllers
public ActionResult Auth ()
{
string msg;
OAuth2 oa = new OAuth2 (AuthGRU,clientId,clientSecret);
OAuth2 oa = GoogleHelpers.CreateOAuth2 (AuthGRU);
AuthToken gat = oa.GetToken (Request, (string)Session ["state"], out msg);
if (gat == null) {
YavscHelpers.Notify(ViewData, msg);
@ -268,9 +264,7 @@ namespace Yavsc.Controllers
returnUrl = Url.Action ("ChooseCalendar") // "ChooseCalendar?returnUrl="+HttpUtility.UrlEncode(returnUrl)
});
}
string cred = OAuth2.GetFreshGoogleCredential (HttpContext.Profile);
CalendarApi c = new CalendarApi (clientApiKey);
CalendarList cl = c.GetCalendars (cred);
CalendarList cl = GoogleHelpers.GetCalendars(HttpContext.Profile);
ViewData ["returnUrl"] = Session ["chooseCalReturnUrl"];
return View (cl);
}
@ -301,7 +295,7 @@ namespace Yavsc.Controllers
[Authorize,HttpGet]
public ActionResult Book ()
{
var model = new BookQuery ();
var model = new BookingQuery ();
model.StartDate = DateTime.Now;
model.EndDate = model.StartDate.AddDays(2);
model.StartHour = DateTime.Now.ToString("HH:mm");
@ -315,49 +309,35 @@ namespace Yavsc.Controllers
/// <returns>The query.</returns>
/// <param name="model">Model.</param>
[Authorize,HttpPost]
public ActionResult Book (BookQuery model)
public ActionResult Book (BookingQuery model)
{
DateTime mindate = DateTime.Now;
if (model.StartDate.Date < mindate.Date){
ModelState.AddModelError ("StartDate", LocalizedText.FillInAFutureDate);
}
if (model.EndDate < model.StartDate)
ModelState.AddModelError ("EndDate", LocalizedText.StartDateAfterEndDate);
if (ModelState.IsValid) {
DateTime mindate = DateTime.Now;
if (model.StartDate.Date < mindate.Date){
ModelState.AddModelError ("StartDate", LocalizedText.FillInAFutureDate);
}
if (model.EndDate < model.StartDate)
ModelState.AddModelError ("EndDate", LocalizedText.StartDateAfterEndDate);
var muc = Membership.FindUsersByName (model.Person);
if (muc.Count == 0) {
ModelState.AddModelError ("Person", LocalizedText.Non_existent_user);
}
if (!Roles.IsUserInRole (model.Role)) {
ModelState.AddModelError ("Role", LocalizedText.UserNotInThisRole);
}
ProfileBase upr = ProfileBase.Create (model.Person);
var gcalid = upr.GetPropertyValue ("gcalid");
if (gcalid is DBNull)
ModelState.AddModelError ("Person", LocalizedText.No_calendar_for_this_user);
if (ModelState.IsValid) {
string calid = (string) gcalid;
DateTime maxdate = model.EndDate;
CalendarApi c = new CalendarApi (clientApiKey);
CalendarEventList events;
try {
string creds = OAuth2.GetFreshGoogleCredential (upr);
events = c.GetCalendar (calid, mindate, maxdate, creds);
YavscHelpers.Notify (ViewData, "Google calendar API call success");
} catch (WebException ex) {
string response;
using (var stream = ex.Response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
response = reader.ReadToEnd();
foreach (string rolename in model.Roles) {
foreach (string username in Roles.GetUsersInRole(rolename)) {
try {
var pr = ProfileBase.Create(username);
var events = pr.GetEvents(model.StartDate,model.EndDate);
} catch (WebException ex) {
string response;
using (var stream = ex.Response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
response = reader.ReadToEnd();
}
YavscHelpers.Notify (ViewData,
string.Format(
"Google calendar API exception {0} : {1}<br><pre>{2}</pre>",
ex.Status.ToString(),
ex.Message,
response));
}
YavscHelpers.Notify (ViewData,
string.Format(
"Google calendar API exception {0} : {1}<br><pre>{2}</pre>",
ex.Status.ToString(),
ex.Message,
response));
}
}
}

View file

@ -14,8 +14,6 @@ using Yavsc.Helpers;
using Yavsc;
using System.Web.Mvc;
using Yavsc.Model.Blogs;
using System.Web.Security;
using System.Web.Profile;
namespace Yavsc.Controllers
{
@ -24,6 +22,21 @@ namespace Yavsc.Controllers
/// </summary>
public class HomeController : Controller
{
// Site name
private static string name = null;
/// <summary>
/// Gets or sets the site name.
/// </summary>
/// <value>The name.</value>
[Obsolete("Use YavscHelpers.SiteName insteed.")]
public static string Name {
get {
if (name == null)
name = WebConfigurationManager.AppSettings ["Name"];
return name;
}
}
/// <summary>
/// Lists the referenced assemblies.
@ -72,23 +85,14 @@ namespace Yavsc.Controllers
/// </summary>
public ActionResult Index ()
{
if (Session.IsNewSession) {
string uid = (!Request.IsAuthenticated) ? Request.AnonymousID : User.Identity.Name;
ProfileBase pr =
ProfileBase.Create (uid);
bool ac = (bool) pr.GetPropertyValue ("allowcookies");
if (!ac)
YavscHelpers.Notify (ViewData, LocalizedText.ThisSiteUsesCookies,
"function(){Yavsc.ajax(\"/Yavsc/AllowCookies\", { id:'"+uid+"' });}",
LocalizedText.I_understood);
}
foreach (string tagname in new string[] {"Accueil","Événements","Mentions légales"})
foreach (string tagname in new string[] {"Accueil","Yavsc","Événements","Mentions légales"})
{
TagInfo ti = BlogManager.GetTagInfo (tagname);
// TODO specialyze BlogEntry creating a PhotoEntry
ViewData [tagname] = ti;
}
return View ();
}
/// <summary>

View file

@ -50,8 +50,15 @@ namespace Yavsc.Formatters
public FormatterException(string message,Exception innerException):base(message,innerException)
{
}
/// <summary>
/// Gets or sets the output.
/// </summary>
/// <value>The output.</value>
public string Output { get; set; }
/// <summary>
/// Gets or sets the error.
/// </summary>
/// <value>The error.</value>
public string Error { get; set; }
}
}

View file

@ -58,6 +58,8 @@ namespace Yavsc.Helpers.Google
/// Initializes a new instance of the <see cref="Yavsc.Helpers.Google.OAuth2"/> class.
/// </summary>
/// <param name="redirectUri">Redirect URI.</param>
/// <param name="clientId">Client identifier.</param>
/// <param name="clientSecret">Client secret.</param>
public OAuth2 (string redirectUri, string clientId, string clientSecret)
{
RedirectUri = redirectUri;

View file

@ -2,12 +2,16 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName; %>
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
Page.Theme = (string) Profile.UITheme;
Page.StyleSheetTheme = (string) Profile.UITheme; %>
<asp:ContentPlaceHolder id="init" runat="server">
</asp:ContentPlaceHolder><head runat="server">
</asp:ContentPlaceHolder>
<head runat="server">
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/"+Page.StyleSheetTheme+"/style.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/style.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/font-awesome.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/jquery-ui.css")%>" />
@ -15,14 +19,16 @@
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/doxy.css")%>" />
<link rel="icon" type="image/png" href="/favicon.png?v=3" />
<script src="<%=Url.Content("~/Scripts/jquery-2.1.4.min.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/jquery-ui-1.11.4.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/jquery-ui-1.11.4.min.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/parallax.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/Prettify/run_prettify.js")%>"></script>
<script type="text/javascript">
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
</script>
<%=Ajax.GlobalizationScript()%>
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/yavsc.tags.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/yavsc.rate.js")%>"></script>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
@ -74,8 +80,6 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_acti
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</main>
<asp:ContentPlaceHolder ID="MASContent" runat="server">
</asp:ContentPlaceHolder>
<footer data-type="background" data-speed="5" >
<div id="copyr">
<a href="http://yavsc.pschneider.fr/Blogs/UserPost/paul/License">© 2015 GNU GENERAL PUBLIC LICENSE <i>Version 3, 29 June 2007</i></a>

View file

@ -2,12 +2,19 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName; %>
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
Page.Theme = (string) Profile.UITheme;
Page.StyleSheetTheme = (string) Profile.UITheme;
%>
<asp:ContentPlaceHolder id="init" runat="server">
</asp:ContentPlaceHolder><head runat="server">
</asp:ContentPlaceHolder>
<head runat="server">
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/"+Page.StyleSheetTheme+"/style.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/style.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/font-awesome.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/jquery-ui.css")%>" />
@ -23,6 +30,7 @@ var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
</script>
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/yavsc.tags.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/yavsc.rate.js")%>"></script>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
@ -85,8 +93,6 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>); <% } %>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</main>
<asp:ContentPlaceHolder ID="MASContent" runat="server">
</asp:ContentPlaceHolder>
<footer data-type="background" data-speed="5" >
<div id="copyr">
<a href="http://yavsc.pschneider.fr/Blogs/UserPost/paul/License">© 2015 GNU GENERAL PUBLIC LICENSE <i>Version 3, 29 June 2007</i></a>

View file

@ -2,12 +2,19 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName; %>
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
Page.Theme = (string) Profile.UITheme;
Page.StyleSheetTheme = (string) Profile.UITheme;
%>
<asp:ContentPlaceHolder id="init" runat="server">
</asp:ContentPlaceHolder><head runat="server">
</asp:ContentPlaceHolder>
<head runat="server">
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/"+Page.StyleSheetTheme+"/style.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/style.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/font-awesome.css")%>" />
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/jquery-ui.css")%>" />
@ -15,14 +22,14 @@
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/doxy.css")%>" />
<link rel="icon" type="image/png" href="/favicon.png?v=3" />
<script src="<%=Url.Content("~/Scripts/jquery-2.1.4.min.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/jquery-ui-1.11.4.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/jquery-ui-1.11.4.min.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/parallax.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/Prettify/run_prettify.js")%>"></script>
<script type="text/javascript">
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
</script>
<%=Ajax.GlobalizationScript()%>
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
<script src="<%=Url.Content("~/Scripts/yavsc.tags.js")%>"></script>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
@ -41,7 +48,7 @@ var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
$(document).ready(function(){
<% foreach (Notification note in (IEnumerable<Notification>) ViewData ["Notifications"] ) {
if (note.click_action == null) {%> Yavsc.notice(<%=note.body%>); <% }
else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>); <% } %>
else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_action_name%>); <% } %>
<% } %>
});
</script>
@ -51,8 +58,6 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>); <% } %>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</main>
<asp:ContentPlaceHolder ID="MASContent" runat="server">
</asp:ContentPlaceHolder>
<footer data-type="background" data-speed="5" >
<div id="copyr">
<a href="http://yavsc.pschneider.fr/Blogs/UserPost/paul/License">© 2015 GNU GENERAL PUBLIC LICENSE <i>Version 3, 29 June 2007</i></a>

View file

@ -1,9 +1,6 @@

var errspanid="msg";
var CirclesApiUrl = apiBaseUrl + "/Circle";
function editNewCircle() {
if ($('#fncirc').hasClass('hidden')) $('#fncirc').removeClass('hidden')
$('#lgdnvcirc').html("Creation d'un cercle");

View file

@ -1,7 +1,7 @@
var Yavsc = (function(apiBaseUrl){

var Yavsc = (function(apiBaseUrl){
var self = {};
self.dumpprops = function (obj) {
var str = "";
for(var k in obj)
@ -30,9 +30,11 @@ self.dimiss = function () {
$(this).parent().remove();
};
self.ajax = function (method,data,callback) {
self.ajax = function (method,data,callback,badInputCallback,errorCallBack) {
if (!badInputCallback) badInputCallback=Yavsc.onAjaxBadInput;
if (!errorCallBack) errorCallBack=Yavsc.onAjaxError;
$.ajax({
url: self.apiBaseUrl+method,
url: self.apiBaseUrl+'/'+method,
type: "POST",
data: data,
success: function (response) {
@ -74,7 +76,7 @@ self.onAjaxBadInput = function (data)
var errspanid = "Err_" + value.key;
var errspan = document.getElementById(errspanid);
if (errspan==null)
alert('enoent '+errspanid);
Yavsc.notice('ENOTANODE: '+errspanid);
else
errspan.innerHTML=value.errors.join("<br/>");
});

View file

@ -1,4 +1,5 @@
var Tags = (function(apiBaseUrl){

var Tags = (function(apiBaseUrl){
var self = {};
self.blogsApiUrl = (apiBaseUrl || '/api') + "/Blogs";

View file

@ -34,8 +34,7 @@ $(function(){
$("#tbc").stupidtable();
});
</script>
</asp:Content>
<asp:Content ID="MASContentContent" ContentPlaceHolderID="MASContent" runat="server">
<div id="fncirc" class="hidden">

View file

@ -5,10 +5,31 @@
</asp:Content>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<style>
table.layout { border-width: 0; }
table.layout TR TD { max-width:40%; }
</style>
<aside>
<%= Html.ActionLink("Changer de mot de passe","ChangePassword", "Account",null, new { @class="actionlink" })%>
<%= Html.ActionLink("Désincription", "Unregister", "Account", new { id = ViewData["UserName"] } , new { @class="actionlink" })%>
</aside>
<aside>
<% if (Roles.IsUserInRole((string)ViewData ["UserName"],"Admin")) {
// TODO View all roles
%>
This user is Admin.
<% } %>
<code>HasBankAccount:<%= Model.HasBankAccount %></code>
<% if (!Model.HasBankAccount) { %><span class="hint">
IBAN+BIC ou Codes banque, guichet, compte et clé RIB</span>
<% } %>, <code>IsBillable:<%=Model.IsBillable%></code>
<% if (!Model.IsBillable) { %>
<span class="hint">un nom et au choix, une adresse postale valide,
ou un téléphone, ou un email, ou un Mobile</span> <% } %>
</aside>
<%= Html.ValidationSummary() %>
<% using(Html.BeginForm("Profile", "Account", FormMethod.Post, new { enctype = "multipart/form-data" })) %>
<% { %>
@ -116,25 +137,15 @@ Avatar : <img src="<%=Url.AvatarUrl(HttpContext.Current.User.Identity.Name)%>" a
<%= Html.ValidationMessage("IBAN", "*") %>
</div>
</fieldset>
<fieldset><legend>Interface utilisateur</legend>
<%= Html.LabelFor(model => model.UITheme) %> :
<%= Html.TextBox("UITheme") %>
<%= Html.ValidationMessage("UITheme", "*") %>
</fieldset>
<input type="submit"/>
<% } %>
<aside>
<%= Html.ActionLink("Changer de mot de passe","ChangePassword", "Account",null, new { @class="actionlink" })%>
<%= Html.ActionLink("Désincription", "Unregister", "Account", new { id = ViewData["UserName"] } , new { @class="actionlink" })%>
</aside>
<aside>
<% if (Roles.IsUserInRole((string)ViewData ["UserName"],"Admin")) { %>
This user is Admin.
<% } %>
<code>HasBankAccount:<%= Model.HasBankAccount %></code>
<% if (!Model.HasBankAccount) { %><span class="hint">
IBAN+BIC ou Codes banque, guichet, compte et clé RIB</span>
<% } %>, <code>IsBillable:<%=Model.IsBillable%></code>
<% if (!Model.IsBillable) { %>
<span class="hint">un nom et au choix, une adresse postale valide,
ou un téléphone, ou un email, ou un Mobile</span> <% } %>
</aside>
</asp:Content>

View file

@ -1,11 +0,0 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%= Html.ValidationSummary() %>
<% using(Ajax.BeginForm())
{ %>
Nom du rôle :
<%= Html.TextBox( "RoleName" ) %>
<%= Html.ValidationMessage("RoleName", "*") %><br/>
<input class="actionlink" type="submit"/>
<% } %>

View file

@ -9,7 +9,6 @@ Nom du rôle :
<%= Html.ValidationMessage("RoleName", "*") %><br/>
<input class="actionlink" type="submit"/>
<% } %>
<%= Html.Partial("AddMemberToRole")%>
</asp:Content>

View file

@ -6,7 +6,10 @@
<table>
<% foreach (string u in (string[])ViewData["admins"]) { %>
<tr><td>
<%= u %> </td><td><%= Html.ActionLink("Remove","RemoveFromRole",new { username = u, rolename="Admin", returnUrl = Request.Url.PathAndQuery })%>
<%= u %> </td><td>
<%= Html.ActionLink("Remove","RemoveFromRole",
new { username = u, rolename="Admin", returnUrl = Request.Url.PathAndQuery })%>
</td></tr>
<% } %>

View file

@ -1,4 +1,6 @@
<%@ Page Title="Liste des rôles" Language="C#" Inherits="System.Web.Mvc.ViewPage" MasterPageFile="~/Models/AppAdmin.master" %>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
Roles:
<ul>

View file

@ -6,8 +6,18 @@
<ul>
<%foreach (MembershipUser user in Model){ %>
<li><%=user.UserName%> (created <%=user.CreationDate.ToString("D")%>) <%=user.Email%> <%=(user.IsApproved)?"":"("+LocalizedText.Not_Approuved+")"%> <%=user.IsOnline?LocalizedText.Online:LocalizedText.Offline%>
<br>
Roles :
<ul>
<%foreach (string role in Roles.GetRolesForUser(user.UserName)){ %>
<li><%=role%></li>
<% } %>
</ul>
<% if (Roles.IsUserInRole("Admin")) { %>
<%= Html.ActionLink(LocalizedText.Remove,"RemoveUser", new { username = user.UserName }, new { @class="actionlink" } ) %>
<%= Html.ActionLink(LocalizedText.Remove,"RemoveUser", new { username = user.UserName, returnUrl = Request.Url.PathAndQuery }, new { @class="actionlink" } ) %>
<%= Html.ActionLink("Blogger","AddUserToRole", new { username = user.UserName, rolename="Blogger", returnUrl = Request.Url.PathAndQuery }, new { @class="actionlink" } ) %>
<% } %>
</li><% }%>
</ul>

View file

@ -1,11 +1,21 @@
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</head>
<body>
<div>
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" Title="UsersInRoleOf" MasterPageFile="~/Models/AppAdmin.master" %>
<asp:Content ContentPlaceHolderID="init" ID="init1" runat="server">
<% ViewState["orgtitle"] = string.Format ( LocalizedText.UsersInRole , Html.Encode(ViewData["RoleName"])); %>
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName; %>
</div>
</body>
</asp:Content>
<asp:Content ContentPlaceHolderID="overHeaderOne" ID="header1" runat="server">
<h1><a href="<%= Url.RouteUrl("Default", new { action = "UsersInRole", RoleName = ViewData["RoleName"] } )%>">
<%=ViewState["orgtitle"]%></a>
- <a href="<%= Url.RouteUrl("Default",new {controller="Home" }) %>"><%= YavscHelpers.SiteName %></a>
</h1>
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<ul>
<%foreach (string username in (string[]) ViewData["UsersInRole"]){ %>
<li><%= username %></li>
<% } %>
</ul>
<%= Html.Partial("AddUserToRole") %>
</asp:Content>

View file

@ -1,9 +1,9 @@
<%@ Page Title="Back office" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
</asp:Content>
<asp:Content ID="MASContentContent" ContentPlaceHolderID="MASContent" runat="server">
<ul><li>
<%= Html.ActionLink("Catalog","Catalog","FrontOffice" ) %>
</li></ul>
</li>
<li><%= Html.ActionLink(LocalizedText.Skill,"Skills","FrontOffice" ) %></li>
</ul>
</asp:Content>

View file

@ -1,14 +0,0 @@
<%@ Page Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="initContent" ContentPlaceHolderID="init" runat="server">
</asp:Content>
<asp:Content ID="headContent" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="overHeaderOneContent" ContentPlaceHolderID="overHeaderOne" runat="server">
</asp:Content>
<asp:Content ID="headerContent" ContentPlaceHolderID="header" runat="server">
</asp:Content>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
kjgftkgt
</asp:Content>
<asp:Content ID="MASContentContent" ContentPlaceHolderID="MASContent" runat="server">
</asp:Content>

View file

@ -12,8 +12,13 @@
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<aside>
Id:<%= Html.ActionLink( Model.Id.ToString() , "UserPost", new { user= Model.Author, title=Model.Title, id = Model.Id }, new { @class = "usertitleref actionlink" }) %>
, Posted: <%= Model.Posted.ToString("yyyy/MM/dd") %> - Modified: <%= Model.Modified.ToString("yyyy/MM/dd") %>
Visible: <%= Model.Visible? "oui":"non" %> <%= Html.ActionLink("Supprimer","RemovePost", new { user=Model.Author, title = Model.Title, id = Model.Id }, new { @class="actionlink" } ) %>
</aside>
<% using(Html.BeginForm("ValidateEdit","Blogs")) { %>
<% using(Html.BeginForm("Edit","Blogs")) { %>
<fieldset>
<legend>Contrôle d'accès au Billet</legend>
<%= Html.LabelFor(model => model.Visible) %> : <%= Html.CheckBox( "Visible" ) %>
@ -234,10 +239,5 @@ var data = new FormData($('#frmajax').get()[0]);
<aside>
Id:<%= Html.ActionLink( Model.Id.ToString() , "UserPost", new { user= Model.Author, title=Model.Title, id = Model.Id }, new { @class = "usertitleref actionlink" }) %>
, Posted: <%= Model.Posted.ToString("yyyy/MM/dd") %> - Modified: <%= Model.Modified.ToString("yyyy/MM/dd") %>
Visible: <%= Model.Visible? "oui":"non" %> <%= Html.ActionLink("Supprimer","RemovePost", new { user=Model.Author, title = Model.Title, id = Model.Id }, new { @class="actionlink" } ) %>
</aside>
</asp:Content>

View file

@ -8,6 +8,9 @@
<h2><a href="<%= Url.RouteUrl("Titles", new { title = g.Key }) %>" class="usertitleref"><%=Html.Encode(g.Key)%></a></h2>
<% foreach (var p in g) { %>
<div class="postpreview">
<% if (p.Photo != null ) { %>
<img src="<%=p.Photo%>" alt="<%=p.Photo%>" class="photo">
<% } %>
<p><%= Html.Markdown(p.Intro,"/bfiles/"+p.Id+"/") %></p>
<%= Html.Partial("PostActions",p)%>
</div> <% } %>

View file

@ -1,4 +0,0 @@
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master"%>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
Ce contenu est d'accès restreint : &lt;<%= Html.Encode(ViewData["BlogUser"]) %>/<%= Html.Encode(ViewData["PostTitle"]) %>&gt;
</asp:Content>

View file

@ -1,11 +1,14 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BasePost>" %>
<aside>
<% if (Membership.GetUser()!=null) { %>
<aside>
(<%= Model.Posted.ToString("D") %>
- <%= Model.Modified.ToString("D") %> <%= Model.Visible? "":", Invisible!" %>)
<% if (Membership.GetUser()!=null) {
<%= Html.Partial("RateControl",Model)%>
<%
if (Membership.GetUser().UserName==Model.Author || Roles.IsUserInRole("Admin"))
{ %>
<% if (Model is BlogEntry) { %><%= Html.Partial("TagControl",Model)%>
<%= Html.Partial("TagControl",Model)%>
<% if (Model is BlogEntry) { %>
<i class="fa fa-pencil"><%=Html.Translate("DoComment")%></i>
<aside class="control" class="hidden">
<% using (Html.BeginForm("Comment","Blogs")) { %>
@ -17,10 +20,11 @@
<% } %>
</aside>
<% } %>
<a href="<%= Url.RouteUrl("Default", new { action = "Edit", postid = Model.Id })%>" class="actionlink">
<a href="<%= Url.RouteUrl("Default", new { action = "EditId", postid = Model.Id })%>" class="actionlink">
<i class="fa fa-pencil"><%=Html.Translate("Edit")%></i>
</a>
<a href="<%= Url.RouteUrl("Default", new { action = "RemovePost", postid = Model.Id })%>" class="actionlink">
<i class="fa fa-remove"><%=Html.Translate("Remove")%></i></a>
<% }} %>
<% } %>
</aside>
<% } %>

View file

@ -1,4 +1,4 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BlogEntry>" %>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BasePost>" %>
<p id="tags<%=Model.Id%>" data-postid="<%=Model.Id%>" class="fa fa-tag">
<% if (Model.Tags != null) {
foreach ( var tagname in Model.Tags) { %>
@ -8,6 +8,7 @@ foreach ( var tagname in Model.Tags) { %>
<% if (Membership.GetUser()!=null) { %>
<% if (Membership.GetUser().UserName==Model.Author || Roles.IsUserInRole("Admin"))
{ // grant all permissions: to choose a given set of tags, also create some new tags %>
<span id="viewtagger<%=Model.Id%>">
<i class="fa fa-tag menuitem" id="viewtaggerbtn<%=Model.Id%>"><%=Html.Translate("DoTag")%></i></span>
<span id="hidetagger<%=Model.Id%>" class="hidden">

View file

@ -1,12 +1,14 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<TagInfo>" %>
<h2><%=Html.Encode(Model.Name)%></h2>
<% foreach (var g in Model.Titles) { %>
<div class="panel">
<i class="fa fa-tag"><%=Html.Encode(Model.Name)%></i>
<% foreach (var t in Model.Titles) { %>
<a href="<%= Url.RouteUrl("Titles", new { title = t.Title }) %>">
<img src="<%=Url.Encode(t.Photo)%>" alt="placard" class="photo">
<%= Html.Markdown(t.Title,"/bfiles/"+t.Id+"/")%></a>
<h3><%= Html.Markdown(g.Key)%></h3>
<% foreach (var p in g) { %>
<a href="<%= Url.RouteUrl("Titles", new { title = g.Key, postid = p.Id }) %>">
<% if (p.Photo != null) { %> <img src="<%=p.Photo%>" alt="placard" class="photo"> <% } %>
<div class="postpreview">
<p><%= Html.Markdown(t.Intro,"/bfiles/"+t.Id+"/") %></p>
</div>
<p><%= Html.Markdown(p.Intro,"/bfiles/"+p.Id+"/") %></p>
</div> </a>
<% } %>
</div>
</div>
<% } %>

View file

@ -12,16 +12,9 @@
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<% foreach (BlogEntry e in this.Model) { %>
<div class="post<% if (!e.Visible) { %> hiddenpost<% } %>" >
<% if (e.Photo!=null) { %><img src="<%=e.Photo%>" alt="" class="photo"><% } %>
<%= Html.Markdown(e.Content,"/bfiles/"+e.Id+"/") %>
<%= Html.Partial("PostActions",e)%>
</div>
<% } %>
<%
if (((int) ViewData["RecordCount"]) > ((int) ViewData["PageSize"])) {
rp1.ResultCount = (int) ViewData["RecordCount"];
if (((int) ViewData["ResultCount"]) > ((int) ViewData["PageSize"])) {
rp1.ResultCount = (int) ViewData["ResultCount"];
rp1.PageIndex = (int) ViewData["PageIndex"];
rp1.PageSize = (int) ViewData["PageSize"];
%><aside><form runat="server" id="form1">
@ -31,4 +24,11 @@ if (((int) ViewData["RecordCount"]) > ((int) ViewData["PageSize"])) {
</form>
</aside>
<% } %>
<% foreach (BlogEntry e in this.Model) { %>
<div class="post<% if (!e.Visible) { %> hiddenpost<% } %>" >
<% if (e.Photo!=null) { %><img src="<%=e.Photo%>" alt="" class="photo"><% } %>
<%= Html.Markdown(e.Content,"/bfiles/"+e.Id+"/") %>
<%= Html.Partial("PostActions",e)%>
</div>
<% } %>
</asp:Content>

View file

@ -19,30 +19,18 @@
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<% foreach (BlogEntry e in this.Model) { %>
<div class="postpreview<% if (!e.Visible) { %> hiddenpost<% } %>" >
<h2><a href="<%= Url.RouteUrl("BlogByTitle", new { user=e.Author, title=e.Title, postid = e.Id })%>" class="usertitleref">
<%=Html.Markdown(e.Title)%></a></h2>
<% bool truncated = false; %>
<%= Html.MarkdownToHtmlIntro(out truncated, e.Content,"/bfiles/"+e.Id+"/") %>
<% if (truncated) { %>
<a href="<%= Url.RouteUrl( "BlogByTitle", new { user=e.Author , title=e.Title, postid = e.Id}) %>">
<i><%=Html.Translate("ReadMore")%></i></a>
<% } %>
<%= Html.Partial("PostActions",e)%>
</div>
<% } %>
<aside>
<form runat="server" id="form1" method="GET">
<%
rp1.ResultCount = (int) ViewData["RecordCount"];
rp1.PageIndex = (int) ViewData["PageIndex"];
%>
<yavsc:ResultPages id="rp1" Action = "?pageIndex={0}" runat="server">
<None><i>Pas de contenu</i></None>
</yavsc:ResultPages>
</form>
</aside>
<% foreach (var g in Model.GroupByTitle()) { %>
<div class="panel">
<h2><a href="<%= Url.RouteUrl("Titles", new { title = g.Key }) %>" class="usertitleref"><%=Html.Encode(g.Key)%></a></h2>
<% foreach (var p in g) { %>
<div class="postpreview">
<% if (p.Photo!=null) { %>
<img src="<%=p.Photo%>" alt="photo" class="photo"><% } %>
<%= Html.Markdown(p.Intro,"/bfiles/"+p.Id+"/") %>
<%= Html.Partial("PostActions",p)%>
</div> <% } %>
</div>
<% } %>
<%= Html.RenderPageLinks((int)ViewData["PageIndex"],(int)ViewData["PageSize"],(int)ViewData["ResultCount"])%>
</asp:Content>

View file

@ -27,9 +27,7 @@
</ul>
<% } %>
</asp:Content>
<asp:Content ID="MASContentContent" ContentPlaceHolderID="MASContent" runat="server">
<ul><li>
<%= Html.ActionLink("Catalog","Catalog" ) %>
</li><li>

View file

@ -2,12 +2,11 @@
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.ActionLink("Votre panier","Basket","FrontOffice" ) %>
</asp:Content>
<asp:Content ID="MASContentContent" ContentPlaceHolderID="MASContent" runat="server">
<ul><li>
<ul><li>
<%= Html.ActionLink("Catalog","Catalog" ) %>
</li><li>
<%= Html.ActionLink("Estimates","Estimates" ) %>
</li></ul>
</asp:Content>
</asp:Content>

View file

@ -6,83 +6,7 @@
</script>
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<%= Html.ValidationSummary("Devis") %>
<% using (Html.BeginForm("Estimate","FrontOffice")) { %>
<%= Html.LabelFor(model => model.Title) %>:<%= Html.TextBox( "Title" ) %>
<%= Html.ValidationMessage("Title", "*") %>
<br/>
<%= Html.Hidden ("Responsible") %>
<%= Html.LabelFor(model => model.Client) %>:
<% Client.Value = Model.Client ; %>
<yavsc:InputUserName
id="Client"
name="Client"
emptyvalue="*nouvel utilisateur*"
onchange="onClientChange(this.value);"
runat="server" >
</yavsc:InputUserName>
<script>
function onClientChange(newval)
{
if (newval=='')
$("#dfnuser").removeClass("hidden");
else
$("#dfnuser").addClass("hidden");
}
</script>
<%= Html.ValidationMessage("Client", "*") %>
<br/>
<%= Html.LabelFor(model => model.Description) %>:<%=Html.TextArea( "Description") %>
<%= Html.ValidationMessage("Description", "*") %>
<br/>
<%= Html.Hidden( "Id" ) %>
<br/>
<% if (Model.Id==0) { %>
<input type="submit" name="submit" value="Create"/>
<% } else { %>
<input type="submit" name="submit" value="Update"/>
<% } %>
<% if (Model.Id>0) { %>
<table id="tbwrts">
<thead>
<tr>
<th data-sort="string"><%=Yavsc.Model.LocalizedText.Description%></th>
<th data-sort="string"><%=Yavsc.Model.LocalizedText.Product_reference%></th>
<th data-sort="int"><%=Yavsc.Model.LocalizedText.Count%></th>
<th data-sort="float"><%=Yavsc.Model.LocalizedText.Unitary_cost%></th>
</tr>
</thead>
<tbody id="wrts">
<% int lc=0;
if (Model.Lines!=null)
foreach (Writting wr in Model.Lines) { lc++; %>
<tr class="<%= (wr.Id%2==0)?"even ":"odd " %>row" id="wr<%=wr.Id%>">
<td><%=wr.Description%></td>
<td><%=wr.ProductReference%></td>
<td><%=wr.Count%></td>
<td><%=wr.UnitaryCost%></td>
<td>
<input type="button" value="X" class="actionlink rowbtnrm"/>
</td>
</tr>
<% } %>
</tbody>
</table>
<% } %>
<% } %>
</asp:Content>
<asp:Content ContentPlaceHolderID="MASContent" ID="MASContent1" runat="server">
<aside>
<aside>
<div id="dfnuser" class="hidden">
<%= Html.Partial("~/Views/Account/Register.ascx",new RegisterClientModel(),new ViewDataDictionary(ViewData)
{
@ -354,4 +278,77 @@ function addRow(){
<a class="actionlink" href="<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>/FrontOffice/EstimateToTex?id=<%=Model.Id%>"><%= LocalizedText.Tex_version %></a>
<a class="actionlink" href="<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>/FrontOffice/EstimateToPdf?id=<%=Model.Id%>"><%= LocalizedText.Pdf_version %></a>
</aside>
<%= Html.ValidationSummary("Devis") %>
<% using (Html.BeginForm("Estimate","FrontOffice")) { %>
<%= Html.LabelFor(model => model.Title) %>:<%= Html.TextBox( "Title" ) %>
<%= Html.ValidationMessage("Title", "*") %>
<br/>
<%= Html.Hidden ("Responsible") %>
<%= Html.LabelFor(model => model.Client) %>:
<% Client.Value = Model.Client ; %>
<yavsc:InputUserName
id="Client"
name="Client"
emptyvalue="*nouvel utilisateur*"
onchange="onClientChange(this.value);"
runat="server" >
</yavsc:InputUserName>
<script>
function onClientChange(newval)
{
if (newval=='')
$("#dfnuser").removeClass("hidden");
else
$("#dfnuser").addClass("hidden");
}
</script>
<%= Html.ValidationMessage("Client", "*") %>
<br/>
<%= Html.LabelFor(model => model.Description) %>:<%=Html.TextArea( "Description") %>
<%= Html.ValidationMessage("Description", "*") %>
<br/>
<%= Html.Hidden( "Id" ) %>
<br/>
<% if (Model.Id==0) { %>
<input type="submit" name="submit" value="Create"/>
<% } else { %>
<input type="submit" name="submit" value="Update"/>
<% } %>
<% if (Model.Id>0) { %>
<table id="tbwrts">
<thead>
<tr>
<th data-sort="string"><%=Yavsc.Model.LocalizedText.Description%></th>
<th data-sort="string"><%=Yavsc.Model.LocalizedText.Product_reference%></th>
<th data-sort="int"><%=Yavsc.Model.LocalizedText.Count%></th>
<th data-sort="float"><%=Yavsc.Model.LocalizedText.Unitary_cost%></th>
</tr>
</thead>
<tbody id="wrts">
<% int lc=0;
if (Model.Lines!=null)
foreach (Writting wr in Model.Lines) { lc++; %>
<tr class="<%= (wr.Id%2==0)?"even ":"odd " %>row" id="wr<%=wr.Id%>">
<td><%=wr.Description%></td>
<td><%=wr.ProductReference%></td>
<td><%=wr.Count%></td>
<td><%=wr.UnitaryCost%></td>
<td>
<input type="button" value="X" class="actionlink rowbtnrm"/>
</td>
</tr>
<% } %>
</tbody>
</table>
<% } %>
<% } %>
</asp:Content>

View file

@ -10,7 +10,6 @@
<%= 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/>

View file

@ -1,9 +1,7 @@
<%@ Page Title="Front office" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
</asp:Content>
<asp:Content ID="MASContentContent" ContentPlaceHolderID="MASContent" runat="server">
<ul><li>
<ul><li>
<%= Html.ActionLink("Catalog","Catalog" ) %>
</li><li>
<%= Html.ActionLink("Estimates","Estimates" ) %>

View file

@ -3,13 +3,13 @@
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<div class="panel">
<p>
Directeur : <br>
Adresse postale : <br>
Tél. : +33 <br>
Tél. : +33 <br>
SIREN : <br>
SIRET : <br>
Activité Principalement Exercée (APE) : <br>
Directeur : Paul Schneider<br>
Adresse postale : 2 Boulevard Aristide Briand<br>
Tél. : +33 (0) 9 80 90 36 42<br>
Mobile : +33 (0) 6 51 14 15 64<br>
SIREN : 803 851 674<br>
SIRET : 803 851 674 00017<br>
Activité Principalement Exercée (APE) : 5829C Édition de logiciels applicatifs<br>
</p>
<% using (Html.BeginForm("Contact", "Home")) { %>
<fieldset>

View file

@ -1,16 +1,16 @@
<%@ Page Title="Home" Language="C#" Inherits="System.Web.Mvc.ViewPage" MasterPageFile="~/Models/App.master"%>
<asp:Content ContentPlaceHolderID="init" ID="init1" runat="server">
<% Title = YavscHelpers.SiteName ; %>
</asp:Content>
<asp:Content ContentPlaceHolderID="overHeaderOne" ID="header1" runat="server">
<h1><%=Html.Encode(Page.Title)%></h1>
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<%= Html.Partial("TagPanel",ViewData["Accueil"]) %>
<%= Html.Partial("TagPanel",ViewData["Yavsc"]) %>
<%= Html.Partial("TagPanel",ViewData["Événements"]) %>
<%= Html.Partial("TagPanel",ViewData["Mentions légales"]) %>
</asp:Content>
<asp:Content ContentPlaceHolderID="MASContent" ID="MASContentContent" runat="server">
<div class="panel">
<%= Html.ActionLink("Les articles", "Index", "Blogs", null, new { @class="actionlink" }) %>
<%= Html.ActionLink("Contact", "Contact", "Home", null, new { @class="actionlink" }) %>
<%= Html.ActionLink("Credits", "Credits", "Home", null, new { @class="actionlink" }) %>
<%= Html.ActionLink("Version des librairies", "AssemblyInfo", "Home", null, new { @class="actionlink" }) %>
</div>
</asp:Content>

View file

@ -1,13 +1,14 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<TagInfo>" %>
<div class="panel">
<h2><%=Html.Encode(Model.Name)%></h2>
<% foreach (var t in Model.Titles) { %>
<% foreach (var g in Model.Titles) { %>
<div class="panel">
<h3><%= Html.Markdown(g.Key)%></h3>
<% foreach (var p in g) { %>
<a href="<%= Url.RouteUrl("Titles", new { title = g.Key, postid = p.Id }) %>">
<% if (p.Photo != null) { %> <img src="<%=p.Photo%>" alt="placard" class="photo"> <% } %>
<div class="postpreview">
<a href="<%= Url.RouteUrl("Titles", new { title = t.Title }) %>">
<% if (t.Photo != null ) { %>
<img src="<%=t.Photo%>" alt="placard" class="photo"><% } %>
<%= Html.Markdown(t.Title,"/bfiles/"+t.Id+"/")%></a>
<%= Html.Markdown(t.Intro,"/bfiles/"+t.Id+"/") %>
</div>
<p><%= Html.Markdown(p.Intro,"/bfiles/"+p.Id+"/") %></p>
</div> </a>
<% } %>
</div>
<% } %>

View file

@ -17,6 +17,7 @@
<add tagPrefix="yavsc" namespace="Yavsc.WebControls" assembly="Yavsc.WebControls" />
</controls>
<namespaces>
<add namespace="System.Collections.Generic" />
<add namespace="Yavsc.Helpers" />
<add namespace="Yavsc.Admin" />
<add namespace="Yavsc.CatExts" />
@ -26,9 +27,10 @@
<add namespace="Yavsc.Model.WorkFlow" />
<add namespace="Yavsc.Model.Google" />
<add namespace="Yavsc.Model.FrontOffice" />
<add namespace="Yavsc.Model.FrontOffice.Catalog" />
<add namespace="Yavsc.Model.Circles" />
<add namespace="Yavsc.Model.Calendar" />
<add namespace="System.Collections.Generic" />
<add namespace="Yavsc.Model.Skill" />
</namespaces>
</pages>
</system.web>

View file

@ -7,263 +7,273 @@ http://www.mono-project.com/Config_system.web and
http://msdn2.microsoft.com/en-us/library/b5ysx397.aspx
-->
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<sectionGroup name="system.web">
<section name="blog" type="Yavsc.Model.DataProviderConfigurationSection, YavscModel" allowLocation="true" requirePermission="false" allowDefinition="Everywhere" />
<section name="thanks" type="Yavsc.ThanksConfigurationSection, Yavsc" allowLocation="true" requirePermission="false" allowDefinition="Everywhere" />
<section name="catalog" type="Yavsc.Model.FrontOffice.Catalog.Configuration.CatalogProvidersConfigurationSection, YavscModel" allowLocation="true" requirePermission="false" allowDefinition="Everywhere" />
<section name="workflow" type="Yavsc.Model.DataProviderConfigurationSection, YavscModel" allowLocation="true" requirePermission="false" allowDefinition="Everywhere" />
<section name="circleProviders" type="Yavsc.Model.DataProviderConfigurationSection, YavscModel" />
<section name="userNameManager" type="Yavsc.Model.DataProviderConfigurationSection, YavscModel" />
</sectionGroup>
<section name="paypal" type="PayPal.SDKConfigHandler, PayPal" />
</configSections>
<system.web>
<!--
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<sectionGroup name="system.web">
<section name="blog" type="Yavsc.Model.DataProviderConfigurationSection, YavscModel" allowLocation="true" requirePermission="false" allowDefinition="Everywhere" />
<section name="thanks" type="Yavsc.ThanksConfigurationSection, Yavsc" allowLocation="true" requirePermission="false" allowDefinition="Everywhere" />
<section name="catalog" type="Yavsc.Model.FrontOffice.Catalog.Configuration.CatalogProvidersConfigurationSection, YavscModel" allowLocation="true" requirePermission="false" allowDefinition="Everywhere" />
<section name="workflow" type="Yavsc.Model.DataProviderConfigurationSection, YavscModel" allowLocation="true" requirePermission="false" allowDefinition="Everywhere" />
<section name="skillProviders" type="Yavsc.Model.DataProviderConfigurationSection, YavscModel" />
<section name="circleProviders" type="Yavsc.Model.DataProviderConfigurationSection, YavscModel" />
<section name="userNameManager" type="Yavsc.Model.DataProviderConfigurationSection, YavscModel" />
</sectionGroup>
<section name="paypal" type="PayPal.SDKConfigHandler, PayPal" />
</configSections>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation defaultLanguage="C#" debug="true">
<assemblies>
<add assembly="System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<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.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="nunit.framework, Version=2.6.3.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77" />
</assemblies>
</compilation>
<customErrors mode="Off">
</customErrors>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.WebPages" />
<add namespace="System.Linq" />
<add namespace="System.Collections.Generic" />
<add namespace="Yavsc.Helpers" />
<add namespace="Yavsc.Model" />
<add namespace="Yavsc.Model.Messaging" />
</namespaces>
</pages>
<authorization>
<allow users="*" />
</authorization>
<anonymousIdentification enabled="true" />
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
<add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
<httpRuntime maxRequestLength="52428800" />
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="auto" uiCulture="auto" enableClientBasedCulture="true" />
<membership defaultProvider="NpgsqlMembershipProvider" userIsOnlineTimeWindow="1">
<providers>
<clear />
<add name="NpgsqlMembershipProvider" type="Npgsql.Web.NpgsqlMembershipProvider, NpgsqlMRPProviders" connectionStringName="yavsc" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Clear" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" autogenerateschema="false" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="NpgsqlRoleProvider">
<providers>
<clear />
<add name="NpgsqlRoleProvider" connectionStringName="yavsc" applicationName="/" type="Npgsql.Web.NpgsqlRoleProvider, NpgsqlMRPProviders" autogenerateschema="false" />
</providers>
</roleManager>
<userNameManager defaultProvider="NpsqlUserNameProvider">
<providers>
<add name="NpsqlUserNameProvider" connectionStringName="yavsc" applicationName="/" type="Npgsql.Web.RolesAndMembers.NpgsqlUserNameProvider, NpgsqlMRPProviders" autogenerateschema="false" ></add>
</providers>
</userNameManager>
<workflow defaultProvider="ITProvider">
<providers>
<clear />
<add name="ITProvider" type="Yavsc.ITCPNpgsqlProvider, ITContentProvider" applicationName="/" connectionStringName="yavsc" />
</providers>
</workflow>
<profile defaultProvider="NpgsqlProfileProvider">
<providers>
<clear />
<add name="NpgsqlProfileProvider" type="Npgsql.Web.NpgsqlProfileProvider, NpgsqlMRPProviders" connectionStringName="yavsc" applicationName="/" description="ProfileProvider for yavsc" />
</providers>
<properties>
<add name="Name" />
<add name="Phone" />
<add name="Mobile" />
<add name="Avatar" />
<add name="BlogVisible" type="System.Boolean" defaultValue="false" />
<add name="BlogTitle" />
<add name="WebSite" />
<add name="Address" />
<add name="CityAndState" />
<add name="ZipCode" />
<add name="Country" />
<add name="BankCode" />
<add name="IBAN" />
<add name="BIC" />
<add name="WicketCode" />
<add name="AccountNumber" />
<add name="BankedKey" type="System.Int32" defaultValue="0"/>
<add name="gtoken" />
<add name="grefreshtoken" />
<add name="gtokentype" />
<add name="gtokenexpir" type="System.DateTime" defaultValue="2008-05-01 7:34:42Z" />
<add name="gcalapi" type="System.Boolean" defaultValue="false" />
<add name="gcalid" />
<add name="gregid" />
<add name="allowcookies" type="System.Boolean" allowAnonymous="true" defaultValue="false"/>
</properties>
</profile>
<blog defaultProvider="NpgsqlBlogProvider">
<providers>
<add name="NpgsqlBlogProvider" connectionStringName="yavsc" applicationName="/" type="Npgsql.Web.Blog.NpgsqlBlogProvider, NpgsqlBlogProvider" />
</providers>
</blog>
<thanks html_class="thanks" title_format="Voir le site ({0})">
<to>
<add name="Mono" url="http://www.mono-project.com/Main_Page" image="/App_Themes/images/Mono-powered.png" />
<add name="Apache&nbsp;Fondation" url="http://httpd.apache.org/" image="/App_Themes/images/apache_pbw.png" />
<add name="Debian" url="http://www.debian.org" image="/App_Themes/images/debian-logo.png" />
<add name="MarkdownDeep" url="http://www.toptensoftware.com/markdowndeep/" />
<add name="MarkdownHelper" url="http://www.nuget.org/packages/MarkdownHelper" />
<add name="Postgresql" url="http://www.postgresql.org" image="/App_Themes/images/pgsql.png" />
</to>
</thanks>
<circleProviders defaultProvider="NpgsqlCircleProvider">
<providers>
<add name="NpgsqlCircleProvider" applicationName="/" type="WorkFlowProvider.NpgsqlCircleProvider, NpgsqlContentProvider" connectionStringName="yavsc" />
</providers>
</circleProviders>
<!-- <machineKey validationKey="13CA2E37A5A99AD8CE4A6B895BAF0ED3A022AA584B8D922256BA072189CEB085EEB4E573CA833D9B34FBF68687F6A6B3E008FB4EB67585A4D90551B9D36D42A1" decryptionKey="DA89CC83F6FB2EB12D5929DABC89299AC3928E0751705D33D02DB4162ED56536" validation="SHA1" decryption="AES" /> -->
<!--- <sessionState cookieless="true" regenerateExpiredSessionId="true" timeout="120"/> -->
<trust level="High" />
<catalog defaultProvider="XmlCatalogProvider">
<providers>
<add name="XmlCatalogProvider" connection="~/Catalog.xml" applicationName="/" type="SalesCatalog.XmlImplementation.XmlCatalogProvider, SalesCatalog" />
</providers>
</catalog>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v4.0" />
<providerOption name="WarnAsError" value="false" />
</compiler>
</compilers>
</system.codedom>
<!-- <system.web.extensions>
<compilation defaultLanguage="C#" debug="true">
<assemblies>
<add assembly="System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<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.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="nunit.framework, Version=2.6.3.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77" />
</assemblies>
</compilation>
<customErrors mode="Off">
</customErrors>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.WebPages" />
<add namespace="System.Linq" />
<add namespace="System.Collections.Generic" />
<add namespace="Yavsc.Helpers" />
<add namespace="Yavsc.Model" />
<add namespace="Yavsc.Model.Messaging" />
</namespaces>
</pages>
<authorization>
<allow users="*" />
</authorization>
<anonymousIdentification enabled="true" />
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
<add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
<httpRuntime maxRequestLength="52428800" />
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="auto" uiCulture="auto" enableClientBasedCulture="true" />
<membership defaultProvider="NpgsqlMembershipProvider" userIsOnlineTimeWindow="1">
<providers>
<clear />
<add name="NpgsqlMembershipProvider" type="Npgsql.Web.NpgsqlMembershipProvider, NpgsqlMRPProviders" connectionStringName="yavsc" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Clear" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" autogenerateschema="false" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="NpgsqlRoleProvider">
<providers>
<clear />
<add name="NpgsqlRoleProvider" connectionStringName="yavsc" applicationName="/" type="Npgsql.Web.NpgsqlRoleProvider, NpgsqlMRPProviders" autogenerateschema="false" />
</providers>
</roleManager>
<userNameManager defaultProvider="NpsqlUserNameProvider">
<providers>
<add name="NpsqlUserNameProvider" connectionStringName="yavsc" applicationName="/" type="Npgsql.Web.RolesAndMembers.NpgsqlUserNameProvider, NpgsqlMRPProviders" autogenerateschema="false">
</add>
</providers>
</userNameManager>
<workflow defaultProvider="ITProvider">
<providers>
<clear />
<add name="ITProvider" type="Yavsc.ITCPNpgsqlProvider, ITContentProvider" applicationName="/" connectionStringName="yavsc" />
</providers>
</workflow>
<profile defaultProvider="NpgsqlProfileProvider">
<providers>
<clear />
<add name="NpgsqlProfileProvider" type="Npgsql.Web.NpgsqlProfileProvider, NpgsqlMRPProviders" connectionStringName="yavsc" applicationName="/" description="ProfileProvider for yavsc" />
</providers>
<properties>
<add name="Name" />
<add name="Phone" />
<add name="Mobile" />
<add name="Avatar" />
<add name="BlogVisible" type="System.Boolean" defaultValue="false" />
<add name="BlogTitle" />
<add name="WebSite" />
<add name="Address" />
<add name="CityAndState" />
<add name="ZipCode" />
<add name="Country" />
<add name="BankCode" />
<add name="IBAN" />
<add name="BIC" />
<add name="WicketCode" />
<add name="AccountNumber" />
<add name="BankedKey" type="System.Int32" defaultValue="0" />
<add name="gtoken" />
<add name="grefreshtoken" />
<add name="gtokentype" />
<add name="gtokenexpir" type="System.DateTime" defaultValue="2008-05-01 7:34:42Z" />
<add name="gcalapi" type="System.Boolean" defaultValue="false" />
<add name="gcalid" />
<add name="gregid" />
<add name="allowcookies" type="System.Boolean" allowAnonymous="true" defaultValue="false" />
<add name="UITheme" allowAnonymous="true" defaultValue="dark" />
</properties>
</profile>
<blog defaultProvider="NpgsqlBlogProvider">
<providers>
<add name="NpgsqlBlogProvider" connectionStringName="yavsc" applicationName="/" type="Npgsql.Web.Blog.NpgsqlBlogProvider, NpgsqlBlogProvider" />
</providers>
</blog>
<thanks html_class="thanks" title_format="Voir le site ({0})">
<to>
<add name="Mono" url="http://www.mono-project.com/Main_Page" image="/App_Themes/images/Mono-powered.png" />
<add name="Apache&nbsp;Fondation" url="http://httpd.apache.org/" image="/App_Themes/images/apache_pbw.png" />
<add name="Debian" url="http://www.debian.org" image="/App_Themes/images/debian-logo.png" />
<add name="MarkdownDeep" url="http://www.toptensoftware.com/markdowndeep/" />
<add name="MarkdownHelper" url="http://www.nuget.org/packages/MarkdownHelper" />
<add name="Postgresql" url="http://www.postgresql.org" image="/App_Themes/images/pgsql.png" />
</to>
</thanks>
<circleProviders defaultProvider="NpgsqlCircleProvider">
<providers>
<add name="NpgsqlCircleProvider" applicationName="/" type="WorkFlowProvider.NpgsqlCircleProvider, NpgsqlContentProvider" connectionStringName="yavsc" />
</providers>
</circleProviders>
<skillProviders defaultProvider="NpsqlSkillProvider">
<providers>
<add name="NpsqlSkillProvider" connectionStringName="yavsc" applicationName="/" type="WorkFlowProvider.NpgsqlSkillProvider, NpgsqlContentProvider" autogenerateschema="false">
</add>
</providers>
</skillProviders>
<!-- <machineKey validationKey="13CA2E37A5A99AD8CE4A6B895BAF0ED3A022AA584B8D922256BA072189CEB085EEB4E573CA833D9B34FBF68687F6A6B3E008FB4EB67585A4D90551B9D36D42A1" decryptionKey="DA89CC83F6FB2EB12D5929DABC89299AC3928E0751705D33D02DB4162ED56536" validation="SHA1" decryption="AES" /> -->
<!--- <sessionState cookieless="true" regenerateExpiredSessionId="true" timeout="120"/> -->
<trust level="High" />
<catalog defaultProvider="XmlCatalogProvider">
<providers>
<add name="XmlCatalogProvider" connection="~/Catalog.xml" applicationName="/" type="SalesCatalog.XmlImplementation.XmlCatalogProvider, SalesCatalog" />
</providers>
</catalog>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v4.0" />
<providerOption name="WarnAsError" value="false" />
</compiler>
</compilers>
</system.codedom>
<!-- <system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="20000" />
</webServices>
</scripting>
</system.web.extensions> -->
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql Server" type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
</system.data>
<system.net>
<!-- not supported: <defaultProxy enabled="true" /> -->
<settings>
<!-- This setting causes .NET to check certificate revocation lists (CRL)
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql Server" type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
</system.data>
<system.net>
<!-- not supported: <defaultProxy enabled="true" /> -->
<settings>
<!-- This setting causes .NET to check certificate revocation lists (CRL)
before trusting HTTPS certificates. But this setting tends to not
be allowed in shared hosting environments. -->
<!--<servicePointManager checkCertificateRevocationList="true"/>-->
</settings>
<mailSettings>
<smtp deliveryMethod="network" from="paulschneider@free.fr">
<network host="smtp.free.fr" port="25" defaultCredentials="false" />
</smtp>
</mailSettings>
</system.net>
<uri>
<!-- The uri section is necessary to turn on .NET 3.5 support for IDN (international domain names),
<!--<servicePointManager checkCertificateRevocationList="true"/>-->
</settings>
<mailSettings>
<smtp deliveryMethod="network" from="paulschneider@free.fr">
<network host="smtp.free.fr" port="25" defaultCredentials="false" />
</smtp>
</mailSettings>
</system.net>
<uri>
<!-- The uri section is necessary to turn on .NET 3.5 support for IDN (international domain names),
which is necessary for OpenID urls with unicode characters in the domain/host name.
It is also required to put the Uri class into RFC 3986 escaping mode, which OpenID and OAuth require. -->
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="30" name=".ASPXFORM$" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="Index.aspx" enableCrossAppRedirects="false" />
</authentication>
<!-- PayPal SDK settings -->
<paypal>
<settings>
<add name="mode" value="sandbox" />
<!-- live or sandbox -->
<add name="connectionTimeout" value="30000" />
<!-- (miliseconds) = 30s -->
<add name="requestRetries" value="1" />
<!-- -->
<add name="clientId" value="A9S6jrem3H0gdj8tQ2q1ahSCU38tAJRyiro7eED13h3Syn6C9ZSKSRkl" />
<!-- -->
<add name="clientSecret" value="PLF77VGTZGGSSZAY" />
<!-- -->
</settings>
</paypal>
<!-- log4net settings -->
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="yavsc.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
<connectionStrings>
<add name="yavsc" connectionString="Server=127.0.0.1;Port=5432;Database=YavscDev;User Id=yavscdev;Password=admin;" providerName="Npgsql" />
</connectionStrings>
<appSettings>
<!-- <add key="MonoServerDefaultIndexFiles" value="Index,index.html,Index.aspx" /> -->
<add key="WorkflowContentProviderClass" value="yavsc.NpgsqlContentProvider" />
<add key="SmtpServer" value="smtp.free.fr" />
<add key="AdminEMail" value="paul@pschneider.fr" />
<add key="OwnerEMail" value="paul@pschneider.fr" />
<add key="Name" value="yavsc" />
<add key="DefaultController" value="Blogs" />
<add key="DefaultAvatar" value="/App_Themes/images/noavatar.png;image/png" />
<add key="RegistrationMessage" value="/RegistrationMail.txt" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="PayPalLogger" value="PayPal.Log.Log4netLogger" />
<add key="GOOGLE_API_KEY" value="AIzaSyCF7Bgz-W_p26bbMzxp1ukdgg3LMDHzAo0" />
<add key="GOOGLE_CLIENT_ID" value="325408689282-6bekh7p3guj4k0f3301a6frf025cnrk1.apps.googleusercontent.com" />
<add key="GOOGLE_CLIENT_SECRET" value="MaxYcvJJCs2gDGvaELZbzwfL" />
</appSettings>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="30" name=".ASPXFORM$" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="Index.aspx" enableCrossAppRedirects="false" />
</authentication>
<!-- PayPal SDK settings -->
<paypal>
<settings>
<add name="mode" value="sandbox" />
<!-- live or sandbox -->
<add name="connectionTimeout" value="30000" />
<!-- (miliseconds) = 30s -->
<add name="requestRetries" value="1" />
<!-- -->
<add name="clientId" value="A9S6jrem3H0gdj8tQ2q1ahSCU38tAJRyiro7eED13h3Syn6C9ZSKSRkl" />
<!-- -->
<add name="clientSecret" value="PLF77VGTZGGSSZAY" />
<!-- -->
</settings>
</paypal>
<!-- log4net settings -->
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="yavsc.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
<connectionStrings>
<add name="yavsc" connectionString="Server=127.0.0.1;Port=5432;Database=YavscDev;User Id=yavscdev;Password=admin;" providerName="Npgsql" />
</connectionStrings>
<appSettings>
<!-- <add key="MonoServerDefaultIndexFiles" value="Index,index.html,Index.aspx" /> -->
<add key="WorkflowContentProviderClass" value="yavsc.NpgsqlContentProvider" />
<add key="SmtpServer" value="smtp.free.fr" />
<add key="AdminEMail" value="paul@pschneider.fr" />
<add key="OwnerEMail" value="paul@pschneider.fr" />
<add key="Name" value="yavsc" />
<add key="DefaultController" value="Blogs" />
<add key="DefaultAvatar" value="/App_Themes/images/noavatar.png;image/png" />
<add key="RegistrationMessage" value="/RegistrationMail.txt" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="PayPalLogger" value="PayPal.Log.Log4netLogger" />
<add key="GOOGLE_API_KEY" value="[YOUR_GOOGLE_API_KEY]" />
<add key="GOOGLE_CLIENT_ID" value="[YOUR_GOOGLE_CLIENT_ID.apps.googleusercontent.com]" />
<add key="GOOGLE_CLIENT_SECRET" value="[YOUR_GOOGLE_CLIENT_SECRET]" />
</appSettings>
</configuration>

View file

@ -75,9 +75,6 @@
<Reference Include="nunit.framework">
<Package>nunit</Package>
</Reference>
<Reference Include="log4net">
<HintPath>..\packages\log4net.2.0.3\lib\net40-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
@ -105,44 +102,48 @@
<Reference Include="Npgsql">
<HintPath>..\packages\Npgsql.3.0.3\lib\net45\Npgsql.dll</HintPath>
</Reference>
<Reference Include="log4net">
<HintPath>..\packages\log4net.2.0.4\lib\net45-full\log4net.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Folder Include="Models\" />
<Folder Include="Scripts\" />
<Folder Include="Views\Account\" />
<Folder Include="Views\Blogs\" />
<Folder Include="Helpers\" />
<Folder Include="Views\FrontOffice\" />
<Folder Include="avatars\" />
<Folder Include="Admin\" />
<Folder Include="backup\" />
<Folder Include="errors\" />
<Folder Include="Views\FileSystem\" />
<Folder Include="CatExts\" />
<Folder Include="Views\WorkFlow\" />
<Folder Include="Views\Admin\" />
<Folder Include="templates\" />
<Folder Include="Formatters\" />
<Folder Include="Settings\" />
<Folder Include="Views\BackOffice\" />
<Folder Include="Helpers\Google\" />
<Folder Include="htmldoc\" />
<Folder Include="users\" />
<Folder Include="xmldoc\" />
<Folder Include="Views\PayPal\" />
<Folder Include="ApiControllers\" />
<Folder Include="Views\Modules\" />
<Folder Include="App_Themes\" />
<Folder Include="App_Themes\green\" />
<Folder Include="App_Themes\blue\" />
<Folder Include="App_Themes\dark\" />
<Folder Include="bfiles\" />
<Folder Include="fonts\" />
<Folder Include="lib\" />
<Folder Include="App_Data\" />
<Folder Include="App_Themes\images\" />
<Folder Include="Views\Google\" />
<Folder Include="App_Data\Sql\" />
<Folder Include="App_Themes\clear\" />
<Folder Include="avatars\" />
<Folder Include="backup\" />
<Folder Include="bfiles\" />
<Folder Include="CatExts\" />
<Folder Include="errors\" />
<Folder Include="fonts\" />
<Folder Include="Formatters\" />
<Folder Include="htmldoc\" />
<Folder Include="Helpers\" />
<Folder Include="Helpers\Google\" />
<Folder Include="lib\" />
<Folder Include="Models\" />
<Folder Include="Settings\" />
<Folder Include="Scripts\" />
<Folder Include="templates\" />
<Folder Include="users\" />
<Folder Include="Views\Account\" />
<Folder Include="Views\Blogs\" />
<Folder Include="Views\Google\" />
<Folder Include="Views\FrontOffice\" />
<Folder Include="Views\FileSystem\" />
<Folder Include="Views\WorkFlow\" />
<Folder Include="Views\Admin\" />
<Folder Include="Views\BackOffice\" />
<Folder Include="Views\PayPal\" />
<Folder Include="Views\Modules\" />
<Folder Include="xmldoc\" />
</ItemGroup>
<ItemGroup>
<Compile Include="Controllers\HomeController.cs" />
@ -207,6 +208,9 @@
<Compile Include="ApiControllers\AuthorizationDenied.cs" />
<Compile Include="ApiControllers\YavscController.cs" />
<Compile Include="Helpers\YavscAjaxHelper.cs" />
<Compile Include="Helpers\Google\GoogleHelpers.cs" />
<Compile Include="AuthorizeAttribute.cs" />
<Compile Include="ApiControllers\SkillController.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Views\Web.config" />
@ -283,7 +287,6 @@
<Content Include="Views\Account\Circles.aspx" />
<Content Include="Views\Account\Register.ascx" />
<Content Include="Views\Account\ResetPassword.aspx" />
<Content Include="Views\Blogs\NotAuthorized.aspx" />
<Content Include="Views\Blogs\RemoveTitle.aspx" />
<Content Include="App_Themes\style.css" />
<Content Include="App_Themes\green\asc.png" />
@ -358,7 +361,9 @@
<Content Include="Scripts\rangy-core.js" />
<Content Include="Scripts\rangy-selectionsaverestore.js" />
<Content Include="Scripts\jquery.htmlClean.min.js" />
<Content Include="Views\Blogs\ChooseMedia.aspx" />
<Content Include="App_Themes\images\helix-nebula-1400x1400.jpg" />
<Content Include="App_Themes\images\helix-nebula-1400x1400.s.jpg" />
<Content Include="App_Themes\images\star-939235_1280.jpg" />
<Content Include="App_Themes\accordion.css" />
<Content Include="App_Themes\all.css" />
<Content Include="App_Themes\autocomplete.css" />
@ -379,6 +384,8 @@
<Content Include="App_Themes\tabs.css" />
<Content Include="App_Themes\theme.css" />
<Content Include="App_Themes\tooltip.css" />
<Content Include="App_Themes\images\helix-nebula-1400x1400.xxs.jpg" />
<Content Include="App_Themes\images\star-939235_1280.xxs.jpg" />
<Content Include="Views\Blogs\Title.aspx" />
<Content Include="Views\Blogs\PostActions.ascx" />
<Content Include="Scripts\yavsc.tags.js" />
@ -422,6 +429,14 @@
<Content Include="App_Themes\sons-of-obsidian.css" />
<Content Include="App_Themes\sunburst.css" />
<Content Include="App_Themes\prettify.css" />
<Content Include="App_Themes\images\FhHRx.gif" />
<Content Include="Scripts\parallax.js" />
<Content Include="App_Themes\images\logo.jpg" />
<Content Include="App_Themes\images\star-939235_1280.xs.jpg" />
<Content Include="App_Themes\images\logo-1.png" />
<Content Include="App_Themes\images\logo.s.png" />
<Content Include="App_Themes\images\logo.xs.png" />
<Content Include="App_Themes\images\logo.xxs.png" />
<Content Include="App_Themes\images\ui-bg_flat_30_cccccc_40x100.png" />
<Content Include="App_Themes\images\ui-bg_flat_50_5c5c5c_40x100.png" />
<Content Include="App_Themes\images\ui-bg_glass_20_555555_1x400.png" />
@ -436,7 +451,6 @@
<Content Include="App_Themes\images\ui-icons_a83300_256x240.png" />
<Content Include="App_Themes\images\ui-icons_cccccc_256x240.png" />
<Content Include="App_Themes\images\ui-icons_ffffff_256x240.png" />
<Content Include="Scripts\parallax.js" />
<Content Include="Views\Google\Auth.aspx" />
<Content Include="Views\Google\ChooseCalendar.aspx" />
<Content Include="Views\Google\Book.aspx" />
@ -454,10 +468,6 @@
<Content Include="App_Themes\images\animated-overlay.gif" />
<Content Include="App_Themes\images\apache_pbw.png" />
<Content Include="App_Themes\images\debian-logo.png" />
<Content Include="App_Themes\images\FhHRx.gif" />
<Content Include="App_Themes\images\helix-nebula-1400x1400.jpg" />
<Content Include="App_Themes\images\helix-nebula-1400x1400.s.jpg" />
<Content Include="App_Themes\images\helix-nebula-1400x1400.xxs.jpg" />
<Content Include="App_Themes\images\Mono-powered.png" />
<Content Include="App_Themes\images\noavatar.png" />
<Content Include="App_Themes\images\p8-av4.s.jpg" />
@ -465,12 +475,22 @@
<Content Include="App_Themes\images\pgsql.png" />
<Content Include="App_Themes\images\sign-in-with-google.png" />
<Content Include="App_Themes\images\sign-in-with-google-s.png" />
<Content Include="App_Themes\images\star-939235_1280.jpg" />
<Content Include="App_Themes\images\star-939235_1280.s.jpg" />
<Content Include="App_Themes\images\star-939235_1280.xxs.jpg" />
<Content Include="Views\Admin\AddMemberToRole.ascx" />
<Content Include="Views\Admin\UsersInRole.aspx" />
<Content Include="Views\Admin\Index.aspx" />
<Content Include="Views\Admin\AddUserToRole.ascx" />
<Content Include="Scripts\yavsc.rate.js" />
<Content Include="Views\Admin\UserCard.ascx" />
<Content Include="App_Themes\dark\style.css" />
<Content Include="Views\Home\Contact.template.aspx" />
<Content Include="Views\Home\Contact.totem.aspx" />
<Content Include="Views\Home\RestrictedArea.aspx" />
<Content Include="Views\FrontOffice\Skills.aspx" />
<Content Include="Views\Blogs\RateControl.ascx" />
<Content Include="Views\FrontOffice\RateControl.ascx" />
<Content Include="Scripts\yavsc.skills.js" />
<Content Include="Views\FrontOffice\UserSkills.aspx" />
<Content Include="Views\FrontOffice\UserCard.ascx" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
@ -499,6 +519,7 @@
</None>
<None Include="fonts\fontawesome-webfont.woff2" />
<None Include="lib\MarkdownDeep.dll" />
<None Include="App_Data\Sql\Skills.sql" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NpgsqlMRPProviders\NpgsqlMRPProviders.csproj">
@ -513,10 +534,6 @@
<Project>{90BF2234-7252-4CD5-B2A4-17501B19279B}</Project>
<Name>SalesCatalog</Name>
</ProjectReference>
<ProjectReference Include="..\WebControls\WebControls.csproj">
<Project>{59E1DF7B-FFA0-4DEB-B5F3-76EBD98D5356}</Project>
<Name>WebControls</Name>
</ProjectReference>
<ProjectReference Include="..\yavscModel\YavscModel.csproj">
<Project>{68F5B80A-616E-4C3C-91A0-828AA40000BD}</Project>
<Name>YavscModel</Name>
@ -533,6 +550,10 @@
<Project>{821FF72D-9F4B-4A2C-B95C-7B965291F119}</Project>
<Name>NpgsqlContentProvider</Name>
</ProjectReference>
<ProjectReference Include="..\WebControls\WebControls.csproj">
<Project>{59E1DF7B-FFA0-4DEB-B5F3-76EBD98D5356}</Project>
<Name>WebControls</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="App_Data\Sql\instdbws.sql" />

View file

@ -2,8 +2,8 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="TransformXml" AssemblyFile="WebTasks.dll" />
<Target Name="Deploy" Condition="'$(DeployDir)' != '' And !$(SkipCopyUnchangedFiles)" DependsOnTargets="Build">
<Copy SourceFiles="@(FileWrites)" DestinationFolder="$(DeployDir)\%(RelativeDir)" />
<Copy SourceFiles="@(Content)" DestinationFolder="$(DeployDir)\%(RelativeDir)" />
<Copy SourceFiles="@(FileWrites)" DestinationFolder="$(DeployDir)/%(RelativeDir)" />
<Copy SourceFiles="@(Content)" DestinationFolder="$(DeployDir)/%(RelativeDir)" />
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="$(DeployDir)\Web.config" Condition="Exists('Web.$(Configuration).config')"/>
</Target>
</Project>

View file

@ -1,20 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="cldrjs" version="0.4.1" targetFramework="net45" />
<package id="jQuery" version="2.1.4" targetFramework="net45" />
<package id="JQuery.GoogleMaps" version="2.2.4" targetFramework="net45" />
<package id="jQuery.UI.Combined" version="1.11.4" targetFramework="net451" />
<package id="jquery-globalize" version="1.0.0" targetFramework="net45" />
<package id="log4net" version="2.0.3" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
<package id="Npgsql" version="3.0.3" targetFramework="net451" />
<package id="PayPalButtonManagerSDK" version="2.9.109" targetFramework="net45" />
<package id="PayPalCoreSDK" version="1.6.3" targetFramework="net451" />
<package id="Prettify" version="3.3.04.2013" targetFramework="net451" />
<package id="xunit" version="2.1.0" targetFramework="net451" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.1.0" targetFramework="net451" />
<package id="xunit.core" version="2.1.0" targetFramework="net451" />
<package id="xunit.extensibility.core" version="2.1.0" targetFramework="net451" />
<package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net451" />
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="cldrjs" version="0.4.1" targetFramework="net45" />
<package id="jQuery" version="2.1.4" targetFramework="net45" />
<package id="JQuery.GoogleMaps" version="2.2.4" targetFramework="net45" />
<package id="jQuery.UI.Combined" version="1.11.4" targetFramework="net451" />
<package id="jQuery.Validation" version="1.14.0" targetFramework="net451" />
<package id="jquery-globalize" version="1.0.0" targetFramework="net45" />
<package id="log4net" version="2.0.4" targetFramework="net451" />
<package id="Microsoft.jQuery.Unobtrusive.Ajax" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net451" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
<package id="Npgsql" version="3.0.3" targetFramework="net451" />
<package id="PayPalButtonManagerSDK" version="2.9.109" targetFramework="net45" />
<package id="PayPalCoreSDK" version="1.6.3" targetFramework="net451" />
<package id="Prettify" version="3.3.04.2013" targetFramework="net451" />
<package id="xunit" version="2.1.0" targetFramework="net451" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
<package id="xunit.assert" version="2.1.0" targetFramework="net451" />
<package id="xunit.core" version="2.1.0" targetFramework="net451" />
<package id="xunit.extensibility.core" version="2.1.0" targetFramework="net451" />
<package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net451" />
</packages>