using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Syncfusion.WinForms.Controls.Styles; using Syncfusion.Windows.Forms.Tools; using Syncfusion.WinForms.Controls; using Syncfusion.WinForms.DataGrid; using Syncfusion.WinForms.DataGrid.Interactivity; using OnDoc.Klassen; using System.Data.SqlClient; using Database; using System.Threading; using static System.Net.Mime.MediaTypeNames; using System.IO; using System.Net; using Windows.System.Update; using Syncfusion.Windows.Forms; using OnDoc.Helper; using Windows.Phone.ApplicationModel; using System.Net.Http; using Syncfusion.Office; using Newtonsoft.Json; namespace OnDoc.Diverses { public partial class MitarbeiterProfil : SfForm { private int mitarbeiternr = 0; private bool onLoad = true; private string tgnummer = ""; public MitarbeiterProfil() { InitializeComponent(); } public MitarbeiterProfil(int Mitarbeiternr) { InitializeComponent(); mitarbeiternr = Mitarbeiternr; } private void MitarbeiterProfil_Load(object sender, EventArgs e) { refresh_profile(); ribbonTab1_ActiveChanged(sender, e); refresh_unterschriften_team(); onLoad = false; lbprofile.SelectedIndex = 0; } private void refresh_profile() { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select * from profil where aktiv=1 and mitarbeiternr=" + mitarbeiternr.ToString(), false, true); lbprofile.DataSource = db.dsdaten.Tables[0]; lbprofile.DisplayMember = "Bezeichnung"; lbprofile.ValueMember = "profilnr"; db = null; } private void refresh_unterschriften_team() { DB db = new DB(AppParams.connectionstring); db.clear_parameter(); db.Get_Tabledata("SP_Dokumentbearbeitung_Mitarbeiter", true, false); cbboxUnterschriftLinks.DataSource = db.dsdaten.Tables[0]; cbboxUnterschriftLinks.DisplayMember = "name"; cbboxUnterschriftLinks.ValueMember = "mitarbeiternr"; cbboxUnterschriftRechts.DataSource = db.dsdaten.Tables[0]; cbboxUnterschriftRechts.DisplayMember = "name"; cbboxUnterschriftRechts.ValueMember = "mitarbeiternr"; db.clear_parameter(); db.add_parameter("@profilnr", 0.ToString()); db.add_parameter("@mitarbeiternr", mitarbeiternr.ToString()); db.Get_Tabledata("sp_dokumentbearbeitung_team", true, false); cbboxTeam.DataSource = null; cbboxTeam.DataSource = db.dsdaten.Tables[0]; cbboxTeam.ValueMember = "teamnr"; cbboxTeam.DisplayMember = "bezeichnung"; db = null; } private void RibbonButtonExit_Click(object sender, EventArgs e) { this.Close(); } private void lbprofile_SelectedValueChanged(object sender, EventArgs e) { if (onLoad) { return; } DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select * from profil where profilnr=" + lbprofile.SelectedValue, false, true); cbboxUnterschriftLinks.SelectedValue = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["Unterschriftlinks"].ToString()); cbboxUnterschriftRechts.SelectedValue = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["Unterschriftrechts"].ToString()); cbboxTeam.SelectedValue = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["team"].ToString()); cbStandard.Checked = db.dsdaten.Tables[0].Rows[0]["standard"].ToString() == "True"; txtbezeichnung.Text = db.dsdaten.Tables[0].Rows[0]["bezeichnung"].ToString(); db = null; } private void btnSave_Click(object sender, EventArgs e) { DB db = new DB(AppParams.connectionstring); if (cbStandard.Checked) { db.Exec_SQL("Update profil set standard=0 where mitarbeiternr=" + mitarbeiternr.ToString()); db.Exec_SQL("Update profil set bezeichnung='" + txtbezeichnung.Text + "', unterschriftlinks=" + cbboxUnterschriftLinks.SelectedValue.ToString() + ", unterschriftrechts=" + cbboxUnterschriftRechts.SelectedValue.ToString() + ", team=" + cbboxTeam.SelectedValue.ToString() + " ,standard=1 where profilnr=" + lbprofile.SelectedValue.ToString()); } db.Exec_SQL("Update profil set bezeichnung='" + txtbezeichnung.Text + "',unterschriftlinks=" + cbboxUnterschriftLinks.SelectedValue.ToString() + ", unterschriftrechts=" + cbboxUnterschriftRechts.SelectedValue.ToString() + ", team=" + cbboxTeam.SelectedValue.ToString() + " where profilnr=" + lbprofile.SelectedValue.ToString()); db = null; } private void ribbonButtonSave_Click(object sender, EventArgs e) { int saveselected = Convert.ToInt32(lbprofile.SelectedValue); DB db = new DB(AppParams.connectionstring); if (cbStandard.Checked) { db.Exec_SQL("Update profil set standard=0 where mitarbeiternr=" + mitarbeiternr.ToString()); db.Exec_SQL("Update profil set bezeichnung='" + txtbezeichnung.Text + "', unterschriftlinks=" + cbboxUnterschriftLinks.SelectedValue.ToString() + ", unterschriftrechts=" + cbboxUnterschriftRechts.SelectedValue.ToString() + ", team=" + cbboxTeam.SelectedValue.ToString() + " ,standard=1 where profilnr=" + lbprofile.SelectedValue.ToString()); } db.Exec_SQL("Update profil set bezeichnung='" + txtbezeichnung.Text + "',unterschriftlinks=" + cbboxUnterschriftLinks.SelectedValue.ToString() + ", unterschriftrechts=" + cbboxUnterschriftRechts.SelectedValue.ToString() + ", team=" + cbboxTeam.SelectedValue.ToString() + " where profilnr=" + lbprofile.SelectedValue.ToString()); //db.Exec_SQL("Update mitarbeiter set name='" + txtName.Text + "', vorname='" + txtVorname.Text + "', email='" + txtmail.Text + "', telefon='" + txttelefon.Text + "' where mitarbeiternr=" + AppParams.CurrentMitarbeiter.ToString()); //db.Exec_SQL("Update mitarbeiter set fax='" + txtfax.Text + "', unterschrift_text='" + txtunterschrift.Text + "', funktion='" + txtfunktion.Text + "', mutiert_am=getdate(), mutierer=" + AppParams.CurrentMitarbeiter.ToString() + " where mitarbeiternr = " + AppParams.CurrentMitarbeiter.ToString()); db = null; refresh_profile(); lbprofile.SelectedValue = saveselected; } private void ribbonButtonDelete_Click(object sender, EventArgs e) { DB db = new DB(AppParams.connectionstring); if (cbStandard.Checked) { MessageBox.Show("Das Standardprofil kann nicht gelöscht werden.", "Profil löschen", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { db.Exec_SQL("Update profil set aktiv=0 where profilnr=" + lbprofile.SelectedValue.ToString()); } db = null; refresh_profile(); lbprofile.SelectedIndex = 0; } private void ribbonButtonNew_Click(object sender, EventArgs e) { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select * from profil where profilnr=0", false, true); int newkey = Convert.ToInt32(db.get_dbkey("Profil").ToString()); db.dsdaten.Tables[0].Rows[0]["PROFILnr"] = newkey; db.dsdaten.Tables[0].Rows[0]["Mitarbeiternr"] = AppParams.CurrentMitarbeiter; db.dsdaten.Tables[0].TableName = "Profil"; var res = db.InsertDataRow(db.dsdaten.Tables[0].Rows[0], AppParams.connectionstring); //SqlCommand sqlq = db.CreateInsertCommand(db.dsdaten.Tables[0].Rows[0]); //db.InsertDataRow(sqlq); //string sql1 = db.BuildAllFieldsSQL(db.dsdaten.Tables[0]); //MessageBox.Show(sql1); //string sql = db.BuildInsertSQL(db.dsdaten.Tables[0]); //MessageBox.Show(sql); //db.Exec_SQL(sql); db = null; ; refresh_profile(); lbprofile.SelectedValue = newkey; } private void ribbonButtonNew_DoubleClick(object sender, EventArgs e) { } private void MitarbeiterProfil_Activated(object sender, EventArgs e) { } private void ribbonTab1_ActiveChanged(object sender, EventArgs e) { GrpBoxProfile.Dock = DockStyle.Left; GrpBoxProfile.Visible = true; GrpBoxDetails.Dock = DockStyle.Fill; GrpBoxDetails.Visible = true; GrpBoxMitarbeiter.Visible = false; } private void ribbonTab2_ActiveChanged(object sender, EventArgs e) { GrpBoxProfile.Visible = false; GrpBoxDetails.Visible = false; GrpBoxMitarbeiter.Visible = true; GrpBoxMitarbeiter.Dock = DockStyle.Fill; DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("select * from mitarbeiter where mitarbeiternr=" + AppParams.CurrentMitarbeiter.ToString(), false, true); if (db.dsdaten.Tables[0].Rows.Count > 0) { try { tgnummer = db.dsdaten.Tables[0].Rows[0]["tgnummer"].ToString(); string unterschrift = get_unterschrift(db.dsdaten.Tables[0].Rows[0]["tgnummer"].ToString()); string ss = Newtonsoft.Json.JsonConvert.DeserializeObject(unterschrift); MemoryStream mssign = new MemoryStream(Convert.FromBase64String(ss)); System.Drawing.Image img = System.Drawing.Image.FromStream(mssign); pictureBox1.Image = img; mssign.Close(); mssign.Dispose(); } catch { } txtName.Text = db.dsdaten.Tables[0].Rows[0]["name"].ToString(); txtVorname.Text= db.dsdaten.Tables[0].Rows[0]["vorname"].ToString(); txtmail.Text = db.dsdaten.Tables[0].Rows[0]["email"].ToString(); txttelefon.Text = db.dsdaten.Tables[0].Rows[0]["telefon"].ToString(); txtfax.Text = db.dsdaten.Tables[0].Rows[0]["fax"].ToString(); txtunterschrift.Text = db.dsdaten.Tables[0].Rows[0]["unterschrift_text"].ToString(); txtfunktion.Text = db.dsdaten.Tables[0].Rows[0]["funktion"].ToString(); chkOndocMails.Checked = Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0]["mailempfang"]) == true; db = null; // System.Drawing.Image image = System.Drawing.Image.FromFile(@"E:\Software-Projekte\OnDoc\Images\download.png"); //this.pictureBox1.Image = image; } } private string get_unterschrift(string MaNr) { string URL = AppParams.RESTURI + "API/GetUnterschriftAsBase64ByMitarbeiternr?MaNr=" + AppParams.CurrentMitarbeiter.ToString()+ "&ImageWith=-1"; HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest; webRequest.Method = WebRequestMethods.Http.Get; webRequest.Headers["Authorization"] = "Bearer " + AppParams.apikey; try { using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse) { if (response.StatusCode == HttpStatusCode.OK) { StreamReader reader = new StreamReader(response.GetResponseStream()); string responseContent = reader.ReadToEnd(); return responseContent; } else { Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Clinet - DokList GetDocument", ""); return ""; } } } catch (Exception ex) { return ""; } } protected bool validData; string path; protected System.Drawing.Image image; protected Thread getImageThread; private void pictureBox1_DragEnter(object sender, DragEventArgs e) { string filename; validData = GetFilename(out filename, e); if (validData) { path = filename; getImageThread = new Thread(new ThreadStart(LoadImage)); getImageThread.Start(); e.Effect = DragDropEffects.Copy; } else e.Effect = DragDropEffects.None; } private bool GetFilename(out string filename, DragEventArgs e) { bool ret = false; filename = String.Empty; if ((e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy) { Array data = ((IDataObject)e.Data).GetData("FileDrop") as Array; if (data != null) { if ((data.Length == 1) && (data.GetValue(0) is String)) { filename = ((string[])data)[0]; string ext = System.IO.Path.GetExtension(filename).ToLower(); if ((ext == ".jpg") || (ext == ".png") || (ext == ".bmp")) { ret = true; } } } } return ret; } protected void LoadImage() { image = new Bitmap(path); } private void pictureBox1_DragDrop(object sender, DragEventArgs e) { { if (validData) { while (getImageThread.IsAlive) { System.Windows.Forms.Application.DoEvents(); Thread.Sleep(0); } pictureBox1.Image = image; } } } private void RibbonMitarbeiterButtonSave_Click(object sender, EventArgs e) { DB db = new DB(AppParams.connectionstring); db.Exec_SQL("Update mitarbeiter set name='" + txtName.Text + "', vorname='" + txtVorname.Text + "', email='" + txtmail.Text + "', telefon='" + txttelefon.Text + "' where mitarbeiternr=" + AppParams.CurrentMitarbeiter.ToString()); db.Exec_SQL("Update mitarbeiter set fax='" + txtfax.Text + "', unterschrift_text='" + txtunterschrift.Text + "', funktion='" + txtfunktion.Text + "', mutiert_am=getdate(), mutierer=" + AppParams.CurrentMitarbeiter.ToString() + " where mitarbeiternr = " + AppParams.CurrentMitarbeiter.ToString()); int mailempfang = 0; if (chkOndocMails.Checked) { mailempfang = 1; } db.Exec_SQL("Update mitarbeiter set mailempfang=" + mailempfang.ToString() + " where mitarbeiternr = " + AppParams.CurrentMitarbeiter.ToString()); db = null; } private void btnDeleteImage_Click(object sender, EventArgs e) { sign1.ClearSignature(); } private void btnSaveSignature_Click(object sender, EventArgs e) { if (sign1.IsValid) { string filename = AppParams.tempdir + AppParams.currenttgnummer + ".jpg"; if (System.IO.File.Exists(filename)) { System.IO.File.Delete(filename); } if (MessageBox.Show("Unterschrif-Bild speichern ('"+AppParams.currenttgnummer+".jpg' ?","Unterschrift speichern", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { sign1.SignatureBitmap.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg); //FileStream fs = new FileStream(filename, FileMode.Open); // upload_img(fs, filename, AppParams.currenttgnummer); FileHelper fh = new FileHelper(); string userimage = fh.Base64FromFile(filename); upload_image(userimage, AppParams.currenttgnummer); sign1.ClearSignature(); GrpGetSignature.Visible = false; string unterschrift = get_unterschrift(this.tgnummer); string ss = Newtonsoft.Json.JsonConvert.DeserializeObject(unterschrift); MemoryStream mssign = new MemoryStream(Convert.FromBase64String(ss)); System.Drawing.Image img = System.Drawing.Image.FromStream(mssign); pictureBox1.Image = img; mssign.Close(); mssign.Dispose(); } } } public class imageclass { public string tgnummer { get; set; } public string b64 { get; set; } } private void upload_image(string unterschrift, string tgnummer) { Logging.Logging.Debug("Start Save Image", "OnDoc", ""); string URL = AppParams.RESTURI + "API/SaveSignature"; string response; imageclass ic = new imageclass(); ic.tgnummer = tgnummer; ic.b64= unterschrift; string jsonstring = JsonConvert.SerializeObject(ic); WebRequest request; var data = Encoding.UTF8.GetBytes(jsonstring); request = WebRequest.Create(URL); request.ContentLength = data.Length; request.ContentType = "application/json"; request.Method = "POST"; request.Headers["Authorization"] = "Bearer " + AppParams.apikey; try { Logging.Logging.Debug("Upload Signature " + tgnummer, "OnDoc", ""); using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(data, 0, data.Length); requestStream.Close(); using (Stream responseStream = request.GetResponse().GetResponseStream()) { using (var reader = new StreamReader(responseStream)) { response = reader.ReadToEnd(); } } } return; } catch (Exception ex) { Logging.Logging.Debug("Upload Signature failed:" + ex.Message, "OnDoc", ""); return; } } private void button3_Click(object sender, EventArgs e) { GrpGetSignature.Visible = false; } private void button2_Click(object sender, EventArgs e) { GrpGetSignature.Visible = true; } private void label15_Click(object sender, EventArgs e) { GrpGetSignature.Visible = false; } } }