Continuo aggiunta codice...

This commit is contained in:
Samuele E. Locatelli
2017-01-19 18:00:51 +01:00
parent fe51367efa
commit 52d3443d7e
127 changed files with 68511 additions and 0 deletions
@@ -0,0 +1,80 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_ElencoVisitePaziente.ascx.cs" Inherits="MedPred.WebUserControls.mod_ElencoVisitePaziente" %>
<h3>Elenco Visite</h3>
<div style="font-size: 0.7em;">
<asp:GridView ID="grView" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="DataVisita" DataSourceID="ods" ForeColor="#333333" GridLines="None" AllowPaging="false" Width="100%" OnRowCommand="grView_RowCommand" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
<EmptyDataTemplate>
<div class="ui-grid-b">
<div class="ui-block-a"></div>
<div class="ui-block-b">
<a class="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-top" href="VAC?cmd=new">Visita Generale</a>
</div>
</div>
</EmptyDataTemplate>
<Columns>
<asp:TemplateField HeaderText="DataVisita" SortExpression="DataVisita" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("DataVisita", "{0:ddd dd/MM/yy}") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="VL" SortExpression="VL" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-search ui-btn-icon-notext ui-btn-inline" ID="lbSelVL" data-icon="star" runat="server" CausesValidation="False" CommandArgument="SelVL" CommandName="Select" Visible='<%# Convert.ToBoolean(Eval("VL")) %>' />
<asp:LinkButton ID="lbNewVL" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="NewVL" CommandName="Select" Visible='<%# !Convert.ToBoolean(Eval("VL")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="VBMA" SortExpression="VBMA" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-search ui-btn-icon-notext ui-btn-inline" ID="lbSelVBMA" data-icon="star" runat="server" CausesValidation="False" CommandArgument="SelVBMA" CommandName="Select" Visible='<%# Convert.ToBoolean(Eval("VBMA")) %>' />
<asp:LinkButton ID="lbNewVBMA" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="NewVBMA" CommandName="Select" Visible='<%# !Convert.ToBoolean(Eval("VBMA")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="VSV" SortExpression="VSV" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-search ui-btn-icon-notext ui-btn-inline" ID="lbSelVSV" data-icon="star" runat="server" CausesValidation="False" CommandArgument="SelVSV" CommandName="Select" Visible='<%# Convert.ToBoolean(Eval("VSV")) %>' />
<asp:LinkButton ID="lbNewVSV" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="NewVSV" CommandName="Select" Visible='<%# !Convert.ToBoolean(Eval("VSV")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="VP" SortExpression="VP" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-search ui-btn-icon-notext ui-btn-inline" ID="lbSelVP" data-icon="star" runat="server" CausesValidation="False" CommandArgument="SelVP" CommandName="Select" Visible='<%# Convert.ToBoolean(Eval("VP"))%>' />
<asp:LinkButton ID="lbNewVP" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="NewVP" CommandName="Select" Visible='<%# !Convert.ToBoolean(Eval("VP"))%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="VCP" SortExpression="VCP" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-search ui-btn-icon-notext ui-btn-inline" ID="lbSelVCP" data-icon="star" runat="server" CausesValidation="False" CommandArgument="SelVCP" CommandName="Select" Visible='<%# Convert.ToBoolean(Eval("VCP")) %>' />
<asp:LinkButton ID="lbNewVCP" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="NewVCP" CommandName="Select" Visible='<%# !Convert.ToBoolean(Eval("VCP")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="VAC" SortExpression="VAC" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-search ui-btn-icon-notext ui-btn-inline" ID="lbSelVAC" data-icon="star" runat="server" CausesValidation="False" CommandArgument="SelVAC" CommandName="Select" Visible='<%# Convert.ToBoolean(Eval("VAC")) %>' />
<asp:LinkButton ID="lbNewVAC" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="NewVAC" CommandName="Select" Visible='<%# !Convert.ToBoolean(Eval("VAC")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="VRF" SortExpression="VRF" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-search ui-btn-icon-notext ui-btn-inline" ID="lbSelVRF" data-icon="star" runat="server" CausesValidation="False" CommandArgument="SelVRF" CommandName="Select" Visible='<%# Convert.ToBoolean(Eval("VRF")) %>' />
<asp:LinkButton ID="lbNewVRF" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="NewVRF" CommandName="Select" Visible='<%# !Convert.ToBoolean(Eval("VRF")) %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ods" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="MedPred_Data.DS_ApplicazioneTableAdapters.ElencoVisiteTableAdapter">
<SelectParameters>
<asp:SessionParameter Name="IdxPaziente" SessionField="IdxPaziente" Type="Int32" DefaultValue="0" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
@@ -0,0 +1,108 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
namespace MedPred.WebUserControls
{
public partial class mod_ElencoVisitePaziente : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// ultimo comando letto da link button
/// </summary>
public string lastCmd { get; set; }
protected void grView_RowCommand(object sender, GridViewCommandEventArgs e)
{
// salvo il command argument...
lastCmd = e.CommandArgument.ToString();
}
protected int IdxPaziente
{
get
{
return memLayer.ML.IntSessionObj("IdxPaziente");
}
}
/// <summary>
/// ricevuto comando di select
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
// recupero dati visita...
DateTime dataVisita = DateTime.Now;
try
{
dataVisita = Convert.ToDateTime(grView.SelectedDataKey["DataVisita"]);
memLayer.ML.setSessionVal("DataVisita", dataVisita);
//DS_Applicazione.AnagPazientiRow riga = DtProxy.man.taAP.getByKey(IdxPaziente)[0];
//memLayer.ML.setSessionVal("Paziente", string.Format("{0} {1} ({2:yyyy-MM-dd})", riga.Cognome, riga.Nome, riga.DataNasc));
}
catch
{ }
switch (lastCmd)
{
case "SelVAC":
Response.Redirect(String.Format("VAC?cmd=sel&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "NewVAC":
Response.Redirect(String.Format("VAC?cmd=new&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "SelVBMA":
Response.Redirect(String.Format("VBMA?cmd=sel&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "NewVBMA":
Response.Redirect(String.Format("VBMA?cmd=new&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "SelVCP":
Response.Redirect(String.Format("VCP?cmd=sel&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "NewVCP":
Response.Redirect(String.Format("VCP?cmd=new&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "SelVL":
Response.Redirect(String.Format("VL?cmd=sel&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "NewVL":
Response.Redirect(String.Format("VL?cmd=new&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "SelVP":
Response.Redirect(String.Format("VP?cmd=sel&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "NewVP":
Response.Redirect(String.Format("VP?cmd=new&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "SelVSV":
Response.Redirect(String.Format("VSV?cmd=sel&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "NewVSV":
Response.Redirect(String.Format("VSV?cmd=new&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "SelVRF":
Response.Redirect(String.Format("VRF?cmd=sel&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
case "NewVRF":
Response.Redirect(String.Format("VRF?cmd=new&DataVisita={0:yyyy-MM-dd}", dataVisita));
break;
default:
break;
}
if (lastCmd == "edit")
{
// richiamo pagina con edit del record richiesto
Response.Redirect(string.Format("AccettazioneEdit?IdxPaziente={0}", grView.SelectedDataKey["IdxPaziente"]));
}
}
}
}
@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MedPred.WebUserControls {
public partial class mod_ElencoVisitePaziente {
/// <summary>
/// grView control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.GridView grView;
/// <summary>
/// ods control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource ods;
}
}
@@ -0,0 +1,86 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_elencoRichResetUtenti.ascx.cs" Inherits="MedPred.WebUserControls.mod_elencoRichResetUtenti" %>
<asp:GridView ID="grView" runat="server" DataSourceID="ods" AutoGenerateColumns="False" DataKeyNames="USER_NAME" CellPadding="4" ForeColor="#333333" GridLines="None" Width="100%" AllowPaging="false" OnSelectedIndexChanged="grView_SelectedIndexChanged" OnRowCommand="grView_RowCommand">
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<div class="ui-nodisc-icon ui-alt-icon" style="white-space: nowrap; font-size: 0.85em;">
<%--<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-user ui-btn-icon-notext ui-btn-inline" ID="LinkButton1" data-icon="star" runat="server" CausesValidation="False" CommandArgument="select" CommandName="Select" Text="Sel" />--%>
<asp:LinkButton ID="LinkButton2" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-edit ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="edit" CommandName="Select" Text="Edit" />
</div>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="nome" SortExpression="email">
<ItemTemplate>
<b>
<asp:Label ID="lblCognome" Font-Size="0.9em" Font-Strikeout='<%# !toBool(Eval("attivo")) %>' runat="server" Text='<%# Eval("cognome") %>' /></b>
<asp:Label ID="lblNome" Font-Size="0.9em" Font-Strikeout='<%# !toBool(Eval("attivo")) %>' runat="server" Text='<%# Eval("nome") %>' />
<br />
<asp:Label ID="lblEmail" Font-Size="0.75em" Font-Strikeout='<%# !toBool(Eval("attivo")) %>' runat="server" Text='<%# Eval("email") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Attivo" SortExpression="attivo">
<ItemTemplate>
<div class="ui-nodisc-icon ui-alt-icon" style="white-space: nowrap; font-size: 0.85em;">
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-inline" ID="lbDisattiva" data-icon="star" runat="server" CausesValidation="False" CommandArgument="Disattiva" CommandName="Select" Text="Disattiva" ToolTip="Disattiva utente e rimuove devices" Visible='<%# toBool(Eval("attivo")) %>' />
<asp:LinkButton ID="lbAttiva" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-check ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="Attiva" CommandName="Select" Text="Attiva" ToolTip="Attiva utente con nuova AuthKey" Visible='<%# !toBool(Eval("attivo")) %>' />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="# Auth" SortExpression="numAuth">
<ItemTemplate>
<div class="ui-nodisc-icon ui-alt-icon" style="white-space: nowrap; font-size: 0.85em;">
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-notext ui-btn-inline" ID="lbAdd" data-icon="star" runat="server" CausesValidation="False" CommandArgument="+1" CommandName="Select" Text="+1" ToolTip="+1 device" Visible='<%# toBool(Eval("attivo")) %>' />
<asp:Label ID="lblNumAuth" runat="server" Text='<%# Bind("numAuth") %>' />
<asp:LinkButton ID="lbRem" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-minus ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="-1" CommandName="Select" Text="-1" ToolTip="-1 device" Visible='<%# toBool(Eval("attivo")) %>' />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Grp" SortExpression="CodGruppo">
<ItemTemplate>
<asp:Label ID="lblCodGruppo" Font-Size="0.7em" Font-Strikeout='<%# !toBool(Eval("attivo")) %>' runat="server" Text='<%# Eval("CodGruppo") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" HeaderText="Reset">
<ItemTemplate>
<div class="ui-nodisc-icon ui-alt-icon" style="white-space: nowrap; font-size: 0.85em;">
<asp:LinkButton CssClass="ui-btn ui-shadow ui-corner-all ui-icon-forbidden ui-btn-icon-notext ui-btn-inline" ID="lbResetAuth" data-icon="star" runat="server" CausesValidation="False" CommandArgument="ResetKeyAndDevices" CommandName="Select" Text="Reset" Visible='<%# toBool(Eval("resetAuthKeyReq")) %>' ToolTip="Reset AuthKey & Disabilita Dispositivi" />
<asp:LinkButton ID="lbSendMail" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-mail ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="SendMail" CommandName="Select" Text="SendMail" ToolTip="Invia Email di autorizzazione" Visible='<%# toBool(Eval("attivo")) %>' />
<asp:LinkButton ID="lbCancelResetAuth" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-inline" runat="server" CausesValidation="False" CommandArgument="NoReset" CommandName="Select" Text="NoReset" Visible='<%# toBool(Eval("resetAuthKeyReq")) %>' ToolTip="Rifiuta reset" />
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ods" runat="server" SelectMethod="GetData" TypeName="SteamWare.DS_AuthTableAdapters.UtentiTableAdapter" OldValuesParameterFormatString="Original_{0}"></asp:ObjectDataSource>
<br />
<div data-role="collapsible" data-iconpos="right" data-theme="a" data-content-theme="a" style="font-size:0.8em;">
<h3>Spiegazione</h3>
Ogni riga rappresenta un utente, se questo &egrave; indicato <span style="text-decoration: line-through;">con un font barrato</span> significa che l'utente &egrave; disattivato e tutti i suoi devices (eventualmente registrati) sono stati disabilitati e rimossi dal DB (e <u>non possono più accedere alla piattaforma)</u>.
<br />
Partendo da sinistra verso destra abbiamo:
<div class="ui-nodisc-icon ui-alt-icon">
<ul>
<%--<li><i class="ui-btn ui-shadow ui-corner-all ui-icon-user ui-btn-icon-notext ui-btn-inline"></i>seleziona l'utente per visualizzare i devices lui associati</li>
<li>seleziona l'utente per modificare i dati quali cognome, nome, email</li>--%>
<li>Attivazione: il pulsante <i class="ui-btn ui-shadow ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-inline"></i> disattiva un utente (ed i relativi devices) mentre il pulsante <i class="ui-btn ui-shadow ui-corner-all ui-icon-check ui-btn-icon-notext ui-btn-inline"></i> lo riattiva (generando una NUOVA AuthKey) e permette nuovi enroll dei dispositivi.</li>
<li>NumAuth: indica il numero di attivazioni residue per l'utente, si possono incrementare/decrementare con i button <i class="ui-btn ui-shadow ui-corner-all ui-icon-plus ui-btn-icon-notext ui-btn-inline"></i> e <i class="ui-btn ui-shadow ui-corner-all ui-icon-minus ui-btn-icon-notext ui-btn-inline"></i> </li>
<li>Grp: indica il gruppo di appartenenza dell'utente</li>
<li>Reset: permette di gestire le richieste di supporto: col pulsante <i class="ui-btn ui-shadow ui-corner-all ui-icon-forbidden ui-btn-icon-notext ui-btn-inline"></i> si possono approvare (generando una nuova auth key), con <i class="ui-btn ui-shadow ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-inline"></i> si possono rifiutare le richieste e con <i class="ui-btn ui-shadow ui-corner-all ui-icon-mail ui-btn-icon-notext ui-btn-inline"></i> si possono inviare (per gli utenti ATTIVI) le email contenenti i link per autorizzare i dispositivi; nb: <b>numAuth deve essere maggiore di zero</b> altrimenti un link valido non permette comunque l'attivazione di nuovi devices utente.</li>
</ul>
</div>
</div>
@@ -0,0 +1,135 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
namespace MedPred.WebUserControls
{
public partial class mod_elencoRichResetUtenti : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
//if (!Page.IsPostBack)
//{
//}
}
/// <summary>
/// ultimo comando letto da link button
/// </summary>
public string lastCmd { get; set; }
/// <summary>
/// gestione evento novo record
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
#if false
// richiamo pagina di edit senza parametri x metodo NEW
Response.Redirect("AccettazioneEdit");
#endif
}
public bool toBool(object value)
{
bool answ = false;
try
{
answ = Convert.ToBoolean(value);
}
catch
{ }
return answ;
}
/// <summary>
/// evento selezione paziente...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
// recupero dati utente...
string USER_NAME = "";
try
{
USER_NAME = grView.SelectedDataKey["USER_NAME"].ToString();
}
catch
{ }
if (USER_NAME != "")
{
switch (lastCmd)
{
case "+1":
devicesAuthProxy.stObj.taUtenti.UpdateNumAuth(1, USER_NAME);
break;
case "-1":
devicesAuthProxy.stObj.taUtenti.UpdateNumAuth(-1, USER_NAME);
break;
case "Disattiva":
case "Attiva":
devicesAuthProxy.stObj.taUtenti.ToggleAttivo(SteamwareStrings.pseudoRandomString(20), USER_NAME);
break;
case "NoReset":
devicesAuthProxy.stObj.taUtenti.rejectResetAK(USER_NAME);
break;
case "ResetKeyAndDevices":
devicesAuthProxy.stObj.taUtenti.ResetKeyAndDevices(SteamwareStrings.pseudoRandomString(20), USER_NAME);
break;
case "SendMail":
// cerco chiave...
string AuthKey = "";
try
{
AuthKey = devicesAuthProxy.stObj.taUtenti.getByEmail(USER_NAME)[0].authKey;
}
catch
{ }
if (USER_NAME != "" && AuthKey != "")
{
// invio email!
devicesAuthProxy.stObj.sendEmailAuthKey(USER_NAME, AuthKey, "MedPred Authorization");
}
break;
default:
break;
}
}
grView.DataBind();
#if false
// recupero dati paziente...
int IdxPaziente = 0;
try
{
IdxPaziente = Convert.ToInt32(grView.SelectedDataKey["IdxPaziente"]);
memLayer.ML.setSessionVal("IdxPaziente", IdxPaziente);
DS_Applicazione.AnagPazientiRow riga = DtProxy.man.taAP.getByKey(IdxPaziente)[0];
memLayer.ML.setSessionVal("Paziente", string.Format("{0} {1} ({2:dd/MM/yyyy})", riga.Cognome, riga.Nome, riga.DataNasc));
}
catch
{ }
if (lastCmd == "edit")
{
// richiamo pagina con edit del record richiesto
Response.Redirect(string.Format("AccettazioneEdit?IdxPaziente={0}", grView.SelectedDataKey["IdxPaziente"]));
}
else if (lastCmd == "select")
{
// se utente abilitato ad accesso privilegiato
if (false) // !!!FARE controllo livello accesso
{
Response.Redirect("Visite");
}
}
#endif
}
protected void grView_RowCommand(object sender, GridViewCommandEventArgs e)
{
// salvo il command argument...
lastCmd = e.CommandArgument.ToString();
}
}
}
@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MedPred.WebUserControls {
public partial class mod_elencoRichResetUtenti {
/// <summary>
/// grView control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.GridView grView;
/// <summary>
/// ods control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource ods;
}
}
@@ -0,0 +1,14 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_enrollByAuthKey.ascx.cs"
Inherits="MedPred.WebUserControls.mod_enrollByAuthKey" %>
<div data-collapsed="false" data-role="collapsible" data-iconpos="right" data-mini="true">
<h4>Registrazione da Auth Key</h4>
<asp:TextBox runat="server" ID="txtEmailAK" placeholder="Prego digitare indirizzo email" />
<asp:TextBox runat="server" ID="txtAuthKey" placeholder="Prego digitare auth key" TextMode="Password" />
<asp:Button runat="server" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus" ID="btnEnrollByAK" Text="Abilita Device Personale" data-theme="a" OnClick="btnEnrollByAK_Click" />
<asp:Label runat="server" ID="lblOutRegAuthKey" Text="..." Visible="false" ForeColor="Red" />
<div data-role="collapsible" data-iconpos="right" data-theme="a" data-content-theme="a">
<h3>Spiegazione</h3>
Questa funzione permette di inserire un devices tra quelli gestiti tramite digitazione della AuthKey personale (MD5 o meno se abilitato, da richiedere all'admin se non nota).
</div>
</div>
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
using MedPred_Data;
namespace MedPred.WebUserControls
{
public partial class mod_enrollByAuthKey : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// richiesta enroll device da chiave personale + email
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnEnrollByAK_Click(object sender, EventArgs e)
{
// controllo email & co...
string email = txtEmailAK.Text.Trim();
string authKey = txtAuthKey.Text.Trim();
if (email != "" && email.IndexOf("@") > 0)
{
// ora controllo che l'email SIA nell'elenco delle email degli utenti...
if (devicesAuthProxy.stObj.checkUserEmail(email))
{
// controllo se la authKey è corretta x utente...
if (devicesAuthProxy.stObj.checkUserEmailAK(email, authKey))
{
// rimando al jumper...
Response.Redirect(string.Format("jumper?UserAuthkey={0}&USER_NAME={1}", authKey, email));
}
else
{
lblOutRegAuthKey.Text = "Attenzione! auth key NON valida, prego contattare amministratore!";
lblOutRegAuthKey.Visible = true;
}
}
else
{
lblOutRegAuthKey.Text = "Attenzione! email non trovata, prego contattare amministratore!";
lblOutRegAuthKey.Visible = true;
}
}
else
{
lblOutRegAuthKey.Text = "Attenzione! preogo inserire email valida!";
lblOutRegAuthKey.Visible = true;
}
}
}
}
@@ -0,0 +1,51 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MedPred.WebUserControls {
public partial class mod_enrollByAuthKey {
/// <summary>
/// txtEmailAK control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtEmailAK;
/// <summary>
/// txtAuthKey control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtAuthKey;
/// <summary>
/// btnEnrollByAK control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnEnrollByAK;
/// <summary>
/// lblOutRegAuthKey control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblOutRegAuthKey;
}
}
@@ -0,0 +1,13 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_enrollByEmail.ascx.cs"
Inherits="MedPred.WebUserControls.mod_enrollByEmail" %>
<div data-role="collapsible" data-iconpos="right" data-mini="true" data-collapsed="false">
<h4>Richiesta Reset Chiave Personale</h4>
<asp:TextBox runat="server" ID="txtEmailReq" placeholder="Prego digitare indirizzo email" />
<asp:Button runat="server" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-plus" ID="btnReqNewKey" Text="Richiedi Nuova Chiave Personale" data-theme="a" OnClick="btnReqNewKey_Click" />
<asp:Label runat="server" ID="lblOutUnauth" Text="..." Visible="false" ForeColor="Red" />
<div data-role="collapsible" data-iconpos="right" data-theme="a" data-content-theme="a">
<h3>Spiegazione</h3>
Con questa procedura l'utente richiede il reset della propria chiave di autenticazione personale. L'amministratore della piattaforma valuterà e validata la richiesta annullerà le chiavi emesse per i devices eventualmente già autorizzati ed inoltrerà, all'indirizzo email dell'utente, la nuova chiave da utilizzare per abilitare i devices desiderati.
</div>
</div>
@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
using MedPred_Data;
namespace MedPred.WebUserControls
{
public partial class mod_enrollByEmail : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// richiesta reset dispositivi utente
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReqNewKey_Click(object sender, EventArgs e)
{
// controllo email & co...
string email = txtEmailReq.Text.Trim();
if (email != "" && email.IndexOf("@") > 0)
{
// ora controllo che l'email SIA nell'elenco delle email degli utenti...
if (devicesAuthProxy.stObj.checkUserEmail(email))
{
// registro richiesta reset ed invio email ad admin...
devicesAuthProxy.stObj.reqResetAuthKey(email, memLayer.ML.confReadString("adminEmail"));
lblOutUnauth.Text = "Richiesta inoltrata all'amministratore, attendere sua risposta alla casella email indicata.";
lblOutUnauth.Visible = true;
}
else
{
lblOutUnauth.Text = "Attenzione! email non trovata, prego contattare amministratore!";
lblOutUnauth.Visible = true;
}
}
else
{
lblOutUnauth.Text = "Attenzione! preogo inserire email valida!";
lblOutUnauth.Visible = true;
}
}
}
}
@@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MedPred.WebUserControls {
public partial class mod_enrollByEmail {
/// <summary>
/// txtEmailReq control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtEmailReq;
/// <summary>
/// btnReqNewKey control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnReqNewKey;
/// <summary>
/// lblOutUnauth control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblOutUnauth;
}
}
@@ -0,0 +1,2 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_enrollByJumperAuthKey.ascx.cs" Inherits="MedPred.WebUserControls.mod_enrollByJumperAuthKey" %>
<%--è una procedura automatica, niente elementi grafici!--%>
@@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
using MedPred_Data;
namespace MedPred.WebUserControls
{
public partial class mod_enrollByJumperAuthKey : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
// procedo alla ricerca di dati via sessione x User AuthKey
tryAutoEnroll();
}
/// <summary>
/// prova a fare auto enroll
/// </summary>
public void tryAutoEnroll()
{
// recupero dati da session
string UserAuthKey = "";
string email = "";
string userAgent = "";
bool fatto = false;
string DeviceName = "";
string IPv4 = "";
try
{
//UserAuthKey = memLayer.ML.StringSessionObj("UserAuthkey");
//email = memLayer.ML.StringSessionObj("email");
UserAuthKey = Request["UserAuthkey"];
email = Request["USER_NAME"];
userAgent = Request.UserAgent;
}
catch
{ }
// se ci sono i dati effettua tentativo di AutoEnroll del device
if (email != "" && UserAuthKey != "")
{
IPv4 = Request.UserHostAddress;
DeviceName = SteamWare.dnsUtils.ReverseLookup(IPv4);
//DeviceName = SteamWare.dnsUtils.DetermineCompName(IPv4); // WIN2012R2SAM
//DeviceName = Request.UserHostName; // ::1
// prova ad usare la chiave DECODIFICATA x autorizzare device
fatto = devicesAuthProxy.stObj.enrollDevice(devicesAuthProxy.decodeKey(UserAuthKey), IPv4, DeviceName, userAgent, email);
// se NON ce l'ha fatta ed è abilitata l'autenticazione "plain" cerca di eseguire anche quella...
if (memLayer.ML.confReadBool("enablePlain") && !fatto)
{
fatto = devicesAuthProxy.stObj.enrollDevice(UserAuthKey, IPv4, DeviceName, userAgent, email);
}
if (fatto)
{
Response.Redirect("Default");
}
else
{
Response.Redirect("UserAdmin");
}
}
}
}
}
@@ -0,0 +1,17 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MedPred.WebUserControls
{
public partial class mod_enrollByJumperAuthKey
{
}
}
@@ -0,0 +1,81 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_fileUpload.ascx.cs" Inherits="MedPred.WebUserControls.mod_fileUpload" %>
<div id="divNewEdit" runat="server">
<asp:Button ID="btnAdd" runat="server" Text="Nuovo Allegato" OnClick="btnAdd_Click" />
<asp:Button ID="btnCancel" runat="server" Text="Annulla" OnClick="btnCancel_Click" />
</div>
<div id="divFileUpl" runat="server">
<div style="width: 75%; float: left; padding: 4px;">
<asp:FileUpload ID="FileUpload1" runat="server" />
</div>
<div style="width: 23%; float: right; padding: 4px;">
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="Upload" />
</div>
</div>
<asp:GridView ID="grView" runat="server" Width="100%" AutoGenerateColumns="False" DataSourceID="odsFile" DataKeyNames="idxFile" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="Documento">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("FileName") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" runat="server" OnClick="DownloadFile"
CommandArgument='<%# Eval("idxFile") %>'>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("FileName") %>'></asp:Label>
</asp:LinkButton>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:BoundField DataField="DataMod" HeaderText="modificato" ItemStyle-HorizontalAlign="left">
<ItemStyle HorizontalAlign="Left"></ItemStyle>
</asp:BoundField>
<asp:BoundField DataField="Size" HeaderText="Size" DataFormatString="{0:N0} kb" ItemStyle-HorizontalAlign="Right">
<ItemStyle HorizontalAlign="Left"></ItemStyle>
</asp:BoundField>
<asp:TemplateField ItemStyle-HorizontalAlign="right">
<ItemTemplate>
<div id="Div1" runat="server" visible='<%# isWriteEnabled %>'>
<asp:LinkButton ID="lnkSelect" runat="server" CausesValidation="False" CommandName="Select" Text="Select" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-edit ui-btn-icon-notext ui-btn-inline" ToolTip="Modifica" />
<asp:LinkButton ID="lnkDelete" runat="server" CausesValidation="False" CommandName="Delete" Text="Delete" CssClass="ui-btn ui-shadow ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-inline" ToolTip="Elimina" OnClientClick="return confirm('Sei sicuro di voler eliminare il file?')" />
</div>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsFile" runat="server" DeleteMethod="DeleteQuery" InsertMethod="InsertQuery" OldValuesParameterFormatString="original_{0}" SelectMethod="getByPaziente" TypeName="MedPred_Data.DS_UtilityTableAdapters.tblFilesTableAdapter" UpdateMethod="UpdateQuery">
<SelectParameters>
<asp:SessionParameter Name="IdxPaziente" SessionField="IdxPaziente" Type="Int32" DefaultValue="0" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="Original_idxFile" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Gruppo" Type="String" />
<asp:SessionParameter Name="IdxPaziente" SessionField="IdxPaziente" Type="Int32" DefaultValue="0" />
<asp:Parameter Name="FileName" Type="String" />
<asp:Parameter Name="ContentType" Type="String" />
<asp:Parameter Name="Data" Type="Object" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Gruppo" Type="String" />
<asp:SessionParameter Name="IdxPaziente" SessionField="IdxPaziente" Type="Int32" DefaultValue="0" />
<asp:Parameter Name="FileName" Type="String" />
<asp:Parameter Name="ContentType" Type="String" />
<asp:Parameter Name="Data" Type="Object" />
<asp:Parameter Name="Original_idxFile" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>
@@ -0,0 +1,112 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using MedPred_Data;
using System.Text;
using SteamWare;
namespace MedPred.WebUserControls
{
public partial class mod_fileUpload : SteamWare.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
fisVisFU(false);
grView.DataBind();
}
divNewEdit.Visible = isWriteEnabled;
}
protected void Upload(object sender, EventArgs e)
{
string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
string contentType = FileUpload1.PostedFile.ContentType;
string gruppo = memLayer.ML.StringSessionObj("Gruppo");
int idxPaziente = memLayer.ML.IntSessionObj("IdxPaziente");
using (Stream fs = FileUpload1.PostedFile.InputStream)
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((Int32)fs.Length);
// controllo se sia caricamento o update...
if (grView.SelectedIndex != -1)
{
try
{
int orig_idxFile = Convert.ToInt32(grView.SelectedValue);
DtProxy.man.taFile.UpdateQuery(gruppo, idxPaziente, filename, contentType, bytes, orig_idxFile);
}
catch
{ }
}
else
{
DtProxy.man.taFile.InsertQuery(gruppo, idxPaziente, filename, contentType, bytes);
}
}
}
Response.Redirect(Request.Url.AbsoluteUri);
}
protected void DownloadFile(object sender, EventArgs e)
{
int idxFile = int.Parse((sender as LinkButton).CommandArgument);
byte[] bytes;
string fileName, contentType;
MedPred_Data.DS_Utility.tblFilesRow fileRow = DtProxy.man.taFile.getByKey(idxFile)[0];
bytes = fileRow.Data;
contentType = fileRow.ContentType;
fileName = fileRow.FileName;
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = contentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
// mostro controllo x edit...
fisVisFU(true);
btnUpload.Text = "Aggiorna File";
}
protected void btnAdd_Click(object sender, EventArgs e)
{
fisVisFU(true);
btnUpload.Text = "Carica Nuovo";
}
/// <summary>
/// fix visibilità controllo file upload
/// </summary>
/// <param name="showAdd">mostra controlli add=true oppure nasconde = false</param>
private void fisVisFU(bool showAdd)
{
divFileUpl.Visible = showAdd;
btnAdd.Visible = !showAdd;
btnCancel.Visible = showAdd;
if (grView.SelectedIndex != -1 && !showAdd)
{
grView.SelectedIndex = -1;
}
}
protected void btnCancel_Click(object sender, EventArgs e)
{
fisVisFU(false);
}
}
}
+87
View File
@@ -0,0 +1,87 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MedPred.WebUserControls {
public partial class mod_fileUpload {
/// <summary>
/// divNewEdit control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divNewEdit;
/// <summary>
/// btnAdd control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnAdd;
/// <summary>
/// btnCancel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnCancel;
/// <summary>
/// divFileUpl control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divFileUpl;
/// <summary>
/// FileUpload1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.FileUpload FileUpload1;
/// <summary>
/// btnUpload control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnUpload;
/// <summary>
/// grView control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.GridView grView;
/// <summary>
/// odsFile control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource odsFile;
}
}
+8
View File
@@ -0,0 +1,8 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_footer.ascx.cs" Inherits="MedPred.WebUserControls.mod_footer" %>
<div id="divFooterMenu" runat="server" data-role="navbar">
<ul>
<li><a href="Accettazione" data-icon="grid" class='<%: liClass("Accettazione") %>'>Accettazione</a></li>
<li><a href="Visite" data-icon="star" class='<%: liClass("Visite") %>'>Visite</a></li>
<li><a href="Attivita" data-icon="gear" class='<%: liClass("Attivita") %>'>Files</a></li>
</ul>
</div>
+57
View File
@@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
namespace MedPred.WebUserControls
{
public partial class mod_footer : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!memLayer.ML.isInSessionObject("USER_NAME"))
{
divFooterMenu.Visible = false;
}
}
/// <summary>
/// restituisce stato active se pagina corrente...
/// </summary>
/// <param name="nomeElem"></param>
/// <returns></returns>
public string liClass(object nomeElem)
{
string answ = "";
string nome = nomeElem.ToString();
if (Request.Url.ToString().Contains(nome)) answ = "ui-btn-active";
// se NON E' accettazione e non c'è paziente metto disabled...
if (!nome.Contains("Accettazione"))
{
if (!memLayer.ML.isInSessionObject("Paziente"))
{
answ += " ui-state-disabled";
}
}
return answ;
}
/// <summary>
/// stringa del paziente selezionato
/// </summary>
public bool hasPaziente
{
get
{
bool answ = false;
if (memLayer.ML.isInSessionObject("Paziente"))
{
answ = true;
}
return answ;
}
}
}
}
+24
View File
@@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MedPred.WebUserControls {
public partial class mod_footer {
/// <summary>
/// divFooterMenu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divFooterMenu;
}
}
+17
View File
@@ -0,0 +1,17 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_header.ascx.cs" Inherits="MedPred.WebUserControls.mod_header" %>
<asp:Timer ID="Timer1" runat="server"></asp:Timer>
<h1>MedPred - <%: titolo %></h1>
<a href="Default" data-icon="home" class="ui-btn-left">
<asp:Label ID="lblVers" runat="server" Font-Bold="false" /></a>
<a href="UserAdmin" data-icon="lock" class="ui-btn-right">User Admin</a>
<div id="headData">
<div style="float: right; font-size: 0.7em; font-weight: 100; margin-right: 4px;">
<%: CognomeNome %>
</div>
<div style="float: left; font-size: 0.7em; font-weight: 100; margin-left: 4px;">
<%: DateTime.Now.ToString("ddd dd/MM/yyyy HH:mm:ss") %>
</div>
<div style="text-align: center; font-size: 1.2em; font-weight: 100; color: #507CD1;">
<%: pazienteSel %>
</div>
</div>
+192
View File
@@ -0,0 +1,192 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MedPred_Data;
using SteamWare;
namespace MedPred.WebUserControls
{
public partial class mod_header : SteamWare.UserControl
{
/// <summary>
/// stringa del paziente selezionato
/// </summary>
public string pazienteSel
{
get
{
string answ = "-";
if (memLayer.ML.isInSessionObject("Paziente"))
{
answ = memLayer.ML.StringSessionObj("Paziente");
}
return answ;
}
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
// altri controlli
if (!Page.IsPostBack)
{
Timer1.Interval = memLayer.ML.confReadInt("intUpdatePagina_ms");
Page.Title = Request.Url.ToString();
// se ho cambiato pagina registro...)
if (devicesAuthProxy.pagPrecedente != titolo)
{
devicesAuthProxy.pagPrecedente = devicesAuthProxy.pagCorrente;
}
// salvo apgina corrente
devicesAuthProxy.pagCorrente = titolo; // devicesAuthProxy.getCurrPage(Request.Url);
// update valori
lblVers.Text = string.Format("v.{0}.{1}", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Major, System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Minor);
lblVers.ToolTip = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.MinorRevision.ToString();
}
// SOLO se la pagina NON E' "safe"...
if (memLayer.ML.confReadString("PageNoIndex").IndexOf(titolo) < 0)
{
bool userOk = checkUser();
bool pageOk = checkPageIsAuth();
// controllo se c'è utente in sessione..
if ((userOk))
{
// ora controllo pagina...
if (!pageOk)
{
if (devicesAuthProxy.stObj.isPageEnabled(devicesAuthProxy.pagPrecedente))
{
Response.Redirect(devicesAuthProxy.pagPrecedente);
}
else
{
Response.Redirect("Accettazione");
}
}
}
else
{
// rimando pagina x registrazione devices
Response.Redirect("UserAdmin");
}
}
}
/// <summary>
/// verifica che la pagina sia tra quelle autorizzate x l'utente
/// </summary>
/// <returns></returns>
private bool checkPageIsAuth()
{
bool allOk = false;
bool pageSafe = (memLayer.ML.confReadString("PageNoIndex").IndexOf(titolo)>=0);
bool pageAuth=devicesAuthProxy.stObj.isPageEnabled(titolo);
allOk = (pageSafe || pageAuth);
return allOk;
}
/// <summary>
/// verifica presenza utente autorizzato in sessione
/// </summary>
private bool checkUser()
{
bool allOk = devicesAuthProxy.stObj.isAuth;
if (!devicesAuthProxy.stObj.isAuth)
{
// controllo cookie device...
allOk = checkAuthCookieMedPred();
if (!allOk)
{
ResetUser();
}
}
return allOk;
}
/// <summary>
/// Restituisce cognome/nome da sessione...
/// </summary>
public string CognomeNome
{
get
{
string answ = "-";
try
{
answ = SteamWare.devicesAuthProxy.stObj.CognomeNome;
}
catch
{ }
return answ;
}
}
/// <summary>
/// verifica la presenza di un cookie VALIDO per autorizzare il device ed avvia utente...
/// </summary>
private bool checkAuthCookieMedPred()
{
bool answ = false;
try
{
HttpCookie cookie = Request.Cookies["AuthDevice"];
if (!(cookie == null || cookie.Value == ""))
{
// ricavo utente da cookie...
string userAgent = "";
string postazione_IP = "";
string devSecret = cookie.Value;
DS_Auth.AnagDevicesRow device = null;
// cerco il device...ogni dipendente può averne + di 1 registrato a suo nome...
string email = "";
try
{
device = devicesAuthProxy.stObj.taAnagDev.getByDeviceSecret(devSecret)[0];
email = device.USER_NAME;
}
catch
{ }
if (email != "")
{
// aggiorno descrizione (user agent) ed IP...
userAgent = Request.UserAgent;
postazione_IP = Request.UserHostAddress;
// controllo IP e DeviceDescription x eventuale update
if ((device.lastIPv4 != postazione_IP) || (device.Description != userAgent))
{
// salvo ultimo "contatto" del device aggiornando descrizione ed IP
devicesAuthProxy.stObj.taAnagDev.updateIP(device.IdxDevice, DateTime.Now, postazione_IP, userAgent);
}
// salvo in sessione utente
memLayer.ML.setSessionVal("email", email);
// avvio utente...
devicesAuthProxy.stObj.startUpUtente(email);
// salvo gruppo...
if (devicesAuthProxy.stObj.isAuth)
{
// se tutto ok
memLayer.ML.setSessionVal("Gruppo", devicesAuthProxy.stObj.rigaUtente.CodGruppo);
answ = true;
}
}
}
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in checkAuthCookie:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
}
return answ;
}
private void ResetUser()
{
devicesAuthProxy.stObj.clearAllUserData();
// svuoto cookie...
memLayer.ML.setCookieVal("AuthDevice", "");
memLayer.ML.emptyCookieVal("AuthDevice");
}
}
}
+33
View File
@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MedPred.WebUserControls {
public partial class mod_header {
/// <summary>
/// Timer1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.Timer Timer1;
/// <summary>
/// lblVers control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblVers;
}
}
@@ -0,0 +1,4 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_reportVisita.ascx.cs" Inherits="MedPred.WebUserControls.mod_reportVisita" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<rsweb:ReportViewer ID="RepVisita" runat="server" Font-Names="Verdana" Font-Size="8pt" Width="100%" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" SizeToReportContent="false" Height="400px">
</rsweb:ReportViewer>
@@ -0,0 +1,83 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Reporting.WebForms;
using System.Data;
using SteamWare;
using MedPred_Data;
namespace MedPred.WebUserControls
{
public partial class mod_reportVisita : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// collego il report...
fixReport();
}
}
/// <summary>
/// sistema dati x report
/// </summary>
public void fixReport()
{
RepVisita.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local;
LocalReport localReport = RepVisita.LocalReport;
localReport.EnableExternalImages = true;
// 0) recupero la richiesta di data...
DateTime DataVisita = DateTime.Now;
try
{
DataVisita = Convert.ToDateTime(Request.QueryString["DataVisita"]);
}
catch
{ }
// 1) impostazione file report
localReport.ReportPath = @".\Reports\ReportVisita.rdlc";
// 2) caricamento tab dati
DataTable tabRepVis = new DataTable();
tabRepVis = (DataTable)DtProxy.man.taRepVis.GetData(memLayer.ML.IntSessionObj("IdxPaziente"), DataVisita);
// 3) inserimento dataset nel report
localReport.DataSources.Clear();
localReport.DataSources.Add(new ReportDataSource("dsValue", tabRepVis));
// 4) aggiungo parametro
ReportParameter filtroPag;
if (userIsMedicoRef)
{
filtroPag = new ReportParameter("PrintPage", "0");
}
else
{
filtroPag = new ReportParameter("PrintPage", "1");
}
localReport.SetParameters(filtroPag);
}
/// <summary>
/// determina se utente sia MEDICO REFERTANTE o meno da diritti user
/// </summary>
public bool userIsMedicoRef
{
get
{
bool answ = false;
try
{
answ = devicesAuthProxy.stObj.userHasRight("MedicoRef");
}
catch
{ }
return answ;
}
}
}
}
+24
View File
@@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MedPred.WebUserControls {
public partial class mod_reportVisita {
/// <summary>
/// RepVisita control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::Microsoft.Reporting.WebForms.ReportViewer RepVisita;
}
}