Laden...

Textbox füllen

Erstellt von LangWind vor einem Jahr Letzter Beitrag vor einem Jahr 589 Views
L
LangWind Themenstarter:in
6 Beiträge seit 2022
vor einem Jahr
Textbox füllen

Hallo liebe Community,
Ich habe eine Frage und zwar bin ich schon seit längerem auf der Suche nach eine Lösung wie ich nach erfolgreichem Post die werte
Speicher und automatisch die TextBox Aktualisiere !

Das mit dem Speichern Funktioniert schon mal.

Über Verbesserungs Vorschlägen in meinem cod wäre ich auch sehr dankbar.

Mfg


                public class ApiRequest
    {
        Sprecher sprecher = new Sprecher();
        JsonRead jsonRead = new JsonRead();
        HttpClient client = new HttpClient();
        ConfigSet newPost = new ConfigSet();

        public async void PostRequest(string name, string label, string desc, string date)
        {
            try
            {
                newPost.name = name;
                newPost.desc = desc;
                newPost.due = date;
                newPost.labels = label;
                newPost.idList = jsonRead.ConfigReader("config.json").IdList;
                newPost.idBoard = jsonRead.ConfigReader("config.json").IdBoard;
                newPost.token = jsonRead.ConfigReader("config.json").Token;
                newPost.key = jsonRead.ConfigReader("config.json").ApiKey;

                var json = JsonConvert.SerializeObject(newPost);
                var jsondata = new StringContent(json, Encoding.UTF8, "application/json");
                var url = "https://api.trello.com/1/cards?";
                var result = client.PostAsync(url, jsondata).Result.Content.ReadAsStringAsync().Result;

                var jo = JObject.Parse(result);
                string cardId = jo["id"].ToString();

                string filepart = jsonRead.ConfigReader("config.json").Path + "/" + name + ".pdf";
                var fileName = Path.GetFileName(filepart);
                fileName = fileName.Replace("ä", "ae");
                fileName = fileName.Replace("ö", "oe");
                fileName = fileName.Replace("ü", "ue");

                using var requestContent = new MultipartFormDataContent();
                using var fileStream = File.OpenRead(filepart);
                requestContent.Add(new StreamContent(fileStream),"file",fileName);
                var url2 = "https://api.trello.com/1/cards/" + cardId + "/attachments?key="+ jsonRead.ConfigReader("config.json").ApiKey + "&token=" + 
                jsonRead.ConfigReader("config.json").Token;
                await client.PostAsync(url2,requestContent);


                bool sp = jsonRead.ConfigReader("config.json").upCheckt;
                if(sp == true)
                sprecher.StandOrtSprecher(label);

                TextSave ts = new TextSave();
                await ts.txtschreiben(name, cardId);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "Error:ApiRequest");
                if (File.Exists("Exception_Log_ApiRequest.txt"))
                {
                    StreamWriter sw = new StreamWriter("Exception_Log.txt", append: true);
                    sw.WriteLine(name);
                    sw.Close();
                }
                else
                {
                    File.Create("Exception_Log_ApiRequest.txt");
                    StreamWriter sw = new StreamWriter("Exception_Log_ApiRequest.txt", append: true);
                    sw.WriteLine(name);
                    sw.Close();
                }
            }
            finally
            {

            }
            return;
        }
    }


 public class TextSave
    {
        string ProtokollPard = "Archiv.txt";
        JsonRead jr = new JsonRead();

        public Task txtschreiben(string Name,string cardid)
        {
            using (StreamWriter sw = new StreamWriter(ProtokollPard, append: true))
            {
                sw.Write("Erstellt : | "+DateTime.Now + " | Patientenname: | " + Name + " | CardId: | "+ cardid + Environment.NewLine);
            }
            return Task.CompletedTask;            
       }
        public string txtlesen()
        {
            if (File.Exists(ProtokollPard))
            {
                using (StreamReader srr = new StreamReader(ProtokollPard))
                { 
                    return srr.ReadToEnd();
                }
            }
            else
                return "...";
        }
        public bool Deletefile()
        {
            if(File.Exists(ProtokollPard))
            {
                File.Delete(ProtokollPard);
                return true;         
            }
            else
            {
                return false;
            }
        }
    }

4.931 Beiträge seit 2008
vor einem Jahr

Hallo,

von welcher TextBox in deinem Code redest du?

PS: async void ist ein Fehler (außer es wäre eine Ereignismethode, deren Signatur man nicht ändern kann, aber danach sieht es nicht aus), benutze async Task!

Und das Exception-Handling kannst du auch verkürzen: das vorherige Erzeugen der Datei ist unnötig, da bei Bedarf eine neue Datei erstellt wird, s. StreamWriter(String, Boolean).
Und für das eigentliche Logging solltest du eine eigene Methode erstellen (damit du keinen doppelten Code hast) und dort auch besser eine using (...)-Anweisung benutzen (wie in der TextSave-Klasse). Außerdem ist nur die Angabe von name wohl etwas wenig fürs Logging...

Und dann solltest du noch deine Methodennamen vereinheitlichen (kein: mal deutsch, mal englisch) und sie sollten stets mit einem Großbuchstaben beginnen.

L
LangWind Themenstarter:in
6 Beiträge seit 2022
vor einem Jahr

Vielen dank für die schnelle Antwort ,
ich werde mich bemühen dies zu überarbeiten und werde dies noch mal zeigen 🙂.

So sieht die GUI aus, in der Mitte ist eine TextBox die automatisch gefüllt werden soll !
aktuell muss ich auf den btn_Aktualisieren clicken um den Content zu sehen.



         private void Form1_Load(object sender, EventArgs e)
        {
            txt_Info.Text = TS.txtlesen();
        }
         public async void btn_Start_Click(object sender, EventArgs e)
        {
            try
            {
                lbl_Prozesstatus.ForeColor = Color.Green;
                lbl_Prozesstatus.Text = "Aktiv";
                AweitDokument rd = new AweitDokument();
                rd.Start();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void btn_Aktualisieren_Click(object sender, EventArgs e)
        {
            txt_Info.Text = TS.txtlesen();
        }