Laden...
R
Regenwurm myCSharp.de - Member
Student Zentralschweiz Dabei seit 02.04.2008
Benutzerbeschreibung

Forenbeiträge von Regenwurm Ingesamt 295 Beiträge

27.11.2019 - 09:41 Uhr

Hey Taipi,

Das kann verschiedene Gründe haben wie beispielsweise:

  • Umgehen von CORS während Entwicklungsprozessen
  • Monorepo Codebasis
  • Damit bei einem Deployment die Angular-App direkt vom (bspw. IIS) geserved wird, ohne dass man sich um externes Hosten kümmern muss

Da wir bei uns aber getrennt entwickeln (eigene Repositories für je Angular und WebApi) sind meine Aussagen natürlich mit Vorsicht zu geniessen. 😃
Wir lassen beispielsweise unsere (teilwese SSR) Apps unter Docker entweder auf Nginx oder Node laufen.

Bezüglich dem Bundling / Environment.
Die einzigen Settings die unsere Angularapps jeweils benötigen sind aktuell
a) REST-API Url
b) weitere externe host-configurations, wie bspw. Sentry.
Diese werden aber nicht vom Host (NGINX / Node) vorgegeben, sondern stehen (Achtung Abt 😉) hardgecoded in den jeweiligen environment.xxx.ts files. Der Angular Build Prozess entscheidet dann jeweils welches Environment File er effektiv in die App reinsetzt.

Gruess

30.07.2018 - 16:57 Uhr

Es gibt kein 'Ini DAL' oder ein 'SQL DAL'. Es gibt genau ein Data Access Layer, welches zwei verschiedene Repositories (oder was auch immer) enthält.

Diese implementieren beide das (beispielsweise) IConfigRepository, welches mit einer ConfigEntity arbeitet.

Sprich;
Im DAL mappen die einzelnen Repositories ihre Daten in die Config Entity.
Im Business Layer wird dann die ConfigEntity in entsprechende Business Model gemappt.

Gruss,
Wurm.

19.05.2018 - 15:23 Uhr

Schon überprüft ob dein Problem nicht bereits vom verwendeten Datenbanksystem gelöst wird?
RavenDB 4 bietet zum Beispiel Document-Revisions an: https://ayende.com/blog/177665/ravendb-4-0-features-document-versioning

18.04.2018 - 13:16 Uhr

Hi scoKi!

Sorry, keine direkte Antwort zu deinem Problem.

Es gibt sonst auch die Möglichkeit Javascript / Typescript Code direkt in Google Chrome zu debuggen.

F12 (developer console) -> Sources.
Danach entweder mittels CTRL+P ein File öffnen, oder im Filetree (links) unter Webpack das gewünschte File suchen. Dort kannst du auch Breakpoints etc setzen.

Ich persönlich debugge Frontend-Code immer über die Chrome Dev Tools.

22.03.2018 - 15:04 Uhr

Was spricht gegen die Projekt-Generierung durch die React CLI (create-react-app)?
Dort gibt es ebenfalls Templates für Typescript-Projekte -> https://github.com/wmonk/create-react-app-typescript

Die F5-Konfigurationen findest du unter .vscode/launch.json.

18.02.2017 - 13:45 Uhr

Hey Leute,

Ich habe scheinbar gerade ne echte Blockade vor dem Kopf was Dependency Injection angeht.
Und zwar stelle ich mir die Frage wie ich am besten bei einem Child-Objekt verschiedene Services injiziere, ohne dass diese im Parent Objekt verwendet werden.

Beispielcode:

public class Person
{
    private IDummyInterfaceOne _interfaceA;
    private IList<Haus> _haeuser;


	public Person(IDummyInterfaceOne interfaceA)
	{
        this._interfaceA = interfaceA;

        this._haeuser = new List<Haus>();
        for (int i = 0; i < 10; i++)
        {
            this._haeuser.Add(new Haus());  // Von wo kommt das IDummyInterfaceTwo?
        }

	}


}


public class Haus
{
    private IDummyInterfaceTwo _interfaceB;

    public Haus(IDummyInterfaceTwo interfaceB)
    {
        this._interfaceB = interfaceB;
    }
}

Person ist das Objekt welches schlussendlich mehrere Häuser instanzieren soll.
Die beiden Services 'IDummyInterfaceOne' und 'IDummyInterfaceTwo' sind im DI-Container vorhanden.

Per se fallen mir jetzt zwei Möglichkeiten ein, bin mir aber nicht wirklich sicher ob diese auch der richtige Weg sind.

  1. IDummyInterFaceTwo im Person Konstruktor deklarieren, und dann einfach weiter runtergeben
    -> Wird aber bei mehreren Services / Interfaces dann auch unsauber, und vorallem verlangt dann mein Person-Objekt Services die es eigentlich (von sich aus) ja auch gar nicht benötigt (sondern nur an das Haus Objekt weitergibt).

  2. Ich rufe den (statischen Container) auf und hole von dort jeweils den Service.

Gibts etwas was ich da nicht ganz verstanden oder bedacht habe?

Merci & Gruess,
Dani

09.05.2016 - 13:52 Uhr

Jein.
iA ist kein Teil eines Objekts.
Eine statische Variable ist eine sogenannte 'Klassenvariable'.
Variabeln eines Objektes, resp. einer Instanz einer Klasse nennt man dann 'Instanzvariable'.

Beispiel.

class Foo
{
    public Int32 MyInteger { get; set; }

    public static Int32 MyStaticInteger = 0;
}


class Program
{
    static void main(string[] args)
    {
        Foo myFoo = new Foo();
        myFoo.MyInteger = 2;                // Instanzvariable MyInteger wird für das Objekt 'myFoo' gesetzt.

        Foo mySecondFoo = new Foo();
        mySecondFoo.MyInteger = 3;          // Instanzvariable MyInteger wird für das Objekt 'mySecondFoo' gesetzt.

        Foo.MyStaticInteger = 4;            // Klassenvariable MyStaticInteger ist nicht Teil einer Foo-Instanz, sondern eine statische Variable.
    }
}
21.02.2016 - 11:01 Uhr

Hey Abt,

Keine Ahnung wie positiv die Repräsentation damit im Marketing ist. 😉
Wir sind alles bald-Absolventen und und interessieren uns für die Thematik da so etwas in unserem Bachelor Studium nicht mehr so genau (oder gar nicht? 😃) gelehrt wird. Keine Angst das hat nichts mit Firmenstrategie oder reiner Publicity zu tun. 😉

Siehe Anhang für die Microservice Idee.
Die Aufteilung hier mag zwar trivial sein, soll ja aber auch nur als Beispiel- & Lernprojekt dienen.

Danke für den Input bzgl. normales Login via Forms - ich schaus mir nochmals genauer an!
Mag sein dass ich ein wenig eingerostet bin und mir dadurch das Ganze komplizierter vorstelle als es überhaupt ist.
Aber ja schlussendlich sollen es mehrere Services geben, auf welche durch ein Gateway geroutet wird.
Clients wird es SPA und Mobile App geben.

Besten Dank,
Wurm.

16.02.2016 - 17:20 Uhr

Hi Abt,

Danke für deine Antwort.
Wir wollen schlussendlich eine OAuth Login-Möglichkeit anbiete, sprich:

  • Entweder der Benutzer registriert sich bei uns mit Email & Passwort und konfiguriert dann sein Profil (weitere Daten wie beispielsweise.. Beruf, Anschrift, was weiss ich) oder
  • er nutzt einen IDP wie Facebook oder Google, authentifiziert sich dort und konfiguriert dann sein Profil weiter bei uns (wieder; Beruf, Anschrift etc).

Wichtig ist hier, dass wir wie erwähnt eine Microservice Architektur verwenden und keinen Monolith.
Alle Services können zwar die IDP Authentifizierung nachverfolgen, wie aber die Custom-Authentifizierung (die nicht über einen externen IDP, sondern über unser eigenes System erledigt wurde) verifiziert wird ist mir noch unschlüssig.
Kannst du uns da noch weiter helfen?
Oder ist - wie erwähnt - die beste Lösung, dass unser Auth-Service selber auch ein IDP also quasi ein IdentityServer ist?

Gruss,
Wurm

16.02.2016 - 17:00 Uhr

Hallo Experten,

Um uns für ein grösseres Projekt vorzubereiten entwickeln wir zur Zeit eine kleinere Web-Applikation welche die Microservice Architektur unterstützt.

Damit die einzelnen REST-Services geschützt sind, möchten wir eine Authorisierung einbauen die Service-Übergreifend ist und müssen da scheinbar noch auf den richtigen Weg geschupst werden.
Was uns da spontan in den Sinn kommt ist eine OpenID Implementation.

Dazu folgende Fragen:

  • Ist es korrekt, dass wir damit unseren eigenen Identity Server benötigen (beispielsweise https://identityserver.github.io).
  • Wir möchten die User und/oder Clients auf Policies überprüfen (keine Role-Based Authentication). Können wir diese auch auf dem IDP selber oder müssen wir diese auf allen Services definieren?
  • Business Logik Überprüfungen (beispielsweise ob ein Benutzer eine Gruppe editieren und/oder löschen kann) wird dann nicht mehr direkt mit dem OAuth Protokoll geregelt, sondern über 'eigene' interne Strukturen. Ist dies korrekt so oder haben wir da einen Denkfehler?
  • Gibt es wichtige Punkte die wir noch beachten müssen?

Beste Grüsse,
Wurm

26.03.2014 - 11:52 Uhr

Salü zusammen,

DIe Lösung war die Converter Optionen ++richtig ++einzustellen.

            IsoDateTimeConverter dateConverter = new IsoDateTimeConverter
            {
                DateTimeFormat = "dd.MM.yyyy"
            };

            Familie newEntity = JsonConvert.DeserializeObject<Familie>(JSONdetail, dateConverter);

Besten Dank noch einmal!

Gruess,
Regenwurm

10.02.2014 - 14:40 Uhr

dies ist natürlich die andere Möglichkeit, ich werde mal einen Blick darauf werfen.

Danke euch!

€:

Du kannst versuchen für jedes Format einen eigenen Converter zu bauen und dann mit dem Attribut [JsonConverter(typeof(IsoDateTimeConverter))]
an jeder Property zu handieren.

Meinst du damit die Attribute in der Mitarbeiter Klasse?

Oder kann ich die ebenfalls in einer Partial Class so verändern?
Ich google das mal, müsste ja Basic-Knowledge sein (Forenpunkt 1.x.x 😉)_

Alles klar, gegoogelt und schlauer geworden. Sogenannte MetaData Klassen sind das Stichwort - ich probiere die Sache in den nächsten Tagen aus - danke!

07.02.2014 - 14:45 Uhr

Hallo zusammen,

Ich übergebe mittels Javascript eine JSON Zeichenfolge an meinem MVC Controller.
Dort soll mittels dem JSONSerializer die Zeichenfolge in ein ModelObject zurück konvertiert werden.
Leider scheint die Klasse aus dd.MM.yyyy ein MM.dd.yyyy zu machen.
Jegliche Ansätze die Datumsformatierung irgendwie zu ändern sind bisher gescheitert.

Mein bisheriger Code sieht folgendermassen aus:

            
// employee ist der JSON String
JsonSerializerSettings settings = new JsonSerializerSettings();
            settings.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "dd/MM/yyyy" } );

Mitarbeiter JSONemployee = JsonConvert.DeserializeObject<Mitarbeiter>(employee, settings);

Mit diesem Code erhalte ich jedoch eine FormatException.
Ohne die JsonSerializerSettings werden Tag & Monat vertauscht.

Mein JSON String hat in etwa folgendes Format

{
   "ID":"6",
   "Name":"xxxxxxxxx",
   "Vorname":"xxxxxxxx",
   "Strasse":"xxxxxxxx",
   "PLZ":"xxxxxxxxxx",
   "Ort":"xxxxxxxxxx",
   "Geburtsdatum_Raw":"699840000000",
   "Geburtsdatum":"06.03.1992",
   "Geburtsdatum_DDDWS":"0:0:-1:-10000:-10000:0:-10000:-10000:1:0:0:0",
   "Geburtsdatum_DDD_C_FNPWS":"0:0:-1:-10000:-10000:0:0px:-10000:1:0:0:0",
   "Geburtsdatum$DDD$C":"03/06/1992:03/06/1992",
   "Telefon_Home":"xxxxxxxxxxxxx",
   "Telefon_Mobil":"xxxxxxxxxxxxx",
   "Funktion":"CFO",
   "Einstellungsdatum_Raw":"1388534400000",
   "Einstellungsdatum":"01.01.2014",
   "Einstellungsdatum_DDDWS":"0:0:-1:-10000:-10000:0:-10000:-10000:1:0:0:0",
   "Einstellungsdatum_DDD_C_FNPWS":"0:0:-1:-10000:-10000:0:0px:-10000:1:0:0:0",
   "Einstellungsdatum$DDD$C":"01/01/2014:01/01/2014",
   "Ausbildung":"-",
   "Ausbildungsabschluss_Raw":"N",
   "Ausbildungsabschluss":"",
   "Ausbildungsabschluss_DDDWS":"0:0:-1:-10000:-10000:0:-10000:-10000:1:0:0:0",
   "Ausbildungsabschluss_DDD_C_FNPWS":"0:0:-1:-10000:-10000:0:0px:-10000:1:0:0:0",
   "Ausbildungsabschluss$DDD$C":"02/07/2014",
   "Email":"xxxxx@xxxx.ch",
   "AHV":"xxxxxxxxxx",
   "Krankenkasse":"xxxxxxx",
   "MutationDateTime":"07.02.2014 14:06:48",
}

Die Datumswerte kommen aus einem DevExpress DateEdit Control.
Weiss jemand eine Lösung?

Beste Grüsse,
Regenwurm

29.01.2014 - 17:10 Uhr

Okay alles klar, danke für eure Hilfe!

Gruess,
Regenwurm

29.01.2014 - 15:39 Uhr

Hey,

Habe ich nicht pro View-Unterordner ein Controller?

Sprich, GruppenController, MitarbeiterController, NewsController?

29.01.2014 - 15:11 Uhr

Hallo zusammen,

Danke für die schnellen Antworten.
Das mit dem Deaktivieren des Javascripts ist natürlich so eine Sache.
Damit werden wir uns sicherlich auch noch befassen.
Der Hinweis auf Knockout.JS ist super, das schauen wir uns ebenfalls noch an.

Zu den Areas, das Ganze sieht sehr interessant aus.
So wie ich das verstanden habe, ist es eine gute 'Methode' jegliche Module in eine eigene Area zu verpacken.

Angenommen ich erstelle eine Area Verwaltung.
Dort drin müsste man Mitarbeiter, Gruppen sowie News verwalten können.
Wäre es eine gute Lösung im View Ordner in der Area dann für jede 'Verwaltungsmöglichkeit' einen Unterordner zu erstellen?

Sprich

Verwaltung
   -- /Views/
      -- /Mitarbeiter/
         -- NeuerMitarbeiter.aspx
         -- MitarbeiterEditieren.aspx
     -- /Gruppen/
         -- NeueGruppe.aspx
         -- GruppenZusammenfuegen.aspx
     -- /News/
        -- NewsErfassen.aspx
  -- /Models/
  -- /Controller

Im Controller gebe ich dann für die Views jeweils - wie von dir Abt empfohlen - den Relativen Pfad zu den Views zurück.

return View("Gruppen/NeueGruppe.aspx");

Beste Grüsse,
Regenwurm

28.01.2014 - 15:56 Uhr

Hallo zusammen,

Wir sind dabei ein grösseres Projekt mittels dem MVC Prinzip zu entwickeln.
Es stellt sich die Frage inwiefern man mittels dem MVC den View Ordner organisieren kann.
Grundsätzlich ist es ja so dass alle Views in dem View Ordner sind.
Ist es jedoch quasi möglich dass man innerhalb des Orderns noch weitere Unterordner erstellen kann und der Controller trotzdem noch begreift wie was abläuft?
Beispielsweise die Ordner Mitarbeiter und Gruppen:

MVC  
-- /Views  
 -- /Home  
   -- Default.aspx  
 -- Verwaltung  
   -- Default.aspx  
   -- /Mitarbeiter  
     -- Edit.aspx  
     -- View.aspx  
   -- /Gruppen  
      -- Edit.aspx  
      -- foo.aspx  
  -- Einstellungen  

Ich bin auf sogenannte 'Areas' gestossen (Using areas in ASP.NET MVC to organize a project).
Funktioniert ein wenig anders als mein oben genannter Ansatz, aber sieht schon einmal gut aus.
Wäre dies der richtige Ansatz dafür?

Nebenbei soll die Webapplikation mit purem Ajax funktionieren.
Sprich die Seite soll niemals neugeladen werden.
Wäre es also möglich aus der einen Seite (welche mit Controller X) verbunden ist, ein View reinzuladen welches auf Controller Y basiert?

Ein bisschen schwer zu erklären, sorry.
Aber ich hoffe ihr versteht was ich zu Fragen probiere.

Besten dank & Gruess,
Regenwurm

06.03.2013 - 13:28 Uhr

Hallo zusammen,

Chrome scheint bei meinem AutoCompleteExtender Control die CSS Klassen ('CompletionListCssClass', 'CompletionListItemCssClass', 'CompletionListHighlightedItemCssClass' nicht anzunehmen.

Beim IE und Firefox funktioniert das Ganze einwandfrei.
Weiss da jemand rat?

Gruss,
Regenwurm

EDIT:
Erledigt!
Chrome hatte wohl Probleme die Klassen zu finden da vor dem Klassennamen noch ein #XXXX war.

Gruss

27.06.2012 - 14:20 Uhr

Hallo zusammen,

In der System.Web.Ui.WebControl Klasse gibt es ja das Attribut 'TabIndex', womit fetgelegt wird an welcher Stelle das Control 'durch getabt' wird.

Besteht die Möglichkeit dass ich dieses Attribut einem System.Web.Ui.UserControl geben kann?

Hintergrund ist folgender dass ich ein Benutzercontrol habe, welches nicht durchgetabt (respektive erst ganz am schluss) werden soll.
Das Control von System.Web.Ui.WebControl erben zu lassen steht zur Zeit nicht zur Verfügung.

Besten Dank & Gruess,
Regenwurm

15.06.2012 - 16:15 Uhr

Ich würde mal schätzen dass du beim Logfile ein Pfad Problem hast (existiert nicht, fehlende Rechte, ...).

Gruss

14.05.2012 - 14:41 Uhr

Ok, hatte so eben den Gedankenblitz, einen eigenen Event zu erstellen und diesen dann mit Notepad zu öffnen 😃

Es scheint, dass es normalerweise nur 'FREE' & 'BUSY' gibt.
Microsoft hat bei Outlook ein eigenes Attribut dafür (X-MICROSOFT-CDO-BUSYSTATUS).

Gruss

14.05.2012 - 14:24 Uhr

Hallo zusammen,

Ich muss automatisch ein Kalender erstellen.
Jetzt sollen alle einzelnen Events mit der Eigenschaft Free markiert werden.

Jedoch finde ich kein passendes Attribut im RFC2445.
Das VFREEBUSY Attribut scheint mir das naheliegenste zu sein, doch irgendwie werde ich nicht genau schlau aus dem (man muss ja da irgendwie nochmals einen Zeitraum angeben).

Kann mir da jemand helfen?

(RFC Link: http://www.ietf.org/rfc/rfc2445.txt)

Merci & Gruess,
Regenwurm

€: Puh wahrscheinlich habe ich die falsche Kategorie erwischt - sorry 😕

26.03.2012 - 10:50 Uhr

Hi Abt,

Dass der IE sicher nicht der optimale Browser ist bin ich mir bewusst.
Leider habe ich hier Vorgaben welche ich nicht einfach umgehen kann.

Es scheint so als ob die Übergabe der POST Variabeln nur im Debug Modus funktioniert (keine Ahnung warum).

Ausserdem wird nach erfolgreicher Verarbeitung 'einfach so' der Eventhandler meiner 'Löschen' Spalte aufgerufen & das neu erstellte Item dadurch wieder aus der Datenbank entfernt.

Einen Fehler habe ich bei einem kurzen Überblick leider nicht gefunden.
Aufgrund dessen dass es sich hier um eine Abschlussarbeit handelt und ich einen begrenzten Zeitplan habe, muss ich die Massnahme ergreiffen und eine separate Seite für die Bearbeitung der einzelnen Spalten erstellen.
Mir fehlt einfach die Zeit um mich hier weiter mit dem Problem zu beschäftigen.

Aber ich bleibe dran um dies für mögliche - zukünftige - Projekt zu realisieren.

Merci nochmal für die Tipps,

Gruess

26.03.2012 - 10:09 Uhr

Hi,

Die POST Variabeln sind im Page_Load Event alle null.
Ich arbeite hier leider mit Internet Explorer und deswegen ist für mich Firebug keine Hilfestellung.

Wenn ich das Javascript debugge sehe ich folgenden HTML Code in meiner erstellten Form:


<FORM id=frmRCH method=post name=frmRCH action=http://localhost:62456/WebApplication/Oekobonus/Bezueger_Form.aspx?mode=edit&amp;id=10057405><INPUT id=nummer value=adfasdf type=hidden name=nummer><INPUT id=rechnungsnummer type=hidden name=rechnungsnummer><INPUT id=bezugsdatum value=26.03.2012 type=hidden name=bezugsdatum><INPUT id=rechnungsdatum type=hidden name=rechnungsdatum><INPUT id=typ value=1 type=hidden name=typ><INPUT id=checkid value=0 type=hidden name=checkid></FORM>

Also das erstellen des Formulars sollte meiner Meinung nach ok sein.

Gruess

26.03.2012 - 09:50 Uhr

Hi Abt,

Sorry bin noch nicht ganz wach. 😃
Hier ist meine (momentane) Implementation:
Javascript:

<script type="text/javascript">

    // MODA: Funtkion von Stackoverflow um mittels Javascript einen POST Request zu senden.
    // [URL]http://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit[/URL]
    function post_to_url(path, params, method) {
        method = method || "post"; // Set method to post by default, if not specified.
        var form = document.createElement("form");
        form.setAttribute("id", "frmRCH");
        form.setAttribute("name", "frmRCH");
        form.setAttribute("method", method);
        form.setAttribute("action", path);
        for (var key in params) {
            if (params.hasOwnProperty(key)) {
                var hiddenField = document.createElement("input");
                hiddenField.setAttribute("type", "hidden");
                hiddenField.setAttribute("name", key);
                hiddenField.setAttribute("id", key);
                hiddenField.setAttribute("value", params[key]);
                form.appendChild(hiddenField);
            }
        }
        document.body.appendChild(form);
        form.submit();
    }


    function InsertData(CheckID) {
        var Nummer = document.getElementById("TbNummer").value;
        var Rechnungsnummer = document.getElementById("TbRechnungsnummer").value;
        var Bezugsdatum = document.getElementById("TbBezugsdatum").value;
        var Rechnungsdatum = document.getElementById("TbRechnungsdatum").value;
        var Typ = document.getElementById("DDTyp").value;


        post_to_url(document.URL, {                     // Formdaten via POST versenden
                'nummer':           Nummer,             // Railcheck Nummer
                'rechnungsnummer':  Rechnungsnummer,    // Rechnungsnummer
                'bezugsdatum':      Bezugsdatum,        // Datum des Railcheck Bezuges
                'rechnungsdatum':   Rechnungsdatum,     // Datum der Rechnung (bei welcher der Railcheck eingesetzt wurde)
                'typ':              Typ,                // Typ des Railchecks (Codevalue Angabe -> Siehe Codeverwaltung bei WebApps2)
                'checkid' :         CheckID             // ID des Checks (0 -> neu!)
            }, "POST"
        );
    }

</script>

Im Page_Load ist folgender Code Abschnitt zu finden, um die Daten zu verarbeiten:

if (!String.IsNullOrEmpty(Request.Form["checkid"]))
        {
            Int32 RailID = Int32.Parse(Request.Form["checkid"]);
            
            String RailRechnungsnummer = Request.Form["rechnungsnummer"];

            DateTime RailBezugsdatum = new DateTime();
            if (String.IsNullOrEmpty(Request.Form["bezugsdatum"]) || !DateTime.TryParse(Request.Form["bezugsdatum"], out RailBezugsdatum))
            {
                SfFeedback.SqlFailure = "Das Bezugsdatum ist ungültig!";
                Server.Transfer(Request.Url.AbsolutePath);
            }

            DateTime? RailRechnungsdatum = null;
            if (String.IsNullOrEmpty(Request.Form["rechnungsdatum"]))
                RailRechnungsdatum = null;
            else
                RailRechnungsdatum = DateTime.Parse(Request.Form["rechnungsdatum"]);

            string RailTyp = Request.Form["typ"];

            string RailNummer = Request.Form["nummer"];

            Railchecks input = cmpRail.LoadSingleData(RailID);
            if (input == null)
                input = new Railchecks() { ID = 0 };

            input.Nummer = RailNummer;
            input.Rechnungsnummer = RailRechnungsnummer;
            input.Rechnungsdatum = RailRechnungsdatum;
            input.Bezugsdatum = RailBezugsdatum;
            input.Typ_CD = RailTyp;

            if (cmpRail.SaveData(input))
            {
                SfFeedback.SqlSuccess = "Railcheck erfolgreich hinzugefügt / bearbeitet";
            }
            else
            {
                SfFeedback.SqlFailure = "Während des Bearbeitens des Railchecks ist ein Fehler aufgetreten!";
            }

            Server.Transfer(Request.Url.AbsolutePath, false);

        }

Gruess

26.03.2012 - 09:27 Uhr

Hallo zusammen,

Damit ich in einer Auflistung eine 'In-Place' Edit Funktion ohne Ajax realisieren kann, muss ich via Javascript einen POST (oder einen GET) Request absenden, und diesen mittels ASPX verarbeiten.

Ich habe im Internet nach geeigneten Lösungen für den Javascript Teil gesucht und bin auf folgenden Link gestossen:
http://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit

Wenn ich diese Zeilen ausführe, erhalte ich auf meiner ASPX Seite jedoch keine Inhalte im HTTP Header (POST-Variable == null).

Ist der Javascript Teil fehlerhaft, oder muss ich wo anders suchen?

Gruess

19.03.2012 - 11:29 Uhr

Hallo zusammen,

Bisher habe ich meine Datenbank Modelle (für das Entity Framework) immer bereits im Microsoft SQL Management Studio erstellt.
Diest ist aktuell nicht mehr möglich weil alle Tabellen die ich benütze eine FK Referenz auf ein View brauchen. -> Im Management Studio kann ich bei den Datenbank Diagrammen kein View hinzufügen.

Nun muss ich also die Assoziationen direkt im Model Designer erstellen -> und daran scheitere ich.

Um eine Assoziation zu erstelle mache ich einen Rechtsklick auf die erste Tabelle und wähle 'Add -> Association'.

Bei der linken Spalte wähle ich eine meiner Tabelle aus (die einen FK besitzt).
Bei der rechten Spalte wähle ich das View aus (auf welches referenziert werden soll).

Das Navigation Property bei der rechten Spalte brauche ich nicht (da ich ja nur von meiner Tabelle aus referenzieren möchte).
Ebenfalls soll kein Foreign Key Property erstellt werden.

Meist muss ich die assoziation noch bearbeiten, da er öfters 2 falsche Spaltenreferenziert.

Das Ganze funktioniert super wenn ich eine Tabelle benütze, welche keinen 'ID Primary Key hat' (Also quasi einen Identifier).

Sobald die Tabelle aber einen Identifier UND einen Foreign Key hat, sagt er mir dass ich beide Spalten referenzieren muss.

Inwiefern kann ich die ID-Spalte so markieren, dass ich sie nicht mit referenzieren muss?

Gruess,
Regenwurm

22.11.2011 - 09:43 Uhr

Das C++ Programm soll ja die Zugangsdaten verschlüsselt bekommen um sie zu verwenden und sich zu authentifizieren.

Wenn sich das C# Programm beim C++ anmelden muss, dann vergleiche einfach die Checksumme.

Oder soll das C# Programm das Passwort an das C++ senden, welches sich an einem 3ten Glied authentifizieren muss ??

21.11.2011 - 17:16 Uhr

Wenn ich mich jetzt nich ganz täusche, basiert eine Verschlüsselung doch immer auf Mathematik - von daher jede?

15.11.2011 - 15:23 Uhr

Ok, schaue ich mir in den nächsten Tagen mit Sicherheit mal an - Vielen Dank.

Ich habe das Problem temporär so gelöst dass ich das Objekt vor dem Speichern in ein neues kopiere.

Gruess,
Regenwurm

15.11.2011 - 15:06 Uhr

Die Objekte brauche ich (leider).

Auf der linken Seite meiner Webform habe ich diverse Textfelder zum ausfüllen einer Lizenz.

Auf der rechten Webseite ein radGrid Control in welches man alle Instrumente einfüllt die lizenziert werden sollen.
Das RadGrid verlangt eine DataSource (schlussendlich wird auf die IQueryable<T> des benötigten Objektes aus dem Entity Framework verlinkt).
Dort gebe ich eine List<T> an. Da das GridControl jedesmal via AJAX die Seite neulädt, wird auch mein List-Objekt neugeladen. - Aus diesem Grund speichere ich diese in der Session.
Dasselbe mit den aktuellen Daten der Lizenz.

Schlussendlich wenn der Benutzer auf einen Button drückt, will ich dann beide Objekte (einmal eine Liste mit den Instrumenten & einmal die Lizenz) in die Datenbank abspeichern.
Geht aber aufgrund der oben angegeben Exception nicht.

Ich hoffe dies ist nun ein bisschen ausführlicher erklärt 😃

Gruess,
Regenwurm

15.11.2011 - 14:48 Uhr

Hi Abt,

Die Objekte die in der Session abgespeichert werden, sind 'neu' -> also noch nie in der Datenbank abgespeichert.
Deswegen habe ich auch keine Primary Keys zur Verfügung.

Gruess,
Regenwurm

15.11.2011 - 14:19 Uhr

verwendetes Datenbanksystem: <Entity Framework 3.5>

Hi,
Auf einer Webform speichere ich gewisse Entity Objekte in verschiedenen Sessions, da die eine Seite immer wieder mal neugeladen wird.

Wenn ich dann mein Entity Objekt in der Datenbank abspeichern möchte erhalte ich die Exception > Fehlermeldung:

An entity object cannot be referenced by multiple instances of IEntityChangeTracker.

Im Internet lese ich öfters dass dies damit zusammenhängt, dass verschiedene Objekt-Kontexe im Spiel sind.
Bei den einzelnen Objekten in den Sessions sollte dies nicht der Fall sein, weil ich sie sonst nicht miteineander referenzieren könnte.

Was kann sonst noch das Problem sein?

Gruss,
Regenwurm

04.11.2011 - 14:01 Uhr

Alles klar - vielen dank euch beiden 😃
Habe die .ToList() Variante verwendet, weil ich nicht wirklich viele Datensätze in der Tabelle habe. 😉

Gruess

04.11.2011 - 12:28 Uhr

Hi zusammen,

Ich will mir eine Liste filtern, welche ich via Entity-Modell zurückbekomme.
Das Objekt beinhaltet ein ValidFrom und ein ValidUntil Attribut, was mir unter anderem sagt ob das Objekt (resp. der Kunde in meinem Fall) aktiv oder inaktiv ist.

Um mir das Ganze ein wenig zu vereinfachen habe ich ein neues Klassenfile erstellt (die Entity-Klassen sind ja alle partiell) und dort ein bool Attribut erstellt das mir entweder true oder false aus den beiden Daten generiert.

Wenn ich nun über LINQ auf das Bool-Attribut filtere, erhalte ich folgende Fehlermeldung: > Fehlermeldung:

The specified type member 'IsActive' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

Heisst das, dass ich in der LINQ Abfrage nur Attribute benutzen darf, die auch im Entity Modell vorhanden sind?

Hier wäre dann noch der Code:

Partielle Klasse:

    public partial class Customers
    {
        public bool IsActive
        {
            get
            {
                // Database default date is 31-12-2222
                
                if (this.CustomerValidities.Last().ValidUntil.CompareTo(new DateTime(2222, 12, 31)) == 1)
                    return true;

                if (this.CustomerValidities.Last().ValidFrom < DateTime.Now && this.CustomerValidities.Last().ValidUntil > DateTime.Now)
                    return true;

                return false;
            }
        }
    }

Filterung:

        if (cbActive.Checked)
            Results.AddRange(cmpCustomer.LoadAllCustomer().Where(p => p.IsActive));

        if (cbInactive.Checked)
            Results.AddRange(cmpCustomer.LoadAllCustomer().Where(p => !p.IsActive));

Besten Dank & 'en guete 😃',
Regenwurm

14.10.2011 - 09:44 Uhr

Hi unconnected,

Sorry für die spätere Antwort - war gestern leider nicht im Büro.
Das Ganze funktioniert mit dem Include!! 😃
Ich erhalte nun eine Referenz auf den Eintrag in der Rollen-Tabelle.

Besten Dank!

Gruess,
Regenwurm

12.10.2011 - 13:28 Uhr

Hi unconnected,

Ein 'Include' gibt es leider nicht.
Meinst du ich könnte sonst mit Join etwas rumwerkeln?

Gruss

12.10.2011 - 09:34 Uhr

Das Ganze schlägt dann jedoch fehlt, weil FK_Roles null ist.
Warum ist dies null. Ein User hat eine Rolle, nicht? Dann mach per Datenbank so dass ein User eine Rolle haben MUSS, dann ist FK_Roles nie null.

Gruß
Michael

Hi,
In den Tabellen ist null nicht erlaubt - es sollte also immer eine Zuweisung geben.

Ich habe im Entity Model mal die Relation der 2 Tabellen Roles & UserInAffiliates geöffnet (Anhang).
Sieht so aus als ob er zwar die referenz zwischen den Tabellen kennt, aber nicht weiss auf welche Attribute er schauen soll.

Ich habe nun unter Principal Key den FK_RoleId mit RoleId zu verknüpfen versucht.
Erhalte dann jedoch den Error

Error 111: Properties referred by the Principal Role rpdlic_UserAffiliatesRoles must be exactly identical to the key of the EntityType T_IS.RPDLicenseManager.UserInAffiliates referred to by the Principal Role in the relationship constraint for Relationship T_IS.RPDLicenseManager.FK_rpdlic_UserAffiliates_rpdlic_Roles. Make sure all the key properties are specified in the Principal Role.

Was will mir diese Fehlermeldung genau mitteilen?

@unconnected
Danke für den Link - aber so wie es aussieht ist dies für .NET 4.0 (Ich benutze hier .NET 3.5).

Gruss,
Regenwurm

11.10.2011 - 16:53 Uhr
        public IQueryable<UserInAffiliates> LoadAllAffiliateUsers_AffiliateFiltered(int AffiliatedId)
        {
            var ctx = RPDEntities.Context;
            return ctx.UserInAffiliates.Where(usr => usr.FK_AffiliateId == AffiliatedId);
        }
11.10.2011 - 16:36 Uhr

Hi,

Sorry - Role stimmt natürlich (FK_Roles genauert gesagt).
Nein FK_UserId ist ausgefüllt (Liegt aber wohl daran, dass dies keine Referenz ist - sondern das Attribut in der Tabelle selber existiert).

11.10.2011 - 15:48 Uhr

verwendetes Datenbanksystem: <SQL Server: 2005 - .NET Framework 3.5>

Hi,

Ich habe hier ein EntityObject (UserInAffiliate).
Nun würde ich gerne den Namen der zugehörigen Region auslesen -> Die Tabelle Regions ist als FK markiert & mit einer ID identifiziert.

        foreach (UserInAffiliates usr in lUser)
        {
            TableRow TrUser = new TableRow();
            TableCell TdUserId = new TableCell() { Text = usr.FK_UserId };
            TableCell TdRoleId = new TableCell() { Text = usr.FK_Roles.Name };

            TrUser.Cells.AddRange(new TableCell[] {TdUserId, TdRoleId});
            TblUsers.Rows.Add(TrUser);
        }

Das Ganze schlägt dann jedoch fehlt, weil FK_Roles null ist.
Warum?
Einträge sind vorhanden.

Der benötigte Teil des Modells habe ich euch angehängt.

Gruess,
Regenwurm

29.09.2011 - 16:20 Uhr

Hallo zusammen,

Wir haben das Problem mittlerweile gelöst.
Im WUC Ordner (oder so) haben wir die .msi des Entity Frameworks einfach manuell nochmals nachinstalliert - nun läuft alles wie geschmiert. (:

Danke vielmals für eure Bemühungen!

Gruss,
Regenwurm

27.09.2011 - 15:32 Uhr

Hi,

Die Option ist leider nicht dabei.

Wie gesagt - unter Visual Studio 2008 funktioniert alles perfekt -> Ich kann die Models öffnen & auch neue hinzufügen.
Unter Visual Studio 2010 sind bei mir die Items nicht verfügbar. 😕

Gruss

27.09.2011 - 14:11 Uhr

Hi herbivore,

Nein - das war es leider auch nicht.
Ich habe ein Projekt foo vor mir dass ein Entity Data Model (*.edmx) enthält (wurde mit Visual Studio 2008 erstellt).
Sobald ich das Ganze mit Visual Studio 2010 zu öffnen probiere, erscheint mir nicht das Model selber, sondern das Ganze in der XML-Struktur.
Und das Ziel-Framework wurde nie geändert.

Gruss

27.09.2011 - 13:59 Uhr

€ gefunden. 😃

C:\Program Files\Microsoft Visual Studio 10.0\VC>gacutil /l EntityFramework
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.

The Global Assembly Cache contains the following assemblies:
EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934
e089, processorArchitecture=MSIL

Number of items = 1

Installiert ist es also.
Nur, warum wird es nicht 'verwendet'?

27.09.2011 - 13:36 Uhr

Hi gfoild,

Ich nehme an

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin>gacutil /l EntityFramework
Microsoft (R) .NET Global Assembly Cache Utility. Version 3.5.30729.1
Copyright (c) Microsoft Corporation. All rights reserved.

The Global Assembly Cache contains the following assemblies:

Number of items = 0

sieht nicht gut aus?

Gruss

27.09.2011 - 13:12 Uhr

Hi zusammen,

Kurz und knapp; Bei mir fehlt das Entity Framework unter Visual Studio 2010.
Bei VS 2008 ist es vorhanden.

Ich habe die Visual Studio 2010: Professional Edition installiert.
Nebenbei das Service Pack 1 für VS.
Und sogar Entity Framework 4.1 heruntergeladen & installiert.
(.Net Framework 4.0 selbstverständlich ebenfalls)

Das Problem scheint nur bei mir aufzutreten - meine Arbeitskollegen haben alle das Framework.
Ich hatte noch im Hinterkopf, dass das EF eigentlich schon als Standard integriert ist unter VS 2010.

Oder fehlen mir noch einige elementare Files?

Gruess,
Regenwurm

02.09.2011 - 08:57 Uhr

Hallo,

Ich bin gerade am gleichen Problem.
Als Testversuch habe ich das Ganze in die Page_Load Routine eingebaut.

Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "ScriptName", "alert('foo');");

Passieren tut lediglich nichts.
Kann mir jemand helfen?

Gruess,
Regenwurm

€:

Ok ich habe das Ganze nun einfach mit Response.Write gelöst 😃

                Response.Write("<script type='text/javascript'>\n");
                Response.Write("window.open('W');");
                Response.Write("</script>");
01.09.2011 - 13:42 Uhr

Hallo zusammen,

Ich muss bei einem Methodenaufruf sofort ein Popup öffnen (dynamisch generierte URL).

Im Internet finde ich immer wieder solche Snippets;

myControl.Attributes.Add("onLoad", "alert('foo');");

Dies funktioniert leider nicht, da kein Postback ausgeführt wird.
OnClientClick ist für mich auch keine Lösung da dieser Befehl VOR dem eigentlichen Server-seitigen Code geschieht. (Am schluss steht ein Server.Transfer()).

Ich glaube ich habe gerade ein Brett vor dem Kopf. 😉

Das Ganze läuft folgendermassen ab.
Benutzer drückt auf den 'Speichern' Button:

        if (Page.IsValid)
        {
                            // [...]
                            if (CompAnmeldung.DeleteData(Convert.ToInt32(HFAcceptId.Value)))
                    SaveData(Convert.ToInt16(HfDotNetId.Value));
                else
                    SfFeedback.SqlFailure = "Es ist ein Fehler beim löschen aufgetreten.";

        }
        else
            SfFeedback.SqlFailure = "Bitte die obligatorischen Felder ausfüllen.";

	protected void SaveData(int id)
	{

            // [...]
                    if (HfMode.Value == "accept")
            {
                // open letter here
                //Hier soll das Popup geöffnet werden.                
            }
            Server.Transfer("Default.aspx");
            // [...]


       	}

Gruess,
Regenwurm