Passage à ASP.NET vNext
This commit is contained in:
parent
ea90fefc31
commit
388b004837
1929 changed files with 104611 additions and 235941 deletions
95
Yavsc/Views/Home/About.cshtml
Executable file
95
Yavsc/Views/Home/About.cshtml
Executable file
|
|
@ -0,0 +1,95 @@
|
|||
@{
|
||||
ViewData["Title"] = @SR["About"]+" "+@SiteSettings.Value.Title;
|
||||
}
|
||||
<h1>@ViewData["Title"]</h1>
|
||||
<em>@SiteSettings.Value.Slogan</em>
|
||||
|
||||
|
||||
<markdown>
|
||||
|
||||
##L'objectif
|
||||
|
||||
Cette application est construite pour mettre en relation des artistes
|
||||
du domaine musical avec leur public.
|
||||
|
||||
##Le fonctionnement
|
||||
|
||||
Les utilisateurs du site sont soit artiste, soit client, soit administrateur. ils ont tous droit à leur blog.
|
||||
Pour les artistes, c'est un moyen de promouvoir leur activité.
|
||||
Ils peuvent y publier des articles, truffés de vidéos et photos.
|
||||
Pour les clients, c'est un moyen de casser la glace avec leurs idoles,
|
||||
par la description détaillées de leur centres d'intérêts.
|
||||
|
||||
L'application propulse aussi une messagerie instantanée, disponible depuis
|
||||
un navigateur Web ou depuis l'appplication mobile,
|
||||
pouvant garantir la preservation du secret sur toute information personnelle,
|
||||
du client comme du prestataire.
|
||||
|
||||
Puis viennent (ou pas) une prise commande, un payement du client,
|
||||
la prestation, une collecte du retour du client, et un paiement du prestataire de services.
|
||||
|
||||
Ni le client ni le prestataire ne sont anonymes pour l'applications,
|
||||
il sont même formellement authentifies par l'acquitement d'une première
|
||||
facturation en ligne, ou à l'occasion de la saisie de leur profile proféssionnel.
|
||||
|
||||
Durant la phase de construction d'un contrat de prestation,
|
||||
le client et l'artiste peuvent profiter d'un canal de communication privé et anonyme,
|
||||
qui est fermé à la validation définitive du dit contrat.
|
||||
|
||||
Valider un contrat, c'est:
|
||||
|
||||
* Choisir le type de contrat
|
||||
* Se mettre d'accord sur les paramètres du contrat
|
||||
* Le faire signer des deux parties
|
||||
* Mettre en œuvre d'éventuels paiement d'arrhes
|
||||
|
||||
Une fois validé, le contrat est publié à destination des deux parties. la facture est publiée à destination du client,
|
||||
qui peut l'honorer auprès du système, auquel cas ce client est marqué solvable, et le contrat est marqué approvisionné.
|
||||
|
||||
En cas de défaut d'approvisionnement, le système prendra soin de marquer le contrat comme provisoire, et de prévenir l'artiste
|
||||
d'effectuer toute prestation en relation tant le paiement associé laisse à douter.
|
||||
|
||||
Une fois sa prestation associée exécutée, les paiements relatifs sont effectués auprès de l'artiste.
|
||||
|
||||
Pour un contrat exécuté et non honoré par le client, le processus de poursuite en recouvrement est engagé, sinon, le contrat est archivé,
|
||||
des attestations de paiement sont disponible pour l'artiste et la facture est marquée payée, puis repostée au client.
|
||||
|
||||
###Pour l'artiste
|
||||
|
||||
L'artiste choisit plusieurs paramètres qui vont faire son profile :
|
||||
|
||||
* Le type d'activités qu'il veut promouvoir, le type de prestations qu'il fournit (est-ce un DJ,
|
||||
un chanteur solo, un musicien solo, un ensemble musical classique, un groupe)
|
||||
* La tarification de sa mise en contact avec un nouveau client
|
||||
(combien je reçois par demande client traitée sans lourdeur de plus d'une journée)
|
||||
* Le lieu où il exerce et, le cas échéant, sur combien de distance il pourrait se déplacer.
|
||||
* un agenda Google optionnel, à consulter pour établir sa disponibilité
|
||||
* Des paramètres supplémentaires en fonctions de son type d'activité par exemple, pour
|
||||
les ensembles, leur taille, le cas échéant, leur répertoire ou des indications sur le style de leur musique)
|
||||
|
||||
###Pour le client
|
||||
|
||||
Il choisit un lieu et une date pour déclarer un événement avenir
|
||||
(il peut bien-sûr en programmer autant qu'il le veut).
|
||||
|
||||
Il peut, parcourir les publications des artistes, et entamer,
|
||||
sur la base d'un de ses projets événementiel, la négociation d'un contrat de prestation.
|
||||
|
||||
Il a accès à la connaissance des journées connues comme libres des artistes par le système.
|
||||
|
||||
##La confidentialité
|
||||
|
||||
À aucun moment, aucune adresse postale, aucune adresse e-mail ni aucun numéro de téléphone
|
||||
ne sont transmis ni aux clients, ni aux artistes. Seul le système a accès à ces informations.
|
||||
|
||||
De plus, le droit de retrait est permanent et sa mise en oeuvre immédiate.
|
||||
Les artistes comme les clients peuvent demander leur désinscription,
|
||||
qui désactive immédiatement les publications associées à leurs informations,
|
||||
et programme la suppression complète de ces dites informations dans les quinze jours
|
||||
à compter de la demande, sauf demande contradictoire.
|
||||
L'opération est annulable, jusqu'à deux semaines après sa programmation.
|
||||
|
||||
</markdown>
|
||||
|
||||
|
||||
|
||||
13
Yavsc/Views/Home/AboutMarkdown.cshtml
Normal file
13
Yavsc/Views/Home/AboutMarkdown.cshtml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
@{
|
||||
ViewData["Title"] = @SR["About"]+" Markdown";
|
||||
}
|
||||
<h1>@ViewData["Title"]</h1>
|
||||
|
||||
<markdown>
|
||||
Quelques extension à un Markdown de base :
|
||||
|
||||
* les video et audio
|
||||
* le tag bug = Bug#542
|
||||
* le tag annonce = A#542
|
||||
|
||||
</markdown>
|
||||
50
Yavsc/Views/Home/Chat.cshtml
Normal file
50
Yavsc/Views/Home/Chat.cshtml
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
@{
|
||||
ViewBag.Title = "Chat";
|
||||
}
|
||||
<h2>Chat</h2>
|
||||
<div class="container">
|
||||
<input type="text" id="message" />
|
||||
<input type="button" id="sendmessage" value="Send" />
|
||||
<input type="hidden" id="displayname" />
|
||||
<ul id="discussion">
|
||||
</ul>
|
||||
</div>
|
||||
@section scripts {
|
||||
<!--Script references. -->
|
||||
<!--The jQuery library is required and is referenced by default in _Layout.cshtml. -->
|
||||
<!--Reference the SignalR library. -->
|
||||
<script src="~/js/jquery.signalR-2.2.0.js"></script>
|
||||
<!--Reference the autogenerated SignalR hub script. -->
|
||||
<script src="~/signalr/hubs"></script>
|
||||
<!--SignalR script to update the chat page and send messages.-->
|
||||
<script>
|
||||
$(function () {
|
||||
// Reference the auto-generated proxy for the hub.
|
||||
var chat = $.connection.chatHub;
|
||||
// Create a function that the hub can call back to display messages.
|
||||
chat.client.addMessage = function (name, message) {
|
||||
// Add the message to the page.
|
||||
$('#discussion').append('<li><strong>' + htmlEncode(name)
|
||||
+ '</strong>: ' + htmlEncode(message) + '</li>');
|
||||
};
|
||||
// Get the user name and store it to prepend to messages.
|
||||
$('#displayname').val(prompt('Enter your name:', ''));
|
||||
// Set initial focus to message input box.
|
||||
$('#message').focus();
|
||||
// Start the connection.
|
||||
$.connection.hub.start().done(function () {
|
||||
$('#sendmessage').click(function () {
|
||||
// Call the Send method on the hub.
|
||||
chat.server.send($('#displayname').val(), $('#message').val());
|
||||
// Clear text box and reset focus for next comment.
|
||||
$('#message').val('').focus();
|
||||
});
|
||||
});
|
||||
});
|
||||
// This optional function html-encodes messages for display in the page.
|
||||
function htmlEncode(value) {
|
||||
var encodedValue = $('<div />').text(value).html();
|
||||
return encodedValue;
|
||||
}
|
||||
</script>
|
||||
}
|
||||
17
Yavsc/Views/Home/Contact.cshtml
Executable file
17
Yavsc/Views/Home/Contact.cshtml
Executable file
|
|
@ -0,0 +1,17 @@
|
|||
@{
|
||||
ViewData["Title"] = "Contact";
|
||||
}
|
||||
<h2>@ViewData["Title"].</h2>
|
||||
<h3>@ViewData["Message"]</h3>
|
||||
|
||||
<address>
|
||||
Paul Schneider<br>
|
||||
2 Boulevard Aristide Briand -
|
||||
92150 Suresnes (France)
|
||||
<abbr title="Phone">P:</abbr> +33 6 51 14 15 64
|
||||
</address>
|
||||
|
||||
<address>
|
||||
<strong>Support:</strong> <a href="mailto:contact@pschneider.fr">contact@pschneider.fr</a><br />
|
||||
<strong>Marketing:</strong> <a href="mailto:paul@pschneider.fr">paul@pschneider.fr</a>
|
||||
</address>
|
||||
71
Yavsc/Views/Home/Index.cshtml
Executable file
71
Yavsc/Views/Home/Index.cshtml
Executable file
|
|
@ -0,0 +1,71 @@
|
|||
@{
|
||||
ViewData["Title"] = "Home Page";
|
||||
}
|
||||
|
||||
<div id="myCarousel" class="carousel slide" data-ride="carousel" data-interval="6000">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="1"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="2"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="3"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="item active">
|
||||
<img src="~/images/booking/groupe_s.jpg" alt="ASP.NET" class="img-responsive" />
|
||||
<div class="carousel-caption">
|
||||
<p>
|
||||
Invitez un groupe musical à animer votre événement </p>
|
||||
<p>
|
||||
<a class="btn btn-default" href="~/do/Book/IT">
|
||||
En savoir plus
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/images/booking/concert_s.jpg" alt="Visual Studio" class="img-responsive" />
|
||||
<div class="carousel-caption">
|
||||
<p>
|
||||
Organisez un concert. </p>
|
||||
<p>
|
||||
<a class="btn btn-default" href="~/do/Book/IT">
|
||||
En savoir plus
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/images/booking/dj_s.jpg" alt="Package Management" class="img-responsive" />
|
||||
<div class="carousel-caption">
|
||||
<p> Offrez-vous un anniversaire, un mariage Hip Hop </p>
|
||||
<p>
|
||||
|
||||
<a class="btn btn-default" href="~/do/Book/IT">
|
||||
En savoir plus
|
||||
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/images/booking/mike_s.jpg" alt="Microsoft Azure" class="img-responsive" />
|
||||
<div class="carousel-caption">
|
||||
<p>
|
||||
Invitez votre chanteur à la fête </p>
|
||||
<p>
|
||||
<a class="btn btn-default" href="~/do/Book/IT">
|
||||
En savoir plus
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
|
||||
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
|
||||
<span class="sr-only">Précédent</span>
|
||||
</a>
|
||||
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
|
||||
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
|
||||
<span class="sr-only">Suivant</span>
|
||||
</a>
|
||||
</div>
|
||||
66
Yavsc/Views/Home/TestTex.cshtml
Normal file
66
Yavsc/Views/Home/TestTex.cshtml
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
@{
|
||||
Layout = null;
|
||||
}
|
||||
|
||||
\documentclass[french,11pt]{article}
|
||||
\usepackage{babel}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[a4paper]{geometry}
|
||||
\usepackage{units}
|
||||
\usepackage{bera}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{fancyhdr}
|
||||
\usepackage{fp}
|
||||
|
||||
\def\TVA{20} % Taux de la TVA
|
||||
|
||||
\def\TotalHT{0}
|
||||
\def\TotalTVA{0}
|
||||
|
||||
\newcommand{\AjouterService}[3]{% Arguments : Désignation, quantité, prix
|
||||
\FPround{\prix}{#3}{2}
|
||||
\FPeval{\montant}{#2 * #3}
|
||||
\FPround{\montant}{\montant}{2}
|
||||
\FPadd{\TotalHT}{\TotalHT}{\montant}
|
||||
|
||||
\eaddto\ListeProduits{#1 & \prix & #2 & \montant \cr}
|
||||
}
|
||||
|
||||
|
||||
\newcommand{\AfficheResultat}{%
|
||||
\ListeProduits
|
||||
|
||||
\FPeval{\TotalTVA}{\TotalHT * \TVA / 100}
|
||||
\FPadd{\TotalTTC}{\TotalHT}{\TotalTVA}
|
||||
\FPround{\TotalHT}{\TotalHT}{2}
|
||||
\FPround{\TotalTVA}{\TotalTVA}{2}
|
||||
\FPround{\TotalTTC}{\TotalTTC}{2}
|
||||
\global\let\TotalHT\TotalHT
|
||||
\global\let\TotalTVA\TotalTVA
|
||||
\global\let\TotalTTC\TotalTTC
|
||||
|
||||
|
||||
\cr
|
||||
\hline
|
||||
\textbf{Total} & & & \TotalHT
|
||||
}
|
||||
|
||||
\newcommand*\eaddto[2]{% version développée de \addto
|
||||
\edef\tmp{#2}%
|
||||
\expandafter\addto
|
||||
\expandafter#1%
|
||||
\expandafter{\tmp}%
|
||||
}
|
||||
|
||||
\newcommand{\ListeProduits}{}
|
||||
|
||||
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%% A MODIFIER DANS LA FACTURE %%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\def\FactureNum {@ViewBag.TestString} % Numéro de facture
|
||||
|
||||
|
||||
|
||||
54
Yavsc/Views/Home/TestaPdf.cshtml
Normal file
54
Yavsc/Views/Home/TestaPdf.cshtml
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
|
||||
@using System.Reflection
|
||||
@using System.IO
|
||||
@using Microsoft.Extensions.WebEncoders
|
||||
@using System.Diagnostics
|
||||
@using System.Text
|
||||
@using YavscWeb.Formatters
|
||||
@model Estimate
|
||||
@{
|
||||
Layout = null;
|
||||
ViewBag.Pdf = "";
|
||||
ViewBag.TeX = "";
|
||||
var writer = new System.IO.StringWriter();
|
||||
var content = await Html.PartialAsync("TestTex", Model );
|
||||
content.WriteTo(writer, new TexEncoder());
|
||||
var contentStr = writer.ToString();
|
||||
string name = $"tmpestimtex-{Model.Id}";
|
||||
string fullname = new FileInfo(
|
||||
System.IO.Path.Combine(ViewBag.TempDir,name)).FullName;
|
||||
|
||||
FileInfo fi = new FileInfo(fullname + ".tex");
|
||||
FileInfo fo = new FileInfo(fullname + ".pdf");
|
||||
using (StreamWriter sw = new StreamWriter (fi.FullName))
|
||||
{
|
||||
sw.Write (contentStr);
|
||||
}
|
||||
if (!fi.Exists)
|
||||
{
|
||||
throw new Exception ("Source write failed");
|
||||
}
|
||||
using (Process p = new Process ()) {
|
||||
p.StartInfo.WorkingDirectory = ViewBag.TempDir;
|
||||
p.StartInfo = new ProcessStartInfo ();
|
||||
p.StartInfo.UseShellExecute = false;
|
||||
p.StartInfo.FileName = "/usr/bin/texi2pdf";
|
||||
p.StartInfo.Arguments = $"--batch --build-dir=. -o {fo.FullName} {fi.FullName}";
|
||||
p.Start ();
|
||||
p.WaitForExit ();
|
||||
if (p.ExitCode != 0) {
|
||||
throw new Exception ("Pdf generation failed with exit code:" + p.ExitCode);
|
||||
}
|
||||
}
|
||||
if (fo.Exists) {
|
||||
UTF8Encoding utf8 = new UTF8Encoding();
|
||||
|
||||
using (StreamReader sr = new StreamReader (fo.FullName)) {
|
||||
byte[] buffer = File.ReadAllBytes (fo.FullName);
|
||||
ViewBag.Pdf = utf8.GetString(buffer,0,buffer.Length);
|
||||
}
|
||||
fo.Delete();
|
||||
}
|
||||
fi.Delete();
|
||||
}
|
||||
@ViewBag.Pdf
|
||||
28
Yavsc/Views/Home/Todo.cshtml
Executable file
28
Yavsc/Views/Home/Todo.cshtml
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
@{
|
||||
ViewData["Title"] = @SR["Todo (first)"];
|
||||
}
|
||||
<h1>@ViewData["Title"]</h1>
|
||||
<em>BookAStar, Just book a star!</em>
|
||||
|
||||
|
||||
<markdown>
|
||||
|
||||
1. Prise de commande
|
||||
2. Messagerie instantanée
|
||||
3. Production de l'estimation et de la facture
|
||||
4. Paiement de la facture
|
||||
|
||||
</markdown>
|
||||
|
||||
|
||||
@{
|
||||
ViewData["Title"] = @SR["TODO"];
|
||||
}
|
||||
<h1>@ViewData["Title"]</h1>
|
||||
<em>Faster, stronger, shorter</em>
|
||||
|
||||
|
||||
<markdown>
|
||||
|
||||
</markdown>
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue