Completata vers 0.9.80 con insert tags e isRed
This commit is contained in:
@@ -132,5 +132,9 @@ namespace ETS_WS
|
||||
/// boolean: comunicazioen RED (riservata)
|
||||
/// </summary>
|
||||
public bool isRed;
|
||||
/// <summary>
|
||||
/// elenco tags
|
||||
/// </summary>
|
||||
public List<string> tags;
|
||||
}
|
||||
}
|
||||
@@ -76,7 +76,7 @@
|
||||
<div class="clearDiv">
|
||||
<div class="divSx" style="background-color: #999; width: 100%; color: White; vertical-align: middle; padding: -2px; margin-top: 8px; font-size: 9pt;">
|
||||
<asp:Label runat="server" ID="Label1" Text="Etichette documento" CssClass="labelInput" /><br />
|
||||
<asp:CheckBoxList ID="cblTags" runat="server" DataSourceID="odsTags" DataTextField="tag" DataValueField="idxTag" RepeatLayout="Flow" TabIndex="11" RepeatColumns="1">
|
||||
<asp:CheckBoxList ID="cblTags" runat="server" DataSourceID="odsTags" DataTextField="tag" DataValueField="idxTag" RepeatLayout="Flow" TabIndex="11" RepeatColumns="1" AutoPostBack="True" OnSelectedIndexChanged="cblTags_SelectedIndexChanged">
|
||||
</asp:CheckBoxList>
|
||||
<asp:ObjectDataSource ID="odsTags" runat="server" OldValuesParameterFormatString="Original_{0}" SelectMethod="GetData" TypeName="ETS_Data.DS_WebScipTableAdapters.AnagTagsTableAdapter"></asp:ObjectDataSource>
|
||||
</div>
|
||||
|
||||
@@ -151,14 +151,6 @@ namespace ETS_WS.WebUserControls
|
||||
{
|
||||
docMetaDataSet answ = new docMetaDataSet();
|
||||
// popolo!
|
||||
answ.commessa = utils.cleanPathName(tacCommesse.valore);
|
||||
answ.fase = utils.cleanPathName(tacFasi.label);
|
||||
answ.fonte = utils.cleanPathName(tacFonti.label);
|
||||
answ.oggetto = utils.cleanPathName(txtOggetto.Text);
|
||||
answ.dataDoc = Convert.ToDateTime(txtDataDoc.Text);
|
||||
answ.dataRic = Convert.ToDateTime(txtDataRic.Text);
|
||||
answ.isRed = chkIsRed.Checked;
|
||||
answ.InOut = rblInOut.SelectedValue;
|
||||
try
|
||||
{
|
||||
answ.reqProto = Convert.ToBoolean(rblInOut.SelectedValue);
|
||||
@@ -167,6 +159,24 @@ namespace ETS_WS.WebUserControls
|
||||
{
|
||||
answ.reqProto = false;
|
||||
}
|
||||
answ.InOut = rblInOut.SelectedValue;
|
||||
answ.commessa = utils.cleanPathName(tacCommesse.valore);
|
||||
answ.fase = utils.cleanPathName(tacFasi.label);
|
||||
answ.fonte = utils.cleanPathName(tacFonti.label);
|
||||
answ.oggetto = utils.cleanPathName(txtOggetto.Text);
|
||||
answ.dataDoc = Convert.ToDateTime(txtDataDoc.Text);
|
||||
answ.dataRic = Convert.ToDateTime(txtDataRic.Text);
|
||||
// salvo i tags...
|
||||
List<string> tags = new List<string>();
|
||||
foreach (ListItem tag in cblTags.Items)
|
||||
{
|
||||
if (tag.Selected)
|
||||
{
|
||||
tags.Add(tag.Value);
|
||||
}
|
||||
}
|
||||
answ.tags = tags;
|
||||
answ.isRed = chkIsRed.Checked;
|
||||
answ.path = WebShipUtils.mng.path(answ);
|
||||
return answ;
|
||||
}
|
||||
@@ -205,7 +215,15 @@ namespace ETS_WS.WebUserControls
|
||||
/// <param name="e"></param>
|
||||
protected void chkIsRed_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
// aggiorno
|
||||
updateVisual();
|
||||
}
|
||||
/// <summary>
|
||||
/// update dei tags selezionati
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void cblTags_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
updateVisual();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,7 +227,25 @@ namespace ETS_WS.WebUserControls
|
||||
catch
|
||||
{ }
|
||||
// salvo su db le info del file...
|
||||
utils.obj.taDoc.insertQuery(nomeFile, path, utils.obj.currUserAD, docsData.reqProto, docsData.dataRic, docsData.dataDoc, numComm, annoComm, docsData.fase, docsData.fonte, docsData.oggetto, docsData.InOut, autore, redattore);
|
||||
int? newIdxFile = 0;
|
||||
utils.obj.taDoc.insertQuery(nomeFile, path, utils.obj.currUserAD, docsData.reqProto, docsData.dataRic, docsData.dataDoc, numComm, annoComm, docsData.fase, docsData.fonte, docsData.oggetto, docsData.InOut, autore, redattore, docsData.isRed, ref newIdxFile);
|
||||
// salvo i tags!
|
||||
if (newIdxFile > 0)
|
||||
{
|
||||
// se ho tags...
|
||||
if (docsData.tags.Count > 0)
|
||||
{
|
||||
foreach (string tag in docsData.tags)
|
||||
{
|
||||
try
|
||||
{
|
||||
utils.obj.taTags2Doc.Insert((int)newIdxFile, Convert.ToInt32(tag));
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
}
|
||||
}
|
||||
// sposto il file!
|
||||
fileMover.obj.muoviFile(UserTempPath, path, nomeFile);
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Generated
+883
-35
File diff suppressed because it is too large
Load Diff
@@ -429,6 +429,8 @@ SELECT idxFile, Nome, fullPath, userId, NrProtocollo, Numero, Anno, DataRic, Dat
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="nvarchar" DbType="String" Direction="Input" ParameterName="@InOut" Precision="0" ProviderType="NVarChar" Scale="0" Size="3" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="nvarchar" DbType="String" Direction="Input" ParameterName="@Autore" Precision="0" ProviderType="NVarChar" Scale="0" Size="50" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="nvarchar" DbType="String" Direction="Input" ParameterName="@Redattore" Precision="0" ProviderType="NVarChar" Scale="0" Size="50" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@isRed" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="InputOutput" ParameterName="@newIdxFile" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
@@ -595,6 +597,54 @@ SELECT idxTag, tag FROM AnagTags WHERE (idxTag = @idxTag)</CommandText>
|
||||
</DbSource>
|
||||
</Sources>
|
||||
</TableAdapter>
|
||||
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="Tags2DocTableAdapter" GeneratorDataComponentClassName="Tags2DocTableAdapter" Name="Tags2Doc" UserDataComponentName="Tags2DocTableAdapter">
|
||||
<MainSource>
|
||||
<DbSource ConnectionRef="ETS_WSConnectionString (Settings)" DbObjectName="ETS_WS.dbo.Tags2Doc" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
|
||||
<DeleteCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>DELETE FROM [dbo].[Tags2Doc] WHERE (([idxFile] = @Original_idxFile) AND ([idxTag] = @Original_idxTag))</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idxFile" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idxFile" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idxTag" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idxTag" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</DeleteCommand>
|
||||
<InsertCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>INSERT INTO [dbo].[Tags2Doc] ([idxFile], [idxTag]) VALUES (@idxFile, @idxTag);
|
||||
SELECT idxFile, idxTag FROM Tags2Doc WHERE (idxFile = @idxFile) AND (idxTag = @idxTag)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@idxFile" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idxFile" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@idxTag" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idxTag" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</InsertCommand>
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>SELECT idxFile, idxTag FROM dbo.Tags2Doc</CommandText>
|
||||
<Parameters />
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
<UpdateCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>UPDATE [dbo].[Tags2Doc] SET [idxFile] = @idxFile, [idxTag] = @idxTag WHERE (([idxFile] = @Original_idxFile) AND ([idxTag] = @Original_idxTag));
|
||||
SELECT idxFile, idxTag FROM Tags2Doc WHERE (idxFile = @idxFile) AND (idxTag = @idxTag)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@idxFile" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idxFile" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@idxTag" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idxTag" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idxFile" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idxFile" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idxTag" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idxTag" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</UpdateCommand>
|
||||
</DbSource>
|
||||
</MainSource>
|
||||
<Mappings>
|
||||
<Mapping SourceColumn="idxFile" DataSetColumn="idxFile" />
|
||||
<Mapping SourceColumn="idxTag" DataSetColumn="idxTag" />
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
</Tables>
|
||||
<Sources />
|
||||
</DataSource>
|
||||
@@ -877,6 +927,14 @@ SELECT idxTag, tag FROM AnagTags WHERE (idxTag = @idxTag)</CommandText>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Tags2Doc" msprop:Generator_TableClassName="Tags2DocDataTable" msprop:Generator_TableVarName="tableTags2Doc" msprop:Generator_RowChangedName="Tags2DocRowChanged" msprop:Generator_TablePropName="Tags2Doc" msprop:Generator_RowDeletingName="Tags2DocRowDeleting" msprop:Generator_RowChangingName="Tags2DocRowChanging" msprop:Generator_RowEvHandlerName="Tags2DocRowChangeEventHandler" msprop:Generator_RowDeletedName="Tags2DocRowDeleted" msprop:Generator_RowClassName="Tags2DocRow" msprop:Generator_UserTableName="Tags2Doc" msprop:Generator_RowEvArgName="Tags2DocRowChangeEvent">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="idxFile" msprop:Generator_ColumnVarNameInTable="columnidxFile" msprop:Generator_ColumnPropNameInRow="idxFile" msprop:Generator_ColumnPropNameInTable="idxFileColumn" msprop:Generator_UserColumnName="idxFile" type="xs:int" />
|
||||
<xs:element name="idxTag" msprop:Generator_ColumnVarNameInTable="columnidxTag" msprop:Generator_ColumnPropNameInRow="idxTag" msprop:Generator_ColumnPropNameInTable="idxTagColumn" msprop:Generator_UserColumnName="idxTag" type="xs:int" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
|
||||
@@ -895,5 +953,16 @@ SELECT idxTag, tag FROM AnagTags WHERE (idxTag = @idxTag)</CommandText>
|
||||
<xs:selector xpath=".//mstns:AnagTags" />
|
||||
<xs:field xpath="mstns:idxTag" />
|
||||
</xs:unique>
|
||||
<xs:unique name="Tags2Doc_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
|
||||
<xs:selector xpath=".//mstns:Tags2Doc" />
|
||||
<xs:field xpath="mstns:idxFile" />
|
||||
<xs:field xpath="mstns:idxTag" />
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
<xs:annotation>
|
||||
<xs:appinfo>
|
||||
<msdata:Relationship name="FK_Tags2Doc_AnagTags" msdata:parent="AnagTags" msdata:child="Tags2Doc" msdata:parentkey="idxTag" msdata:childkey="idxTag" msprop:Generator_UserChildTable="Tags2Doc" msprop:Generator_ChildPropName="GetTags2DocRows" msprop:Generator_UserRelationName="FK_Tags2Doc_AnagTags" msprop:Generator_RelationVarName="relationFK_Tags2Doc_AnagTags" msprop:Generator_UserParentTable="AnagTags" msprop:Generator_ParentPropName="AnagTagsRow" />
|
||||
<msdata:Relationship name="FK_Tags2Doc_tbDocumenti" msdata:parent="tbDocumenti" msdata:child="Tags2Doc" msdata:parentkey="idxFile" msdata:childkey="idxFile" msprop:Generator_UserChildTable="Tags2Doc" msprop:Generator_ChildPropName="GetTags2DocRows" msprop:Generator_UserRelationName="FK_Tags2Doc_tbDocumenti" msprop:Generator_RelationVarName="relationFK_Tags2Doc_tbDocumenti" msprop:Generator_UserParentTable="tbDocumenti" msprop:Generator_ParentPropName="tbDocumentiRow" />
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
</xs:schema>
|
||||
+31
-5
@@ -4,12 +4,38 @@
|
||||
Changes to this file may cause incorrect behavior and will be lost if
|
||||
the code is regenerated.
|
||||
</autogenerated>-->
|
||||
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-10" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-47" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<Shapes>
|
||||
<Shape ID="DesignTable:tmpFileUt" ZOrder="4" X="70" Y="70" Height="305" Width="202" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:tmpFileUt" ZOrder="7" X="70" Y="70" Height="305" Width="202" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:tbDocumenti" ZOrder="1" X="342" Y="70" Height="704" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="558" />
|
||||
<Shape ID="DesignTable:AnagFasi" ZOrder="3" X="1040" Y="130" Height="191" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:AnagTags" ZOrder="2" X="795" Y="100" Height="154" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:AnagFasi" ZOrder="6" X="1040" Y="130" Height="191" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:AnagTags" ZOrder="5" X="795" Y="100" Height="154" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:Tags2Doc" ZOrder="4" X="736" Y="345" Height="129" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="78" />
|
||||
</Shapes>
|
||||
<Connectors />
|
||||
<Connectors>
|
||||
<Connector ID="DesignRelation:FK_Tags2Doc_AnagTags" ZOrder="3" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>844</X>
|
||||
<Y>254</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>844</X>
|
||||
<Y>345</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:FK_Tags2Doc_tbDocumenti" ZOrder="2" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>642</X>
|
||||
<Y>459</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>736</X>
|
||||
<Y>459</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
</Connectors>
|
||||
</DiagramLayout>
|
||||
+6
-3
@@ -24,6 +24,7 @@ namespace ETS_Data
|
||||
public DS_utilsTableAdapters.stp_calcolaProtocolloTableAdapter taCalcProto;
|
||||
|
||||
public DS_WebScipTableAdapters.tbDocumentiTableAdapter taDoc;
|
||||
public DS_WebScipTableAdapters.Tags2DocTableAdapter taTags2Doc;
|
||||
|
||||
|
||||
/// <summary>
|
||||
@@ -40,8 +41,9 @@ namespace ETS_Data
|
||||
taTDSelCommesse = new DS_utilsTableAdapters.v_tbDocs_selCommesseTableAdapter();
|
||||
taTDSelFasi = new DS_utilsTableAdapters.v_tbDocs_selFasiTableAdapter();
|
||||
taTDSelOggetti = new DS_utilsTableAdapters.v_tbDocs_selOggettoTableAdapter();
|
||||
taDoc = new DS_WebScipTableAdapters.tbDocumentiTableAdapter();
|
||||
taCalcProto = new DS_utilsTableAdapters.stp_calcolaProtocolloTableAdapter();
|
||||
taDoc = new DS_WebScipTableAdapters.tbDocumentiTableAdapter();
|
||||
taTags2Doc = new DS_WebScipTableAdapters.Tags2DocTableAdapter();
|
||||
}
|
||||
/// <summary>
|
||||
/// effettua setup dei connection strings da web.config delal singola applicazione
|
||||
@@ -61,8 +63,9 @@ namespace ETS_Data
|
||||
taTDSelCommesse.Connection.ConnectionString = connStringETS_WS;
|
||||
taTDSelFasi.Connection.ConnectionString = connStringETS_WS;
|
||||
taTDSelOggetti.Connection.ConnectionString = connStringETS_WS;
|
||||
taDoc.Connection.ConnectionString = connStringETS_WS;
|
||||
taCalcProto.Connection.ConnectionString = connStringETS_WS;
|
||||
taDoc.Connection.ConnectionString = connStringETS_WS;
|
||||
taTags2Doc.Connection.ConnectionString = connStringETS_WS;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -350,7 +353,7 @@ namespace ETS_Data
|
||||
|
||||
#endregion
|
||||
|
||||
#region area vaire
|
||||
#region area varie
|
||||
|
||||
/// <summary>
|
||||
/// ripulisce la stringa da eventuali caratteri non ammessi quali
|
||||
|
||||
Reference in New Issue
Block a user