Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Textbox füllen
LangWind
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

Textbox füllen

beantworten | zitieren | melden

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;
            }
        }
    }
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.389

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
LangWind
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

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();
        }

Attachments
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.389

beantworten | zitieren | melden

Das beste wäre wohl, du definierst ein Ereignis und abonnierst es dann von der GUI aus, s.a. [FAQ] Eigenen Event definieren / Information zu Events (Ereignis/Ereignisse).
private Nachricht | Beiträge des Benutzers