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!
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.
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...
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.
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!
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
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
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
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?
Von welcher UI Technologie sprichst Du denn? WinForms? WPF? Blazor? Xamarin?
Sorry, WPF/MVVM