using Database;
using DOCGEN;
using Model;
using API_NetFramework.Models;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Runtime.Serialization.Formatters;
using System.Web;
using System.Web.Http;
using SecuringWebApiUsingApiKey.Middleware;
using Newtonsoft.Json;
using System.Web.Http.Results;
using Microsoft.Ajax.Utilities;
using System.Data.SqlClient;
using System.Data;
using System.Text.RegularExpressions;
using System.Text;
using Newtonsoft.Json.Linq;
using System.Web.Helpers;
namespace API_NetFramework.Controllers
{
public class AntwortAdresseController : ApiController
{
string tokenfunction = "Adresse";
string connectionstring = StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["EDOKAConnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm");
///
/// GetGetAll liefert alle GAS-Adressen
///
/// Optional. The default value is "JSON".Optionaler Parameter: "XML"
///
///
[HttpGet]
[Route("API/Antwortadresse/GetAll")]
public IHttpActionResult GetGetAll(string OutFormat = "JSON")
{
//string a = SecuringWebApiUsingApiKey.Middleware.StringCipher.Encrypt("Adresse", "OnDoc");
//a = SecuringWebApiUsingApiKey.Middleware.StringCipher.Decrypt(a, "OnDoc");
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request,tokenfunction) ==false)
{
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
try
{
APILogging.Log((HttpRequestMessage)Request, "Start Adresse GetAll", LogLevelType.Debug);
Database.DB db = new Database.DB(connectionstring);
string SQL = "Select * from Antwortadresse order by bezeichnung";
if (OutFormat == "JSON") { SQL = SQL + " for json path"; }
if (OutFormat == "XML") { SQL = SQL + " for xml path"; }
db.Get_Tabledata(SQL, false, true);
APILogging.Log((HttpRequestMessage)Request, "Ende Adresse GetAll", LogLevelType.Debug);
return Ok(JToken.Parse(db.dsdaten.Tables[0].Rows[0][0].ToString()));
}
catch (Exception e)
{
APILogging.Log((HttpRequestMessage)Request,e.Message,LogLevelType.Error);
return Content(HttpStatusCode.InternalServerError, e.Message);
}
}
[HttpGet]
[Route("API/Antwortadresse/GetByID")]
///
/// GetByID liefert die GAS-Adresse mit der gewünschten ID
///
/// ID der GAS-Adresse
/// Optional. The default value is "JSON".Optionaler Parameter: "XML"
///
///
public IHttpActionResult GetByID(string ID,string OutFormat = "JSON")
{
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
{
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
try
{
APILogging.Log((HttpRequestMessage)Request, "Start Adresse GetByID ID:"+ID, LogLevelType.Debug);
Database.DB db = new Database.DB(connectionstring);
string SQL = "Select * from Antwortadresse where id=" + ID;
if (OutFormat == "JSON") { SQL = SQL + " for json path"; }
if (OutFormat == "XML") { SQL = SQL + " for xml path"; }
db.Get_Tabledata(SQL, false, true);
if (db.dsdaten.Tables[0].Rows.Count == 0) {
APILogging.Log((HttpRequestMessage)Request, "Ende Adresse GetByID ID:" + ID, LogLevelType.Debug);
return Ok();
} else {
APILogging.Log((HttpRequestMessage)Request, "Ende Adresse GetByID ID:" + ID, LogLevelType.Debug);
return Ok(JToken.Parse(db.dsdaten.Tables[0].Rows[0][0].ToString()));
};
}
catch (Exception e)
{
APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error);
return Content(HttpStatusCode.InternalServerError, e.Message);
}
}
///
/// GetAllMitarbeiterByTGNummer liefert die persönlichen Adressen eines Mitarbeiters
///
/// Required.
/// Optional. The default value is "JSON".Optionalier Parameter: "XML"
///
///
[HttpGet]
[Route("API/ntwortAdresse/GetAllMitarbeiterByTGNummer")]
public IHttpActionResult GetAllMitarbeiterByTGNummer(string tgnummer, string OutFormat = "JSON")
{
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
{
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
try
{
APILogging.Log((HttpRequestMessage)Request, "Start Adresse GetAllMitarbeiterByTGNummer", LogLevelType.Debug);
Database.DB db = new Database.DB(connectionstring);
string SQL = "Select * from AntwortAdresse_Mitarbeiter where aktiv=1 and tgnummer='" + tgnummer + "' order by bezeichnung ";
if (OutFormat == "JSON") { SQL = SQL + " for json path"; }
if (OutFormat == "XML") { SQL = SQL + " for xml path"; }
db.Get_Tabledata(SQL, false, true);
if (db.dsdaten.Tables[0].Rows.Count == 0) {
APILogging.Log((HttpRequestMessage)Request, "Ende Adresse GetAllMitarbeiterByTGNummer", LogLevelType.Debug);
return Ok();
} else {
APILogging.Log((HttpRequestMessage)Request, "Ende Adresse GetAllMitarbeiterByTGNummer", LogLevelType.Debug);
return Ok(JToken.Parse(db.dsdaten.Tables[0].Rows[0][0].ToString()));
};
}
catch (Exception e)
{
APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error);
return Content(HttpStatusCode.InternalServerError, e.Message);
}
}
[HttpGet]
[Route("API/AntwortAdresse/GetAllMitarbeiterByMitarbeiterNr")]
///
/// GetAllMitarbeiterByMitarbeiternr liefert die persönlichen Adressen eines Mitarbeiters
///
/// Required.
/// Optional. The default value is "JSON".Optionalier Parameter: "XML"
///
///
public IHttpActionResult GetAllMitarbeiterByMitarbeiterNr(string Mitarbeiternr, string OutFormat = "JSON")
{
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
{
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
try
{
APILogging.Log((HttpRequestMessage)Request, "Start Adresse GetAllMitarbeiterByMitarbeiterNr Ma-Nr:"+Mitarbeiternr, LogLevelType.Debug);
Database.DB db = new Database.DB(connectionstring);
string SQL = "Select * from AntwortAdresse_Mitarbeiter where aktiv=1 and Mitarbeiternr='" + Mitarbeiternr + "' ";
if (OutFormat == "JSON") { SQL = SQL + " for json path"; }
if (OutFormat == "XML") { SQL = SQL + " for xml path"; }
db.Get_Tabledata(SQL, false, true);
if (db.dsdaten.Tables[0].Rows.Count == 0) {
APILogging.Log((HttpRequestMessage)Request, "Ende Adresse GetAllMitarbeiterByMitarbeiterNr Ma-Nr:" + Mitarbeiternr, LogLevelType.Debug);
return Ok();
} else {
APILogging.Log((HttpRequestMessage)Request, "Ende Adresse GetAllMitarbeiterByMitarbeiterNr Ma-Nr:" + Mitarbeiternr, LogLevelType.Debug);
return Ok(JToken.Parse(db.dsdaten.Tables[0].Rows[0][0].ToString()));
};
}
catch (Exception e)
{
APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error);
return Content(HttpStatusCode.InternalServerError, e.Message);
}
}
[HttpGet]
[Route("API/AntwortAdresse/GetMitarbeiterByID")]
///
/// GetMitarbeiterByID liefert eine Mitarbeiter-Adrsse mit der ID
///
/// Required.
/// Optional. The default value is "JSON".Optionalier Parameter: "XML"
///
///
public IHttpActionResult GetMitarbeiterByID(string ID, string OutFormat = "JSON")
{
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
{
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
try
{
APILogging.Log((HttpRequestMessage)Request, "Start GetMitarbeiterByID ID: "+ID, LogLevelType.Debug);
Database.DB db = new Database.DB(connectionstring);
string SQL = "Select * from AntwortAdresse_Mitarbeiter where id=" + ID;
if (OutFormat == "JSON") { SQL = SQL + " for json path"; }
if (OutFormat == "XML") { SQL = SQL + " for xml path"; }
db.Get_Tabledata(SQL, false, true);
if (db.dsdaten.Tables[0].Rows.Count == 0) {
APILogging.Log((HttpRequestMessage)Request, "Ende GetMitarbeiterByID ID: " + ID, LogLevelType.Debug);
return Ok();
} else {
APILogging.Log((HttpRequestMessage)Request, "Ende GetMitarbeiterByID ID: " + ID, LogLevelType.Debug);
return Ok(JToken.Parse(db.dsdaten.Tables[0].Rows[0][0].ToString())); };
}
catch (Exception e)
{
APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error);
return Content(HttpStatusCode.InternalServerError, e.Message);
}
}
[HttpGet]
[Route("API/AntwortAdresse/GetMitarbeiterUndStandard")]
///
/// GetMitarbeiterByID liefert eine Mitarbeiter-Adrsse mit der ID
///
/// Required.
/// Optional. The default value is "JSON".Optionalier Parameter: "XML"
///
///
/// public IHttpActionResult GetMitarbeiterByID(string ID, string OutFormat = "JSON")
public IHttpActionResult GetGASAdressen_Einzeilig(string TGNummer, string OutFormat = "JSON")
{
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
{
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
try
{
APILogging.Log((HttpRequestMessage)Request, "Start GetGASAdressen_Einzeilig TGNummer: " + TGNummer, LogLevelType.Debug);
Database.DB db = new Database.DB(connectionstring);
db.clear_parameter();
db.add_parameter("@tgnummer", TGNummer);
db.add_parameter("@format", OutFormat);
db.Get_Tabledata("sp_get_gas_einzeilig", true, false);
if (db.dsdaten.Tables[0].Rows.Count == 0)
{
APILogging.Log((HttpRequestMessage)Request, "Ende GetGASAdressen_Einzeilig TGNummer: " + TGNummer, LogLevelType.Debug);
return Content(HttpStatusCode.NotFound, "");
}
else
{
APILogging.Log((HttpRequestMessage)Request, "Ende GetGASAdressen_Einzeilig TGNummer: " + TGNummer, LogLevelType.Debug);
//List adressen = new List();
//foreach (System.Data.DataRow dr in db.dsdaten.Tables[0].Rows)
//{
// adressen.Add(new adressresponse() {adresse = dr[0].ToString()});
//}
//var token = JToken.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(adressen));
return Content(HttpStatusCode.OK, JToken.Parse(db.dsdaten.Tables[0].Rows[0][0].ToString()));
};
}
catch (Exception e)
{
APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error);
return Content(HttpStatusCode.InternalServerError, e.Message);
}
}
public string DataTableToJsonObj(DataTable dt)
{
DataSet ds = new DataSet();
ds.Merge(dt);
StringBuilder JsonString = new StringBuilder();
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
JsonString.Append("[");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
JsonString.Append("{");
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
if (j < ds.Tables[0].Columns.Count - 1)
{
JsonString.Append("\"" + ds.Tables[0].Columns[j].ColumnName.ToString() + "\":" + "\"" + ds.Tables[0].Rows[i][j].ToString() + "\",");
}
else if (j == ds.Tables[0].Columns.Count - 1)
{
JsonString.Append("\"" + ds.Tables[0].Columns[j].ColumnName.ToString() + "\":" + "\"" + ds.Tables[0].Rows[i][j].ToString() + "\"");
}
}
if (i == ds.Tables[0].Rows.Count - 1)
{
JsonString.Append("}");
}
else
{
JsonString.Append("},");
}
}
JsonString.Append("]");
return JsonString.ToString();
}
else
{
return null;
}
}
}
}