示例#1
0
文件: Bedarf.cs 项目: Readock/IHK2017
 /// <summary>
 /// Ermittelt den Funktionswert der Bedarfsfunktion zum Zeitpunkt x
 /// </summary>
 /// <param name="x">Zeitpunkt</param>
 /// <returns>Funktionswert</returns>
 public virtual int Get(double x)
 {
     // Iteriere ueber alle Aenderungs Daten wenn Zeitpunkt > x
     return(Daten.Sum((item) => {
         if (item.Zeitpunkt > x)
         {
             return 0;
         }
         // Addiere 1 wenn Nachfrage und subtrahiere 1 wenn Angebot
         return item.IsNachfrage ? 1 : -1;
     }));
 }
示例#2
0
 private static void save()
 {
     try
     {
         Daten daten = new Daten();
         daten.name    = name;
         daten.passwd  = passwd;
         daten.execute = exe;
         daten.argus   = argus;
         dataSave.SaveData(daten, fileName);
     }
     catch (Exception ex) { Console.WriteLine("InitFileSaveError: " + ex.Message); }
 }
        public FirmaObservableObject(Daten.Firma firma)
        {
            _Firma = firma;

            firma.Haeufigkeiten.ForEach(x => Haeufigkeiten.Add(x));

            firma.Objekte.ForEach(x =>
            {
                var tempObjekt = new ObjektObservableObject(MainWindowViewModel.Settings, this);
                tempObjekt.Load(x);
                Objekte.Add(tempObjekt);
            });
        }
示例#4
0
 private static void load()
 {
     if (File.Exists(fileName))
     {
         FileStream fs = null;
         try
         {
             XmlSerializer xs = new XmlSerializer(typeof(Daten));
             fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
             Daten daten = (Daten)xs.Deserialize(fs);
             name   = daten.name;
             passwd = daten.passwd;
             exe    = daten.execute;
             argus  = daten.argus;
             fs.Close();
         }
         catch (Exception e) { System.Console.WriteLine("InitFileLoadError: " + e.Message); fs.Close(); }
     }
 }
示例#5
0
文件: Bedarf.cs 项目: Readock/IHK2017
 /// <summary>
 /// Beraechnet die Aenderungen der Bedarfsfunktion
 /// </summary>
 /// <param name="polynom">Funktion</param>
 /// <param name="isNachfrage">Art der Funktion</param>
 private void BeraechneDaten(Polynom polynom, bool isNachfrage)
 {
     // Endlosschleife mit Laufvariable i
     for (int i = 1; true; i++)
     {
         // Neues Polynom erzeugen mit i verschiebung in -y Richtung
         double[] neueVorfaktoren = (double[])polynom.Vorfaktoren.Clone();
         neueVorfaktoren[0] = neueVorfaktoren[0] - i;
         var verschobenesPolynom = new Polynom(neueVorfaktoren);
         // Nullstelle berechnen
         var nst = FindeNST(verschobenesPolynom);
         // Besitzt das Polynom eine NST ?
         if (!nst.HasValue)
         {
             // Schleife beenden
             return;
         }
         // Aenderungsdaten erzeugen und in Daten abspeichern
         Daten.Add(new Aenderung(polynom, isNachfrage, i, nst.Value, PosX, PosY));
     }
 }
示例#6
0
文件: Bedarf.cs 项目: Readock/IHK2017
        /// <summary>
        /// Ermittelt den Maximalen Bedarf im verlaufe der Zeit
        /// </summary>
        /// <returns>Maximaler Bedarf</returns>
        public virtual int BeraechneMaxBedarf()
        {
            // Initialisiere Max
            int max = 0; // da 0 startwert ist kann das max nie unter 0 fallen

            // Sortiere Daten von Aenderung nach Zeitpunkt
            // (mit beachtung von Nachfrage zuerst wenn zeit identisch)
            Daten.Sort((a, b) => {
                int compare = a.Zeitpunkt.CompareTo(b.Zeitpunkt);
                if (compare == 0 && a.IsNachfrage && !b.IsNachfrage)
                {
                    compare = 1; // Nachfrage hat vorrang wenn gleiche zeit
                }
                if (compare == 0 && b.IsNachfrage && !a.IsNachfrage)
                {
                    compare = -1;
                }
                return(compare);
            });
            // Daten durchlaufen
            int currentValue = 0;

            foreach (var item in Daten)
            {
                // Berrechne aktuellen Wert
                currentValue += item.IsNachfrage ? 1 : -1;
                // aktueller Wert > Max ?
                if (currentValue > max)
                {
                    // Setze Maximum auf den aktuellen Wert
                    max = currentValue;
                }
            }
            // Gebe Maximum zurueck
            return(max);
        }
        static void Main(string[] args)
        {
            Daten            daten        = new Daten();
            Handler <Person> queueHandler = new Handler <Person>("mypersonqueue");


            for (int i = 0; i < 5; i++)
            {
                Person person1 = new Person(daten.getRandomNamen(), "Nachname", daten.getRandomAlter(18, 99), daten.getRandomSuperkraft());

                if (person1.Alter > 30)
                {
                    //Add to Queue
                    queueHandler.Send(person1);
                    Console.WriteLine("Person " + person1.Vorname + " im Alter von " + person1.Alter + " wurde zur Queue hinzugefügt.");

                    //Add to Database
                    person1.savePersonInDataBase();
                    Console.WriteLine("Person " + person1.Vorname + " im Alter von " + person1.Alter + " wurde zur Datenbank hinzugefügt.");
                }
            }

            Console.ReadLine();
        }
        public void Save(Daten.Leistung leistung)
        {
            leistung.Etage = Etage.Name;
            leistung.Bezeichnung = Bezeichnung.Name;
            leistung.Art = Art.Name;
            leistung.Methode = Methode.Name;
            leistung.Maenge = Maenge.Name;
            leistung.Anzahl = Anzahl;
            leistung.RichtLeistung = RichtLeistung;
            if (Haeufigkeit != null)
            {
                leistung.HaeufigkeitID = Haeufigkeit.ID;
            }
            else
            {
                leistung.HaeufigkeitID = 0;
            }

            leistung.FixPreis = FixPreis;
            leistung.Fix = Fix;
        }
        public void Load(Daten.Leistung leistung)
        {
            Etage = SettingRankValue.GetSettingRankValue(Objekt.Settings.Etage, leistung.Etage, ref _EigeneEtage);
            if (EigeneEtage) EigeneEtageString = leistung.Etage;

            Bezeichnung = SettingValue.GetSettingValue(Objekt.Settings.Bezeichnung, leistung.Bezeichnung, ref _EigeneBezeichnung);
            if (EigeneBezeichnung) EigeneBezeichnungString = leistung.Bezeichnung;

            Art = SettingValue.GetSettingValue(Objekt.Settings.Arten, leistung.Art, ref _EigeneArt);
            if (EigeneArt) EigeneArtString = leistung.Art;

            Methode = SettingValue.GetSettingValue(Objekt.Settings.Methoden, leistung.Methode, ref _EigeneMethode);
            if (EigeneMethode) EigeneMethodeString = leistung.Methode;

            Maenge = SettingValue.GetSettingValue(Objekt.Settings.Einheit, leistung.Maenge);
            Anzahl = leistung.Anzahl;
            RichtLeistung = leistung.RichtLeistung;
            FixPreis = leistung.FixPreis;
            Fix = leistung.Fix;

            Haeufigkeit = Haeufigkeit.GetHaeufigkeit(Objekt.Firma.Haeufigkeiten, leistung.HaeufigkeitID);
        }
示例#10
0
 public ObjektObservableObject(Daten.Settings settings, FirmaObservableObject firma)
 {
     _Settings = settings;
     _Firma = firma;
 }
示例#11
0
        public void Save(Daten.Objekt objekt)
        {
            objekt.Arbeistage = Arbeistage;
            objekt.Name = Name;
            objekt.Beschreibung = Beschreibung;
            objekt.Stundenverrechnungssatz = Stundenverrechnungssatz;
            objekt.RichtleistungsFaktor = RichtleistungsFaktor;

            foreach (LeistungObservableObject item in Leistungen)
            {
                Daten.Leistung leistung = new Daten.Leistung();
                item.Save(leistung);
                objekt.Leistungen.Add(leistung);
            }
        }
示例#12
0
        public void Load(Daten.Objekt objekt)
        {
            Arbeistage = objekt.Arbeistage;
            Name = objekt.Name;
            Beschreibung = objekt.Beschreibung;
            Stundenverrechnungssatz = objekt.Stundenverrechnungssatz;
            RichtleistungsFaktor = objekt.RichtleistungsFaktor;

            foreach (Daten.Leistung item in objekt.Leistungen)
            {
                LeistungObservableObject viewModel = new LeistungObservableObject(this);
                viewModel.Load(item);
                Leistungen.Add(viewModel);
                viewModel.Calculate();
                viewModel.NewCalculation += CalculateOverview;
                CalculateOverview();
            }

            LeistungenView.Refresh();
        }