Update 20231515
This commit is contained in:
@@ -1,150 +1,153 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BlazorApp.Models;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace BlazorApp
|
||||
{
|
||||
public class MenuService
|
||||
{
|
||||
|
||||
MenuItem[] CompanyMenu = new[] {
|
||||
new MenuItem()
|
||||
{ Name = "Home", Path = "/", Icon = "home" },
|
||||
new MenuItem()
|
||||
{ Name = "Dashboard", Path = "/Company/Dashboard", Icon = "dashboard" },
|
||||
new MenuItem()
|
||||
{ Name = "Firmen-Daten", Path = "/Company/Company", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{ Name = "Ansprechpartner", Path = "/Company/CompanyContact", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{ Name = "Berufsangebot", Path = "/Company/Berufsangebot", Icon = "account_balance" },
|
||||
//new MenuItem()
|
||||
//{ Name = "Auswertungen",Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Auswertungen",Icon="Home",
|
||||
Children = new []
|
||||
{
|
||||
new MenuItem() {Name="Firmen/Angebot",Path = "/Reporting/Reporting/1"},
|
||||
new MenuItem() {Name="Dokumente",Path = "/Reporting/Reprots/ReportNr=2"},
|
||||
},
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
MenuItem[] TeacherMenu = new[] {
|
||||
new MenuItem()
|
||||
{ Name = "Home", Path = "/", Icon = "home" },
|
||||
new MenuItem()
|
||||
{ Name = "Dashboard", Path = "/Teacher/Dashboard", Icon = "dashboard" },
|
||||
new MenuItem()
|
||||
{ Name = "Stammdaten", Path = "/Teacher/TeacherContact", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{ Name = "Schüler/Berufswunsch", Path = "/Teacher/TeacherStudent", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Auswertungen",Icon="Home",
|
||||
Children = new []
|
||||
{
|
||||
new MenuItem() {Name="Firmen/Angebot",Path = "/Reporting/Reporting/1"},
|
||||
new MenuItem() {Name="Dokumente",Path = "/Reporting/Reprots/ReportNr=2"},
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
MenuItem[] AdminMenu = new[] {
|
||||
new MenuItem()
|
||||
{ Name = "Home", Path = "/", Icon = "home" },
|
||||
new MenuItem()
|
||||
{ Name = "Dashboard", Path = "/Admin/Dashboard", Icon = "dashboard" },
|
||||
new MenuItem()
|
||||
{ Name = "Firmen", Path = "/Admin/Company/Company", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{ Name = "Lehrer", Path = "/Admin/Teacher/Teacher", Icon = "face" },
|
||||
|
||||
new MenuItem()
|
||||
{ Name = "Schüler", Path = "/Admin/Student/Student", Icon = "accessibility" },
|
||||
new MenuItem()
|
||||
{ Name = "Zuteilung", Path = "/Admin/Zuteilung/Zuteilung", Icon = "grade" },
|
||||
new MenuItem()
|
||||
{ Name = "Auswertungen", Path = "/Admin/Reporting", Icon = "list" },
|
||||
|
||||
new MenuItem()
|
||||
{ Name = "Administration", Icon="build",
|
||||
Children = new [] {
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Stammdaten",Icon="Home",
|
||||
Children = new []
|
||||
{
|
||||
new MenuItem() {Name="Einstellungen",Path = "Admin/Optionen/OptionenList"},
|
||||
new MenuItem() {Name="Benutzer",Path = "Admin/AspNetUsers/AspNetUserRolleList"},
|
||||
new MenuItem() {Name="Berufe",Path = "Admin/Beruf/BerufList"},
|
||||
new MenuItem() {Name="Zeiten",Path = "Admin/Zeiten/ZeitenList"},
|
||||
new MenuItem() {Name="Schulhaus",Path = "Admin/Schulhaus/Schulhauslist"},
|
||||
new MenuItem() {Name="Lehrer",Path = "Admin/Teacher/Teacher"},
|
||||
new MenuItem() {Name="Klassen",Path = "Admin/Klassen"},
|
||||
new MenuItem() {Name="Klassentyp",Path = "Admin/Klassentyp/Klassentyplist"},
|
||||
new MenuItem() {Name="Zugehörigkeit",Path = "Admin/Zugehörigkeit"},
|
||||
new MenuItem() {Name="Anrede",Path = "Admin/Anrede/AnredeList"},
|
||||
},
|
||||
},
|
||||
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Auswertungen",Icon="Home",
|
||||
Children = new []
|
||||
{
|
||||
new MenuItem() {Name="Definition",Path = "Admin/Reporting/Defintion"},
|
||||
new MenuItem() {Name="Dokumente",Path = "Admin/Reporting/Dokumente"},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Schulhaus",
|
||||
Path = "User/Userlist"
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public IEnumerable<MenuItem> MenuComapny
|
||||
{
|
||||
get
|
||||
{
|
||||
return CompanyMenu;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<MenuItem> MenuTeacher
|
||||
{
|
||||
get
|
||||
{
|
||||
return TeacherMenu;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<MenuItem> MenuAdmin
|
||||
{
|
||||
get
|
||||
{
|
||||
return AdminMenu;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BlazorApp.Models;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace BlazorApp
|
||||
{
|
||||
public class MenuService
|
||||
{
|
||||
|
||||
MenuItem[] CompanyMenu = new[] {
|
||||
new MenuItem()
|
||||
{ Name = "Home", Path = "/", Icon = "home" },
|
||||
new MenuItem()
|
||||
{ Name = "Dashboard", Path = "/Company/Dashboard", Icon = "dashboard" },
|
||||
new MenuItem()
|
||||
{ Name = "Firmen-Daten", Path = "/Company/Company", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{ Name = "Ansprechpartner", Path = "/Company/CompanyContact", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{ Name = "Berufsangebot", Path = "/Company/Berufsangebot", Icon = "account_balance" },
|
||||
//new MenuItem()
|
||||
//{ Name = "Auswertungen",Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Auswertungen",Icon="Home",
|
||||
Children = new []
|
||||
{
|
||||
new MenuItem() {Name="Firmen/Angebot",Path = "/Reporting/Reporting/1"},
|
||||
new MenuItem() {Name="Dokumente",Path = "/Reporting/Reprots/ReportNr=2"},
|
||||
},
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
MenuItem[] TeacherMenu = new[] {
|
||||
new MenuItem()
|
||||
{ Name = "Home", Path = "/", Icon = "home" },
|
||||
new MenuItem()
|
||||
{ Name = "Dashboard", Path = "/Teacher/Dashboard", Icon = "dashboard" },
|
||||
new MenuItem()
|
||||
{ Name = "Stammdaten", Path = "/Teacher/TeacherContact", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{ Name = "Schüler/Berufswunsch", Path = "/Teacher/TeacherStudent", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Auswertungen",Icon="Home",
|
||||
Children = new []
|
||||
{
|
||||
new MenuItem() {Name="Firmen/Angebot",Path = "/Reporting/Reporting/1"},
|
||||
new MenuItem() {Name="Dokumente",Path = "/Reporting/Reprots/ReportNr=2"},
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
MenuItem[] AdminMenu = new[] {
|
||||
new MenuItem()
|
||||
{ Name = "Home", Path = "/Admin/Dashboard", Icon = "home" },
|
||||
new MenuItem()
|
||||
{ Name = "Dashboard", Path = "/Admin/Dashboard", Icon = "dashboard" },
|
||||
new MenuItem()
|
||||
{ Name = "Firmen", Path = "/Admin/Company/Company", Icon = "account_balance" },
|
||||
new MenuItem()
|
||||
{ Name = "Lehrer", Path = "/Admin/Teacher/Teacher", Icon = "face" },
|
||||
|
||||
new MenuItem()
|
||||
{ Name = "Schüler", Path = "/Admin/Student/Student", Icon = "accessibility" },
|
||||
//new MenuItem()
|
||||
// { Name = "Schülera", Path = "/Admin/Student/Student_sik", Icon = "accessibility" },
|
||||
new MenuItem()
|
||||
{ Name = "Zuteilung", Path = "/Admin/Zuteilung/Zuteilung", Icon = "grade" },
|
||||
new MenuItem()
|
||||
{ Name = "Auswertungen", Path = "/Admin/Reporting", Icon = "list" },
|
||||
|
||||
new MenuItem()
|
||||
{ Name = "Administration", Icon="build",
|
||||
Children = new [] {
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Stammdaten",Icon="Home",
|
||||
Children = new []
|
||||
{
|
||||
new MenuItem() {Name="Einstellungen",Path = "Admin/Optionen/OptionenList"},
|
||||
new MenuItem() {Name="Benutzer",Path = "Admin/AspNetUsers/AspNetUserRolleList"},
|
||||
new MenuItem() {Name="Berufe",Path = "Admin/Beruf/BerufList"},
|
||||
new MenuItem() {Name="Zeiten",Path = "Admin/Zeiten/ZeitenList"},
|
||||
new MenuItem() {Name="Schulhaus",Path = "Admin/Schulhaus/Schulhauslist"},
|
||||
new MenuItem() {Name="Lehrer",Path = "Admin/Teacher/Teacher"},
|
||||
new MenuItem() {Name="Klassen",Path = "Admin/Klassen"},
|
||||
new MenuItem() {Name="Klassentyp",Path = "Admin/Klassentyp/Klassentyplist"},
|
||||
new MenuItem() {Name="Zugehörigkeit",Path = "Admin/Zugehörigkeit"},
|
||||
new MenuItem() {Name="Anrede",Path = "Admin/Anrede/AnredeList"},
|
||||
},
|
||||
},
|
||||
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Auswertungen",Icon="Home",
|
||||
Children = new []
|
||||
{
|
||||
new MenuItem() {Name="Definition",Path = "Admin/Reporting/Defintion"},
|
||||
new MenuItem() {Name="Dokumente",Path = "Admin/Reporting/Dokumente"},
|
||||
new MenuItem() {Name="Berufliste",Path = "Reporting/Reporting/2"},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
new MenuItem()
|
||||
{
|
||||
Name = "Schulhaus",
|
||||
Path = "Admin/User/Userlist"
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public IEnumerable<MenuItem> MenuComapny
|
||||
{
|
||||
get
|
||||
{
|
||||
return CompanyMenu;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<MenuItem> MenuTeacher
|
||||
{
|
||||
get
|
||||
{
|
||||
return TeacherMenu;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<MenuItem> MenuAdmin
|
||||
{
|
||||
get
|
||||
{
|
||||
return AdminMenu;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,321 +1,355 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BlazorApp.Helper
|
||||
{
|
||||
public class dbhelper
|
||||
{
|
||||
//SqlConnection con;
|
||||
string connectionstring;
|
||||
public DataSet dsdaten = new DataSet();
|
||||
private static DataTable SP_Parameters = new DataTable();
|
||||
private SqlDataAdapter dadaten;
|
||||
public dbhelper()
|
||||
{
|
||||
var configuation = GetConfiguration();
|
||||
connectionstring = configuation.GetSection("ConnectionStrings").GetSection("BlazorAppContextConnection").Value;
|
||||
SP_Parameters.Rows.Clear();
|
||||
SP_Parameters.Columns.Clear();
|
||||
SP_Parameters.Columns.Add("Paramname");
|
||||
SP_Parameters.Columns.Add("Paramvalue");
|
||||
}
|
||||
|
||||
public string Get_Option(int ID)
|
||||
{
|
||||
try
|
||||
{
|
||||
SqlDataAdapter dad = new SqlDataAdapter();
|
||||
|
||||
|
||||
string sql = "Select Inhalt from optionen where id=" + ID.ToString() ;
|
||||
DataTable data = new DataTable();
|
||||
|
||||
dad = new SqlDataAdapter(sql, this.connectionstring);
|
||||
|
||||
dad.Fill(data);
|
||||
string s;
|
||||
s = data.Rows[0][0].ToString();
|
||||
return s;
|
||||
dad.Dispose();
|
||||
data.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
int a = 1;
|
||||
return "";
|
||||
}
|
||||
}
|
||||
public void add_sp_param(string paramname, string paramvalue)
|
||||
{
|
||||
DataRow r = SP_Parameters.NewRow();
|
||||
r[0] = paramname;
|
||||
r[1] = paramvalue;
|
||||
SP_Parameters.Rows.Add(r);
|
||||
|
||||
}
|
||||
|
||||
public static DataTable ObjectToDataTable(object o)
|
||||
{
|
||||
DataTable dt = new DataTable();
|
||||
List<PropertyInfo> properties = o.GetType().GetProperties().ToList();
|
||||
|
||||
foreach (PropertyInfo prop in properties)
|
||||
|
||||
dt.Columns.Add(prop.Name, prop.PropertyType);
|
||||
|
||||
dt.TableName = o.GetType().Name;
|
||||
|
||||
return dt;
|
||||
}
|
||||
public IConfigurationRoot GetConfiguration()
|
||||
{
|
||||
var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
|
||||
return builder.Build();
|
||||
}
|
||||
|
||||
public DataTable Get_Tabledata(string Tablename, bool StoredProc = false, bool is_SQL_String = false, DataTable sp_params = null )
|
||||
{
|
||||
SqlConnection sqlconnect = new SqlConnection();
|
||||
DataSet ds = new DataSet();
|
||||
ds.Tables.Clear();
|
||||
sqlconnect.ConnectionString = this.connectionstring;
|
||||
sqlconnect.Open();
|
||||
SqlDataAdapter da = new SqlDataAdapter("", sqlconnect);
|
||||
SqlCommand sqlcmd = new SqlCommand();
|
||||
sqlcmd.Connection = sqlconnect;
|
||||
|
||||
|
||||
|
||||
if (StoredProc == true)
|
||||
{
|
||||
sqlcmd.CommandType = CommandType.StoredProcedure;
|
||||
if (Tablename.IndexOf("@@Mandantnr@@") > 0)
|
||||
Tablename = Tablename.Replace("@@Mandantnr@@", "");
|
||||
sqlcmd.CommandText = Tablename;
|
||||
foreach (DataRow r in SP_Parameters.Rows)
|
||||
{
|
||||
sqlcmd.Parameters.Add(r["Paramname"].ToString(), SqlDbType.VarChar);
|
||||
sqlcmd.Parameters[sqlcmd.Parameters.Count - 1].Value = r["Paramvalue"].ToString();
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
sqlcmd.CommandType = CommandType.Text;
|
||||
sqlcmd.CommandText = "Select * from " + Tablename;
|
||||
}
|
||||
if (is_SQL_String == true)
|
||||
sqlcmd.CommandText = Tablename;
|
||||
da.SelectCommand = sqlcmd;
|
||||
da.Fill(dsdaten, "Daten");
|
||||
sqlconnect.Close();
|
||||
|
||||
return dsdaten.Tables[0];
|
||||
}
|
||||
|
||||
|
||||
public void Get_Tabeldata_for_Update(string Tablename, bool StoredProc = false, bool is_SQL_String = false)
|
||||
{
|
||||
dsdaten.Clear();
|
||||
dsdaten.Tables.Clear();
|
||||
dadaten = new SqlDataAdapter(Tablename, this.connectionstring);
|
||||
dadaten.Fill(dsdaten, Tablename);
|
||||
}
|
||||
public void Update_Tabeldata()
|
||||
{
|
||||
SqlCommandBuilder cb = new SqlCommandBuilder(dadaten);
|
||||
dadaten.Update(dsdaten, dsdaten.Tables[0].TableName);
|
||||
}
|
||||
|
||||
public Dictionary<string, List<object>> DatatableToDictionary(DataTable dataTable)
|
||||
{
|
||||
var dict = new Dictionary<string, List<object>>();
|
||||
foreach (DataColumn dataColumn in dataTable.Columns)
|
||||
{
|
||||
var columnValueList = new List<object>();
|
||||
|
||||
foreach (DataRow dataRow in dataTable.Rows)
|
||||
{
|
||||
columnValueList.Add(dataRow[dataColumn.ColumnName]);
|
||||
}
|
||||
|
||||
dict.Add(dataColumn.ColumnName, columnValueList);
|
||||
}
|
||||
return dict;
|
||||
}
|
||||
#region "Converters"
|
||||
|
||||
public List<T> ConvertDataTable<T>(DataTable dt)
|
||||
{
|
||||
List<T> data = new List<T>();
|
||||
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
T item = GetItem<T>(row);
|
||||
data.Add(item);
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
private T GetItem<T>(DataRow dr)
|
||||
{
|
||||
Type temp = typeof(T);
|
||||
T obj = Activator.CreateInstance<T>();
|
||||
|
||||
foreach (DataColumn column in dr.Table.Columns)
|
||||
{
|
||||
foreach (PropertyInfo pro in temp.GetProperties())
|
||||
{
|
||||
if (pro.Name == column.ColumnName)
|
||||
try
|
||||
{
|
||||
pro.SetValue(obj, dr[column.ColumnName], null/* TODO Change to default(_) if this is not a reference type */);
|
||||
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
|
||||
else
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
public IEnumerable<T> GetEntities<T>(DataTable dt)
|
||||
{
|
||||
if (dt == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
List<T> returnValue = new List<T>();
|
||||
List<string> typeProperties = new List<string>();
|
||||
|
||||
T typeInstance = Activator.CreateInstance<T>();
|
||||
|
||||
foreach (DataColumn column in dt.Columns)
|
||||
{
|
||||
var prop = typeInstance.GetType().GetProperty(column.ColumnName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
|
||||
if (prop != null)
|
||||
{
|
||||
typeProperties.Add(column.ColumnName);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
T entity = Activator.CreateInstance<T>();
|
||||
|
||||
foreach (var propertyName in typeProperties)
|
||||
{
|
||||
|
||||
if (row[propertyName] != DBNull.Value)
|
||||
{
|
||||
string str = row[propertyName].GetType().FullName;
|
||||
|
||||
if (entity.GetType().GetProperty(propertyName).PropertyType == typeof(System.String))
|
||||
{
|
||||
object Val = row[propertyName].ToString();
|
||||
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, Val, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
|
||||
}
|
||||
else if (entity.GetType().GetProperty(propertyName).PropertyType == typeof(System.Guid))
|
||||
{
|
||||
object Val = Guid.Parse(row[propertyName].ToString());
|
||||
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, Val, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, row[propertyName], BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, null, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
returnValue.Add(entity);
|
||||
}
|
||||
|
||||
return returnValue.AsEnumerable();
|
||||
}
|
||||
public string DataTableToJSONWithStringBuilder(DataTable table)
|
||||
{
|
||||
var JSONString = new StringBuilder();
|
||||
if (table.Rows.Count > 0)
|
||||
{
|
||||
JSONString.Append("[");
|
||||
for (int i = 0; i < table.Rows.Count; i++)
|
||||
{
|
||||
JSONString.Append("{");
|
||||
for (int j = 0; j < table.Columns.Count; j++)
|
||||
{
|
||||
if (j < table.Columns.Count - 1)
|
||||
{
|
||||
JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\",");
|
||||
}
|
||||
else if (j == table.Columns.Count - 1)
|
||||
{
|
||||
JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\"");
|
||||
}
|
||||
}
|
||||
if (i == table.Rows.Count - 1)
|
||||
{
|
||||
JSONString.Append("}");
|
||||
}
|
||||
else
|
||||
{
|
||||
JSONString.Append("},");
|
||||
}
|
||||
}
|
||||
JSONString.Append("]");
|
||||
}
|
||||
return JSONString.ToString();
|
||||
}
|
||||
public string ConvertDataTableToString(DataTable table)
|
||||
{
|
||||
int iColumnCount = table.Columns.Count;
|
||||
int iRowCount = table.Rows.Count;
|
||||
int iTempRowCount = 0;
|
||||
string strColumName = table.Columns[0].ColumnName;
|
||||
string strOut = "{";
|
||||
foreach (DataRow row in table.Rows)
|
||||
{
|
||||
strOut = strOut + "{";
|
||||
foreach (DataColumn col in table.Columns)
|
||||
{
|
||||
string val = row.Field<string>(col.ColumnName);
|
||||
strOut = strOut + col.ColumnName + ":" + val;
|
||||
|
||||
if (col.Ordinal != iColumnCount - 1)
|
||||
{
|
||||
strOut = strOut + ",";
|
||||
}
|
||||
}
|
||||
strOut = strOut + "}";
|
||||
iTempRowCount++;
|
||||
|
||||
if (iTempRowCount != iRowCount)
|
||||
{
|
||||
strOut = strOut + ",";
|
||||
}
|
||||
}
|
||||
strOut = strOut + "}";
|
||||
return strOut;
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BlazorApp.Helper
|
||||
{
|
||||
public class dbhelper
|
||||
{
|
||||
//SqlConnection con;
|
||||
string connectionstring;
|
||||
public DataSet dsdaten = new DataSet();
|
||||
private static DataTable SP_Parameters = new DataTable();
|
||||
private SqlDataAdapter dadaten;
|
||||
public dbhelper()
|
||||
{
|
||||
var configuation = GetConfiguration();
|
||||
connectionstring = configuation.GetSection("ConnectionStrings").GetSection("BlazorAppContextConnection").Value;
|
||||
SP_Parameters.Rows.Clear();
|
||||
SP_Parameters.Columns.Clear();
|
||||
SP_Parameters.Columns.Add("Paramname");
|
||||
SP_Parameters.Columns.Add("Paramvalue");
|
||||
}
|
||||
|
||||
public string Get_Option(int ID)
|
||||
{
|
||||
try
|
||||
{
|
||||
SqlDataAdapter dad = new SqlDataAdapter();
|
||||
|
||||
|
||||
string sql = "Select Inhalt from optionen where id=" + ID.ToString() ;
|
||||
DataTable data = new DataTable();
|
||||
|
||||
dad = new SqlDataAdapter(sql, this.connectionstring);
|
||||
|
||||
dad.Fill(data);
|
||||
string s;
|
||||
s = data.Rows[0][0].ToString();
|
||||
return s;
|
||||
dad.Dispose();
|
||||
data.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
int a = 1;
|
||||
return "";
|
||||
}
|
||||
}
|
||||
public void add_sp_param(string paramname, string paramvalue)
|
||||
{
|
||||
DataRow r = SP_Parameters.NewRow();
|
||||
r[0] = paramname;
|
||||
r[1] = paramvalue;
|
||||
SP_Parameters.Rows.Add(r);
|
||||
|
||||
}
|
||||
|
||||
public static DataTable ObjectToDataTable(object o)
|
||||
{
|
||||
DataTable dt = new DataTable();
|
||||
List<PropertyInfo> properties = o.GetType().GetProperties().ToList();
|
||||
|
||||
foreach (PropertyInfo prop in properties)
|
||||
|
||||
dt.Columns.Add(prop.Name, prop.PropertyType);
|
||||
|
||||
dt.TableName = o.GetType().Name;
|
||||
|
||||
return dt;
|
||||
}
|
||||
public IConfigurationRoot GetConfiguration()
|
||||
{
|
||||
var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
|
||||
return builder.Build();
|
||||
}
|
||||
|
||||
public DataTable Get_Tabledata(string Tablename, bool StoredProc = false, bool is_SQL_String = false, DataTable sp_params = null )
|
||||
{
|
||||
SqlConnection sqlconnect = new SqlConnection();
|
||||
DataSet ds = new DataSet();
|
||||
ds.Tables.Clear();
|
||||
sqlconnect.ConnectionString = this.connectionstring;
|
||||
sqlconnect.Open();
|
||||
SqlDataAdapter da = new SqlDataAdapter("", sqlconnect);
|
||||
SqlCommand sqlcmd = new SqlCommand();
|
||||
sqlcmd.Connection = sqlconnect;
|
||||
|
||||
|
||||
|
||||
if (StoredProc == true)
|
||||
{
|
||||
sqlcmd.CommandType = CommandType.StoredProcedure;
|
||||
if (Tablename.IndexOf("@@Mandantnr@@") > 0)
|
||||
Tablename = Tablename.Replace("@@Mandantnr@@", "");
|
||||
sqlcmd.CommandText = Tablename;
|
||||
foreach (DataRow r in SP_Parameters.Rows)
|
||||
{
|
||||
sqlcmd.Parameters.Add(r["Paramname"].ToString(), SqlDbType.VarChar);
|
||||
sqlcmd.Parameters[sqlcmd.Parameters.Count - 1].Value = r["Paramvalue"].ToString();
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
sqlcmd.CommandType = CommandType.Text;
|
||||
sqlcmd.CommandText = "Select * from " + Tablename;
|
||||
}
|
||||
if (is_SQL_String == true)
|
||||
sqlcmd.CommandText = Tablename;
|
||||
da.SelectCommand = sqlcmd;
|
||||
da.Fill(dsdaten, "Daten");
|
||||
sqlconnect.Close();
|
||||
|
||||
return dsdaten.Tables[0];
|
||||
}
|
||||
|
||||
public void Exec_SQL(string sql)
|
||||
{
|
||||
SqlConnection sqlconnect = new SqlConnection();
|
||||
SqlCommand sqlcmd = new SqlCommand();
|
||||
sqlcmd.Connection = sqlconnect;
|
||||
sqlconnect.ConnectionString = this.connectionstring;
|
||||
sqlcmd.CommandType = CommandType.Text;
|
||||
sqlcmd.CommandText = sql;
|
||||
sqlcmd.Connection.Open();
|
||||
sqlcmd.ExecuteNonQuery();
|
||||
sqlcmd.Connection.Close();
|
||||
|
||||
}
|
||||
public void Get_Tabeldata_for_Update(string Tablename, bool StoredProc = false, bool is_SQL_String = false)
|
||||
{
|
||||
dsdaten.Clear();
|
||||
dsdaten.Tables.Clear();
|
||||
dadaten = new SqlDataAdapter(Tablename, this.connectionstring);
|
||||
dadaten.Fill(dsdaten, Tablename);
|
||||
}
|
||||
public void Update_Tabeldata()
|
||||
{
|
||||
SqlCommandBuilder cb = new SqlCommandBuilder(dadaten);
|
||||
dadaten.Update(dsdaten, dsdaten.Tables[0].TableName);
|
||||
}
|
||||
|
||||
public Dictionary<string, List<object>> DatatableToDictionary(DataTable dataTable)
|
||||
{
|
||||
var dict = new Dictionary<string, List<object>>();
|
||||
foreach (DataColumn dataColumn in dataTable.Columns)
|
||||
{
|
||||
var columnValueList = new List<object>();
|
||||
|
||||
foreach (DataRow dataRow in dataTable.Rows)
|
||||
{
|
||||
columnValueList.Add(dataRow[dataColumn.ColumnName]);
|
||||
}
|
||||
|
||||
dict.Add(dataColumn.ColumnName, columnValueList);
|
||||
}
|
||||
return dict;
|
||||
}
|
||||
#region "Converters"
|
||||
|
||||
public List<T> ConvertDataTable<T>(DataTable dt)
|
||||
{
|
||||
List<T> data = new List<T>();
|
||||
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
T item = GetItem<T>(row);
|
||||
data.Add(item);
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
private T GetItem<T>(DataRow dr)
|
||||
{
|
||||
Type temp = typeof(T);
|
||||
T obj = Activator.CreateInstance<T>();
|
||||
|
||||
foreach (DataColumn column in dr.Table.Columns)
|
||||
{
|
||||
foreach (PropertyInfo pro in temp.GetProperties())
|
||||
{
|
||||
if (pro.Name == column.ColumnName)
|
||||
try
|
||||
{
|
||||
pro.SetValue(obj, dr[column.ColumnName], null/* TODO Change to default(_) if this is not a reference type */);
|
||||
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
|
||||
else
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
public IEnumerable<T> GetEntities<T>(DataTable dt)
|
||||
{
|
||||
if (dt == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
List<T> returnValue = new List<T>();
|
||||
List<string> typeProperties = new List<string>();
|
||||
|
||||
T typeInstance = Activator.CreateInstance<T>();
|
||||
|
||||
foreach (DataColumn column in dt.Columns)
|
||||
{
|
||||
var prop = typeInstance.GetType().GetProperty(column.ColumnName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
|
||||
if (prop != null)
|
||||
{
|
||||
typeProperties.Add(column.ColumnName);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
T entity = Activator.CreateInstance<T>();
|
||||
|
||||
foreach (var propertyName in typeProperties)
|
||||
{
|
||||
|
||||
if (row[propertyName] != DBNull.Value)
|
||||
{
|
||||
string str = row[propertyName].GetType().FullName;
|
||||
|
||||
if (entity.GetType().GetProperty(propertyName).PropertyType == typeof(System.String))
|
||||
{
|
||||
object Val = row[propertyName].ToString();
|
||||
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, Val, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
|
||||
}
|
||||
else if (entity.GetType().GetProperty(propertyName).PropertyType == typeof(System.Guid))
|
||||
{
|
||||
object Val = Guid.Parse(row[propertyName].ToString());
|
||||
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, Val, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, row[propertyName], BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
entity.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public).SetValue(entity, null, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public, null, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
returnValue.Add(entity);
|
||||
}
|
||||
|
||||
return returnValue.AsEnumerable();
|
||||
}
|
||||
public string DataTableToJSONWithStringBuilder(DataTable table)
|
||||
{
|
||||
var JSONString = new StringBuilder();
|
||||
if (table.Rows.Count > 0)
|
||||
{
|
||||
JSONString.Append("[");
|
||||
for (int i = 0; i < table.Rows.Count; i++)
|
||||
{
|
||||
JSONString.Append("{");
|
||||
for (int j = 0; j < table.Columns.Count; j++)
|
||||
{
|
||||
if (j < table.Columns.Count - 1)
|
||||
{
|
||||
JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\",");
|
||||
}
|
||||
else if (j == table.Columns.Count - 1)
|
||||
{
|
||||
JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\"");
|
||||
}
|
||||
}
|
||||
if (i == table.Rows.Count - 1)
|
||||
{
|
||||
JSONString.Append("}");
|
||||
}
|
||||
else
|
||||
{
|
||||
JSONString.Append("},");
|
||||
}
|
||||
}
|
||||
JSONString.Append("]");
|
||||
}
|
||||
return JSONString.ToString();
|
||||
}
|
||||
public string ConvertDataTableToString(DataTable table)
|
||||
{
|
||||
int iColumnCount = table.Columns.Count;
|
||||
int iRowCount = table.Rows.Count;
|
||||
int iTempRowCount = 0;
|
||||
string strColumName = table.Columns[0].ColumnName;
|
||||
string strOut = "{";
|
||||
foreach (DataRow row in table.Rows)
|
||||
{
|
||||
strOut = strOut + "{";
|
||||
foreach (DataColumn col in table.Columns)
|
||||
{
|
||||
string val = row.Field<string>(col.ColumnName);
|
||||
strOut = strOut + col.ColumnName + ":" + val;
|
||||
|
||||
if (col.Ordinal != iColumnCount - 1)
|
||||
{
|
||||
strOut = strOut + ",";
|
||||
}
|
||||
}
|
||||
strOut = strOut + "}";
|
||||
iTempRowCount++;
|
||||
|
||||
if (iTempRowCount != iRowCount)
|
||||
{
|
||||
strOut = strOut + ",";
|
||||
}
|
||||
}
|
||||
strOut = strOut + "}";
|
||||
return strOut;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region "Administration"
|
||||
public string Zuteilen(int typ)
|
||||
{
|
||||
SqlConnection sqlconnect = new SqlConnection();
|
||||
DataSet ds = new DataSet();
|
||||
ds.Tables.Clear();
|
||||
sqlconnect.ConnectionString = this.connectionstring;
|
||||
sqlconnect.Open();
|
||||
SqlDataAdapter da = new SqlDataAdapter("", sqlconnect);
|
||||
SqlCommand sqlcmd = new SqlCommand();
|
||||
sqlcmd.Connection = sqlconnect;
|
||||
sqlcmd.CommandType = CommandType.StoredProcedure;
|
||||
sqlcmd.CommandText = "dbo.zuteilung_durchfuehren";
|
||||
sqlcmd.Parameters.Add("@typ", SqlDbType.Int);
|
||||
sqlcmd.Parameters[0].Value = typ;
|
||||
sqlcmd.ExecuteNonQuery();
|
||||
return "";
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user