Ejemplo n.º 1
0
        public static ConcurrentDictionary <int, ILinie> ReadFile(String filePath)
        {
            FileHelperEngine <LinieRecord>     engine = new FileHelperEngine <LinieRecord>();
            ConcurrentDictionary <int, ILinie> linien = new ConcurrentDictionary <int, ILinie>();

            try {
                engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue;
                engine.Encoding = Encoding.UTF8;
                LinieRecord[] res = engine.ReadFile(filePath);

                foreach (LinieRecord linie in res)
                {
                    //Übernehmen der eingelesenen Daten in das Programm-Model:
                    ILinie transport = new Linie();
                    transport.Bezeichnung    = linie.Bezeichnung;
                    transport.Echtzeit       = linie.Echtzeit;
                    transport.Id             = linie.Id;
                    transport.Reihenfolge    = linie.Reihenfolge;
                    transport.Verkehrsmittel = Linie.VerkehrsmittelConverter(linie.Verkehrsmittel);

                    //Schreiben des Models in Collection für den Rückgabewert:
                    linien.AddOrUpdate(transport.Id, transport, (key, oldValue) => transport);
                }
            } catch (Exception ex) {
                //Dokument konnte nicht geparst werden (Nicht vorhanden/geöffnet)
                throw new VtmParsingException("Beim Versuch die Linien zu parsen ist ein Fehler aufgetreten!", filePath, ex);
            }

            return(linien);
        }
Ejemplo n.º 2
0
        private Linie zeichnendeLinie;              // Welche Linie wird gerade gezeichnet?

        // Event wird ausgelöst wenn die Maus gedrückt wird (quasi initial-zündung)
        private void Zeichenfläche_MouseDown(object sender, MouseEventArgs e)
        {
            if (ControlModus == Modus.Bewegemodus)
            {
                bewegenStartOffset     = zeichnungOffset;
                bewegenStartKoordinate = e.Location;
                modusAktiv             = true;
            }
            else if (ControlModus == Modus.Zeichenmodus)
            {
                // Neue Linie anlegen
                zeichnendeLinie = new Linie();
                datei.Add(zeichnendeLinie);

                // Zeichenmodus effektiv aktivieren
                stoppuhr.Start();
                modusAktiv = true;

                // Ersten Punkt an dieser Koordinate anlegen
                Zeichenfläche_MouseMove(this, e);
            }
            else if (ControlModus == Modus.Loeschmodus || ControlModus == Modus.Ursprungsmodus)
            {
                modusAktiv = true;
            }
        }
Ejemplo n.º 3
0
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            var punct = new System.Drawing.Point(((MouseEventArgs)e).X, ((MouseEventArgs)e).Y);

            if (!_inProgres)
            {
                if (_obiectInMove == null)
                {
                    _obiectInProgres      = new Obiect();
                    _linieInProgres       = new Linie();
                    _linieInProgres.Start = punct;

                    _initialPoint = punct;

                    if (checkBox1.Checked)
                    {
                        _drawUtils.DeseneazaVarf(punct, (int)numericUpDown1.Value);
                    }

                    _inProgres = true;
                    _obiectInProgres.Varfuri.Add(punct);
                }
            }
            else
            {
                if (!_isNearInitialPoint)
                {
                    _obiectInProgres.Varfuri.Add(punct);
                    _linieInProgres.End = punct;
                    _obiectInProgres.LiniiPerimetru.Add(new Linie(_linieInProgres));

                    _drawUtils.DeseneazaLinie(_linieInProgres);
                    if (checkBox1.Checked)
                    {
                        _drawUtils.DeseneazaVarf(punct, (int)numericUpDown1.Value);
                    }

                    _linieInProgres       = new Linie();
                    _linieInProgres.Start = punct;
                }
                else
                {
                    _linieInProgres.End = new System.Drawing.Point(_initialPoint.X, _initialPoint.Y);
                    _obiectInProgres.LiniiPerimetru.Add(new Linie(_linieInProgres));

                    //_obiectInProgres.CalculeazaPuncteInterioare(new Point(0, 0), new Point(pictureBox1.Width, pictureBox1.Height));
                    //_objects.Add(_obiectInProgres);

                    _drawUtils.DeseneazaLinie(_linieInProgres);
                    _drawUtils.ColoreazaInteriorObiect(_obiectInProgres, Color.Red, Brushes.Red);

                    _objects.Add(_obiectInProgres);
                    _obiectInProgres.ObiectInitial = new Obiect(_obiectInProgres);
                    _linieInProgres     = null;
                    _obiectInProgres    = null;
                    _inProgres          = false;
                    _isNearInitialPoint = false;
                }
            }
        }
Ejemplo n.º 4
0
        private void button2_Click_1(object sender, EventArgs e)
        {
            System.Drawing.Graphics Linie;
            Linie = this.CreateGraphics();
            Pen myPen = new Pen(System.Drawing.Color.Blue, 2);

            Linie.DrawLine(myPen, 20, 20, 350, 250);
        }
Ejemplo n.º 5
0
        public void DeseneazaLinie(Linie linie)
        {
            PointF pt1D = new PointF();
            PointF pt2D = new PointF();

            pt1D.X = linie.Start.X;
            pt1D.Y = linie.Start.Y;
            pt2D.X = linie.End.X;
            pt2D.Y = linie.End.Y;

            _graphics.DrawLine(Pens.Black, pt1D, pt2D);
        }
Ejemplo n.º 6
0
        // Event wird ausgelöst wenn die Maus losgelassen wird
        private void Zeichenfläche_MouseUp(object sender, MouseEventArgs e)
        {
            if (modusAktiv)
            {
                if (ControlModus == Modus.Zeichenmodus)
                {
                    // Prüfen ob der Endpunkt der Linie mit dem Startpunkt einer anderen Linie verbunden werden kann
                    foreach (Koordinate koordinate in datei.ErmittleRandpunkteBei(e.X - zeichnungOffset.X, e.Y - zeichnungOffset.Y, Verbindungsbreite, Verbindungshoehe))
                    {
                        if (koordinate.IstStartpunkt && koordinate.Linie != zeichnendeLinie)
                        {
                            if (MessageBox.Show(String.Format("Möchten Sie die gezeichnete Linie mit der Linie {0} beim Endpunkt zusammenführen?", datei.IndexOf(koordinate.Linie) + 1),
                                                Application.ProductName, MessageBoxButtons.YesNo) == DialogResult.Yes)
                            {
                                var linie = koordinate.Linie;
                                zeichnendeLinie.LinieAnhängen(linie);
                                datei.Remove(linie);
                                break;
                            }
                        }
                    }

                    // Prüfen ob der Startpunkt der Linie mit dem Endpunkt einer anderen Linie verbunden werden kann
                    foreach (Koordinate koordinate in datei.ErmittleRandpunkteBei(zeichnendeLinie[0].X, zeichnendeLinie[0].Y, Verbindungsbreite, Verbindungshoehe))
                    {
                        if (koordinate.IstEndpunkt && koordinate.Linie != zeichnendeLinie)
                        {
                            if (MessageBox.Show(String.Format("Möchten Sie die gezeichnete Linie mit der Linie {0} beim Startpunkt zusammenführen?", datei.IndexOf(koordinate.Linie) + 1),
                                                Application.ProductName, MessageBoxButtons.YesNo) == DialogResult.Yes)
                            {
                                koordinate.Linie.LinieAnhängen(zeichnendeLinie);
                                datei.Remove(zeichnendeLinie);
                                break;
                            }
                        }
                    }
                }
                else if (ControlModus == Modus.Ursprungsmodus)
                {
                    // Ursprung der Datei definieren
                    datei.Ursprung.X = ursprungKoordinate.X - zeichnungOffset.X;
                    datei.Ursprung.Y = ursprungKoordinate.Y - zeichnungOffset.Y;

                    ControlModus = Modus.Zeichenmodus;
                    Invalidate();
                }

                stoppuhr.Reset();
                zeichnendeLinie = null;
                modusAktiv      = false;
            }
        }
Ejemplo n.º 7
0
 public VtmResponse(Line line, Departure departure, LocationStop locstop, List <TrafficInfoCategory> tic, List <TrafficInfoCategoryGroup> ticg, String type, List <TrafficInfo> trafficInfos)
 {
     Line                      = line;
     Departure                 = departure;
     TrafficInfos              = trafficInfos;
     LocationStop              = locstop;
     TrafficInfoCategories     = tic;
     TrafficInfoCategoryGroups = ticg;
     Typ = Linie.VerkehrsmittelConverter(type);
     if (String.IsNullOrWhiteSpace(Departure.DepartureTime.TimeReal))
     {
         Departure.DepartureTime.TimeReal = Departure.DepartureTime.TimePlanned + " *";
     }
 }
 public void TestInitialize()
 {
     linie     = new Linie(1, "Testlinie", 12, true, EVerkehrsmittel.SBahn);
     linieLeer = new Linie();
 }
Ejemplo n.º 9
0
        void View_AddToDatabase(object sender, EventArgs e)
        {
            try
            {
                // Initialize database context
                TramwajeDataContext databaseContext = new TramwajeDataContext();

                // Parse XML file..
                XDocument TramXMLFile = XDocument.Load(View.FilePath);
                foreach (var tramXML in TramXMLFile.Root.Descendants("linia"))
                {
                    Linie linia = new Linie();
                    linia.Nazwa = tramXML.Attribute("nazwa").Value.Trim();
                    if (tramXML.Attribute("typ").Value != null)
                    {
                        linia.Typ = tramXML.Attribute("typ").Value.Trim();
                    }
                    foreach (var wariantXML in tramXML.Descendants("wariant"))
                    {
                        WariantTrasy wariant = new WariantTrasy();
                        wariant.Linie = linia;
                        wariant.Nazwa = wariantXML.Attribute("nazwa").Value.Trim();
                        // BISKUPIN - POŚWIĘTNE
                        int pPos = wariant.Nazwa.IndexOf("-");
                        wariant.Start  = wariant.Nazwa.Substring(0, pPos - 1);
                        wariant.Koniec = wariant.Nazwa.Substring(pPos + 1);
                        foreach (var przystanekXML in wariantXML.Descendants("przystanek"))
                        {
                            Przystanek przystanek = new Przystanek();
                            przystanek.WariantTrasy = wariant;
                            przystanek.Nazwa        = przystanekXML.Attribute("nazwa").Value.Trim();
                            przystanek.Ulica        = przystanekXML.Attribute("ulica").Value.Trim();
                            foreach (var dzienXML in przystanekXML.Descendants("dzien"))
                            {
                                foreach (var godzXML in dzienXML.Descendants("godz"))
                                {
                                    foreach (var minXML in godzXML.Descendants("min"))
                                    {
                                        Przyjazd przyjazd = new Przyjazd();
                                        przyjazd.Dzień      = dzienXML.Attribute("nazwa").Value.Trim();
                                        przyjazd.Godzina    = int.Parse(godzXML.Attribute("h").Value.Trim());
                                        przyjazd.Minuta     = int.Parse(minXML.Attribute("m").Value.Trim());
                                        przyjazd.Przystanek = przystanek;

                                        przystanek.Przyjazds.Add(przyjazd);
                                    }
                                }
                            }

                            wariant.Przystaneks.Add(przystanek);
                        }
                        linia.WariantTrasies.Add(wariant);
                    }

                    if (databaseContext.Linies.Count(l => l.Nazwa == linia.Nazwa) > 0)
                    {
                        databaseContext.Linies.DeleteAllOnSubmit(databaseContext.Linies.Where(l => l.Nazwa == linia.Nazwa));
                    }

                    databaseContext.Linies.InsertOnSubmit(linia);
                }
                databaseContext.SubmitChanges();

                View.Message = "Dane zostały pomyślnie zapisane.";
            }catch (Exception ex)
            {
                View.Message = "Wystąpił błąd podczas przetwarzania pliku: " + ex.Message;
            }
        }