Laden...
echdeneth
myCSharp.de - Member
52
Themen
161
Beiträge
Letzte Aktivität
vor einem Jahr
Dabei seit
05.06.2019
Alter
50
Beruf
Anwendungsentwickler
Firma
Mega-Holz
Herkunft
Sachsen, Herrnhut/Zittau
Interessen
Computer, Programmieren, ...
Website
Erstellt vor einem Jahr

In fraglichem "Projekt Heartbeat" soll das Starten, den laufenden Betrieb (aller x Minuten), Events/Fehler und das Beenden einer App (einer von vielen und auf verschiedenen Clients) in einer DB (momentan MariaDB) geloggt werden.

Potentiell läuft eine App noch auf .NET Framework, andere auf .NET6/7.

Wie würdet ihr das realisieren? Konzeptionell?

Meine Ansätze:

- Eine DLL welche in die App eingebunden wird. Nachteil: Verschiedene .NET Umgebungen und das Beenden zu loggen ist tricky
- Eine Konsolen-App welche die eig. App startet. Nachteil Events und Fehler können nicht durch die Konsolen-App geloggt werden
- Stored Procedures welche die Logik beinhalten Nachteil: Meine SQL Kenntnisse

Danke im Vorraus

PS: Falls ihr fragt "Warum machst du sowas überhaupt - so ein Unsinn - lass das sein!" Der Chef will sowas, der Chef kriegt sowas!

Erstellt vor einem Jahr

Habe es leider nicht geschafft zu erläutern was ich benötige.

Zu "Claims" und "Claim Based Authorization" leider kein Tutorial gefunden wo das verständlich erklärt wird. 
In allen Fällen wird ein (gefühlt) mehrjähriges .NET Studium und Erfahrung vorrausgesetzt. Wissen für bereits Wissende, nicht Wissensuchende.
Ich habe nicht den geringsten Schimmer wie ich dies verwende. Ohne dies ist das Thema bestenfalls abstrakt/theoretisch.

Also: Nutzername+PW → Claimdingens...

Zudem hängt dies mit ASP.NET zusammen welches ich nicht verwende.

UserRoles sind bei uns eine Sammlung von Daten die Nutzerspezifisch sind z.B.: FTP Zugänge/PW, Adresse, E-Mail-Zeugs, Lieferantenbesonderheiten usw. welche bei passenden Passwort/Username abgefragt werden können. Keine "UserRoles" um Claim Zusammenhang.

Erstellt vor einem Jahr

Demnach Normalisiert und ID (und Namen) abfragen und ne Runde switchcasen...

Claim Based Authorization und co - sagt mir gar nichts...

Ja, die UserRoles zielen darauf ab ein Login und daraufhin die UserRoles abzufragen (ist n JSON-Array) 
Ob da mehr an Sicherheit reinkommt ist Chefsache...

Erstellt vor einem Jahr

Ja, ich habe mich "etwas" holprig ausgedrückt.

In meinem Projekt brauche ich mehrere Modi (Pro UserRole) welche in einer Tabelle gespeichert werden (ab als Enum/Set oder 3. Normalform)
Diese müssen aber auch abgefragt werden. Die Daten werden also in der Klasse UserRole gespeichert und müssen später abgefragt werden.

Als enum wären das:

enum ProgramStatusBehavior {Automatik, Manuell, Beides} 
enum ErstellungsModi {Sendungserstellung, Ladelistenerstellung}

Recht einfach.

Man kann dann entweder den String des Enum/Set nehmen oder die ID (der Normalisierung) und für ein SwitchCase, If, whatever...
Es geht mir nicht darum wir ich ein SwitchCase bastel, eine Verzweigung im Code muss halt eindeutig die Modi abhandeln.

Erstellt vor einem Jahr

Moin,

entschuldigt meine evtl. etwas schwammig formulierten Titel.

In MySQL ist es in einer Tabelle erforderlich das mehrere fixe Werte eingetragen werden können.
z. B. Status {StatusFoo, StatusBar} und Bliblablubb {BlaFoo, BlaBar, Blablubb}

Diese werden in C# abgefragt und sollen ausgewertet werden.
Welche Form wäre dem CleanCode gerecht?

switch(status){}
enum Status {StatusFoo, StatusBar} 
Wie erreriche ich das save die Status zugeordnet und abgefragt werden können?
Per ID und 3. Normalform? 

Danke für Hinweise oder Ideen

Falls ich mich undeutlich ausgedrückt habe, bitte Nachfragen!

Erstellt vor 2 Jahren

Ich konnte den Fehler denke ich reduzieren.

Frage: Was ist der Unterschied zwischen den beiden Codes?

BEGIN
    DECLARE i INT DEFAULT 0;
    WHILE i < 2 DO
        SELECT COUNT(`ID `) FROM `Auftragsliste` WHERE `Sendungsnummer` = "0104000300001009";
        SET i = i + 1;
    END WHILE;
END

Ergebnis: 1

BEGIN
    DECLARE i INT DEFAULT 0;
    DECLARE sendungsnummer VARCHAR(60);
    WHILE i < 2 DO
        SET sendungsnummer = "0104000300001009";
        SELECT COUNT(` ID `) FROM `Auftragsliste` WHERE `Sendungsnummer` = "0104000300001009";
        SET i = i + 1;
    END WHILE;
END

Ergebnis: 17

Erstellt vor 2 Jahren

Verwendetes Datenbanksystem: MySQL

Ich kann den Fehler einfach nicht finden.
Obwohl alle Einzel-Tests mit UPDATE Auftragsliste ... immer nur einen Eintrag ändern wenn ich die Sendungsnummer direkt angebe.

JSON ist "{"Spedition": 1,"Sendungsnummern":["010400030000123", "010400030000456"]}";

BEGIN
    DECLARE spedition INT;
    DECLARE sendungsnummern_json JSON;
    DECLARE sendungsnummern_count INT;
    DECLARE sendungsnummer VARCHAR(60);
    DECLARE i INT DEFAULT 0;
    DECLARE id INT;
    DECLARE new_id INT;
    DECLARE num INT;
    DECLARE bn VARCHAR(10);    
    DECLARE mydate DATE;
    DECLARE bord TEXT;
   
    DECLARE v_bord_content TEXT;
    DECLARE v_first_line_end INT;
    DECLARE v_second_line_start INT;
    DECLARE v_position_to_replace1 INT;
    DECLARE v_position_to_replace2 INT;
 
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        SHOW ERRORS;
        SELECT sendungsnummer AS Sendungsnummer;
        SELECT spedition AS Spedition;
        SELECT new_id AS LastInsertID;
        SELECT sendungsnummern_count;
        SELECT sendungsnummern_json;
        ROLLBACK;
    END;
   
    SET mydate = DATE(NOW());
   
    SET spedition = json_extract(json_param, '$.Spedition');
    SET sendungsnummern_json = json_extract(json_param, '$.Sendungsnummern');
    SET sendungsnummern_count = json_length(sendungsnummern_json);

        SELECT sendungsnummern_count;
        SELECT sendungsnummern_json;

    SELECT MAX(Borderonummer) INTO bn FROM Ladeliste;
    SET num = CAST(SUBSTRING(bn, 7) AS INT) + 1;
    SET bn = CONCAT('MEGA23', LPAD(num, 4, '0'));


    START TRANSACTION;


    INSERT INTO Ladeliste (`Borderonummer`, `Ladedatum`, `Sped`) VALUES (bn, mydate, spedition);
    SELECT LAST_INSERT_ID() INTO new_id;


    WHILE i < sendungsnummern_count DO
        SET sendungsnummer = json_extract(sendungsnummern_json, CONCAT('$[', i, ']'));
       
        SELECT sendungsnummer;

        UPDATE Auftragsliste 
        SET LadelisteID = new_id 
        WHERE Sendungsnummer = sendungsnummer;

        SET i = i + 1;
    END WHILE;
    COMMIT;
END
Erstellt vor 2 Jahren

Moin, nachfolgende

ListBox

soll auch bei wiederholtem Klick auf dasselbe Item die Daten an

SelectedVerpackungPreset

übergeben.

Welches Control würdet ihr empfehlen?


<ListBox
    Width="800"
    HorizontalAlignment="Center"
    FontSize="30"
    ItemsSource="{Binding Verpackungen, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
    SelectedItem="{Binding SelectedVerpackungPreset}"
    SelectedValuePath="Verpackung">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Label Content="{Binding Verpackung}" Style="{StaticResource MaterialDesignLabel}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
<ListBox
    Width="800"
    HorizontalAlignment="Center"
    FontSize="30"
    ItemsSource="{Binding Verpackungen, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
    SelectedItem="{Binding SelectedVerpackungPreset}"
    SelectedValuePath="Verpackung">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Label Content="{Binding Verpackung}" Style="{StaticResource MaterialDesignLabel}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>


Die betreffende Eigenschaft:


        public VerpackungPresetClass? SelectedVerpackungPreset
        {
            get => selectedVerpackungPreset; set
            {
                selectedVerpackungPreset = value;

                if (string.IsNullOrEmpty(selectedVerpackungPreset.Verpackung)) return;

                VerpackungVisibility = Visibility.Collapsed;
                NewItem = selectedVerpackungPreset;
                NotifyPropertyChanged();
            }
        }

Danke im Vorraus

Erstellt vor 2 Jahren

Moin,

ich wusste nicht genau wie ich den Thread betiteln soll, also schlagt mich bitte nicht.
Und in der Annahme dass ich hier richtig bin.

Ich habe:
DatenQuelle(marieDB) => List<Klasse> list

davon sollen die Daten anhand einer Variable darin gesplittet werden in 3 Dropdowns(Dc) (geht das mit "list", brauche ich für jedes Dc ne Liste?)
oder:
List<Klasse> list (if(param...))
=>List<Klasse> list1 => Dropdown1,
=>List<Klasse> list2 => Dropdown2,
...
Die Auswahl des Dc soll jeweils in einem ItemsControl(Ic) dargestellt werden...
also, benötigte ich nach meinem gängigen Pattern jeweils weitere Listen

Die Elemente in den Ic's können gelöscht werden

Kann ich all dies mit der Hauptliste syncronisieren?
Die Auswertung wollte ich dann mit der Haptliste machen und nicht mit den anderen...

hat jemand ne IDee, hab ich das Anliegen ungenügend dargestellt?

Erstellt vor 3 Jahren

Von welcher UI Technologie sprichst Du denn? WinForms? WPF? Blazor? Xamarin?

Sorry, WPF/MVVM