示例#1
0
 /// <summary>
 /// Bearbeitet einen existierenden Auftrag mit den übergebenen Daten in der Datenbank.
 /// </summary>
 /// <param name="auftrag">aktualisierte Daten des Auftrags</param>
 /// <param name="auftragID">Primärschlüssel des Auftrags in der Datenbank</param>
 /// <seealso cref="EasyAuftragContext"/>
 public bool AuftragBearbeiten(Auftrag auftrag, int auftragID, string connection)
 {
     try
     {
         using (var db = new EasyAuftragContext(connection))
         {
             if (db.Auftraege.Find(auftragID) != null)
             {
                 db.Auftraege.Find(auftragID).AuftragNummer = auftrag.AuftragNummer;
                 db.Auftraege.Find(auftragID).Eingang       = auftrag.Eingang;
                 db.Auftraege.Find(auftragID).Erteilt       = auftrag.Erteilt;
                 db.Auftraege.Find(auftragID).Taetigkeiten  = auftrag.Taetigkeiten;
                 db.Auftraege.Find(auftragID).Erledigt      = auftrag.Erledigt;
                 db.Auftraege.Find(auftragID).Abgerechnet   = auftrag.Abgerechnet;
                 db.Auftraege.Find(auftragID).KundeID       = auftrag.KundeID;
                 db.SaveChanges();
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
     }
     catch (Exception ex)
     {
         ErrorHandler.ErrorHandle(ex);
         return(false);
     }
 }
        public void merge_Auftrag_context()
        {
            IAuftrag a = new Auftrag(
                new Normalschein(
                    new Normalfeld(1, 2, 3, 4, 5, 6),
                    new Normalfeld(1, 2, 3, 4, 5, 6)
                    ) { IsSpiel77 = false, IsSuper6 = false, Losnummer = "1234567" }
                );
            var aus = new Ausspielung(new[] { 1, 2, 3, 4, 5, 6 }, 49, "1234567", "234567", 7);

            Console.WriteLine("Ziehung: " + Stringifier.stringify(aus.Gewinnzahlen, " "));
            foreach (var tipp in a.Tipps)
                Console.WriteLine("Tipp: " + Stringifier.stringify(tipp.Tipp.Tippzahlen, " "));
            var p = a.evaluate(aus);
            if (a.IsWin(aus))
                Console.WriteLine("won");
            else
                Console.WriteLine("lost");

            foreach (var protocol in p) {
                Console.WriteLine("Parent: " + protocol.ProtocolType.ToString());
                foreach (var hit in protocol.Hits.OrderBy(x => x.Key))
                    Console.WriteLine("Hits: " + "Gk" + hit.Key + ": " + hit.Value);
            }
        }
示例#3
0
        /// <summary>
        /// Löscht einen Auftrag
        /// </summary>
        /// <param name="version"></param>
        /// <param name="auftrag"></param>
        /// <returns></returns>
        public HttpResponseMessage Delete(string version, [FromBody] Auftrag auftrag)
        {
            switch (version)
            {
            case "v1":
                try
                {
                    string failure = Auftrag.deleteAuftrag(auftrag);
                    if (failure != "")
                    {
                        return new HttpResponseMessage {
                                   StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = failure
                        }
                    }
                    ;
                    else
                    {
                        return new HttpResponseMessage {
                                   StatusCode = HttpStatusCode.OK
                        }
                    };
                }
                catch (Exception e)
                {
                    return(new HttpResponseMessage {
                        StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = e.Message
                    });
                }

            default:
                return(new HttpResponseMessage {
                    StatusCode = HttpStatusCode.NotFound
                });
            }
        }
示例#4
0
 public void can_save_single_Normalschein()
 {
     var auftrag = new Auftrag(new Normalschein(new Normalfeld( 1, 2, 3, 4, 5, 6)));
     auftrag = dao.Save(auftrag);
     dao.CommitTransactionAndFlush();
     Assert.IsTrue(auftrag.Id > 0);
 }
示例#5
0
 public void can_save_quick_Normalschein()
 {
     var auftrag = new Auftrag(new Normalschein().quick());
     auftrag = dao.Save(auftrag);
     dao.CommitTransactionAndFlush();
     Assert.IsTrue(auftrag.Id > 0);
 }
示例#6
0
        /// <summary>
        /// Gibt einen Auftrag aus der Datenbank anhand der Auftrag ID zurück
        /// </summary>
        /// <param name="auftragID"></param>
        /// <returns>Auftrag aus Datenbank</returns>
        /// <seealso cref="EasyAuftragContext"/>
        public Auftrag AuftragLaden(int auftragID, out bool success, string connection)
        {
            Auftrag auft = new Auftrag();

            try
            {
                using (var db = new EasyAuftragContext(connection))
                {
                    if (db.Auftraege.Find(auftragID) != null)
                    {
                        auft    = (from k in db.Auftraege select k).First(k => k.AuftragID == auftragID);
                        success = true;
                    }
                    else
                    {
                        success = false;
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorHandler.ErrorHandle(ex);
                success = false;
            }
            return(auft);
        }
示例#7
0
 public void can_save_Systemschein()
 {
     var auftrag = new Auftrag(new Systemschein( new Systemfeld() {SID = 7}.quick() as Systemfeld));
     dao.Save(auftrag);
     dao.CommitTransactionAndFlush();
     Assert.IsTrue(auftrag.Id > 0);
 }
示例#8
0
 /// <summary>
 /// Konstruktor für die <see cref="AuftragView"/>
 /// </summary>
 /// <param name="titel">Titel für das Fenster</param>
 /// <seealso cref="EasyAuftragContext"/>
 public AuftragView(string titel, string connection)
 {
     try
     {
         _connection = connection;
         AuftragInfo = new Auftrag();
         InitializeComponent();
         Text = titel;
         dtpEingang.MaxDate        = DateTime.Now;
         dtpErteilt.MaxDate        = DateTime.Now;
         butNeueTaetigkeit.Enabled = false;
         cxtAuftrag.Enabled        = false;
         using (var db = new EasyAuftragContext(connection))
         {
             // Laden aller Kunden IDs und Namen, um sie in der ComboBox anzuzeigen
             var kunden = (from k in db.Kunden select new { ID = k.KundeID, kName = k.Name }).ToList();
             cbKunde.DataSource    = kunden;
             cbKunde.DisplayMember = "kName";
             cbKunde.ValueMember   = "ID";
         }
     }
     catch (Exception ex)
     {
         ErrorHandler.ErrorHandle(ex);
     }
 }
示例#9
0
 /// <summary>
 /// Methode zum Anzeigen des übergebenen <see cref="Auftrag"/> in den Controls
 /// </summary>
 /// <param name="auftrag"></param>
 /// <seealso cref="EasyAuftragContext"/>
 private void FillControls(Auftrag auftrag)
 {
     try
     {
         tbAuftragNr.Text = auftrag.AuftragNummer;
         using (var db = new EasyAuftragContext(_connection))
         {
             int[] kundenIDs        = (from k in db.Kunden select k.KundeID).ToArray();
             var   cbKundeEintraege = (from k in db.Kunden select new { ID = k.KundeID, kName = k.Name }).ToList();
             cbKunde.DataSource    = cbKundeEintraege;
             cbKunde.DisplayMember = "kName";
             cbKunde.ValueMember   = "ID";
             cbKunde.SelectedIndex = Array.IndexOf(kundenIDs, auftrag.KundeID);
         }
         dtpEingang.Value      = auftrag.Eingang;
         dtpErteilt.Value      = auftrag.Erteilt;
         cbErledigt.Checked    = auftrag.Erledigt;
         cbAbgerechnet.Checked = auftrag.Abgerechnet;
         tbGesamt.Text         = Math.Round(Berechnung.AuftragZeitGesamt(_minlist) / 60, 2).ToString();
     }
     catch (Exception ex)
     {
         ErrorHandler.ErrorHandle(ex);
     }
 }
示例#10
0
 public void getAuftraegeFromDB(SqlCommand cmd, ref ArrayList listToSaveData)
 {
     conn.Open();
     try
     {
         SqlDataReader reader = cmd.ExecuteReader();
         while (reader.Read())
         {
             Auftrag auftrag = new Auftrag();
             auftrag.auftragsNummer = reader.GetInt32(0);
             auftrag.erstelldatum   = reader.GetDateTime(1);
             auftrag.titel          = reader.GetString(2);
             auftrag.beschreibung   = reader.GetString(3);
             auftrag.ort            = reader.GetString(4);
             if (reader.GetBoolean(7) == true)
             {
                 auftrag.ausschreibungsende = reader.GetDateTime(5);
             }
             auftrag.ausgeschrieben = reader.GetBoolean(7);
             listToSaveData.Add(auftrag);
         }
         conn.Close();
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         conn.Close();
     }
 }
示例#11
0
        public bool updateAuftrag(int auftragsNummer, Auftrag auftrag)
        {
            SqlCommand cmd = new SqlCommand("SELECT * FROM Auftrag where auftragsNummer = " + auftragsNummer.ToString() + ";", conn);

            conn.Open();
            var mssqlReader = cmd.ExecuteReader();

            if (mssqlReader.Read())
            {
                mssqlReader.Close();
                try
                {
                    cmd = new SqlCommand("UPDATE dbo.Auftrag SET erstelldatum = '" + auftrag.erstelldatum + "',titel = '" + auftrag.titel + "',beschreibung = '" + auftrag.beschreibung + "', ort = '" + auftrag.ort + "', ausgeschrieben = '" + auftrag.ausgeschrieben + "', ausschreibungsende = '" + auftrag.ausschreibungsende + "' WHERE auftragsNummer = " + auftragsNummer + ";", conn);
                    cmd.ExecuteNonQuery();
                    conn.Close();
                    return(true);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return(false);
                }
            }
            else
            {
                Console.WriteLine("No entry found");
                conn.Close();
                return(false);
            }
        }
示例#12
0
        public void can_evaluate_Super6_true_Spiel77_true()
        {
            var auftrag = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 5, 6)));
            var ausspielung = new Ausspielung(new[] { 1, 2, 3, 4, 5, 6 }, 49, "0000000", "000000", 0);

            Assert.That(auftrag.Zusatzchance.IsWinSpiel77(ausspielung), Is.False);
            Assert.That(auftrag.Zusatzchance.IsWinSuper6(ausspielung), Is.False);
        }
示例#13
0
 //Commandhelpers und Private Methoden
 private void NeuerAuftrag()
 {
     AktuellerAuftrag         = new Auftrag();
     AktuellerAuftrag.KundeID = AktuelleKundenId;
     AktuellerAuftrag         = AktuellerAuftrag;
     KeinNeuerAuftragAktiv    = false;
     IstNeuset = true;
 }
示例#14
0
        public ActionResult AuftragAbweisen(Guid id)
        {
            Auftrag auftrag = _db.Auftrag.Find(id);

            if (auftrag != null)
            {
                auftrag.StatusId = _db.AuftragStatus.SingleOrDefault(c => c.Bezeichnung.Equals("Revision"))?.ID;
                _db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }
示例#15
0
 public void can_save()
 {
     ISchein schein = new Normalschein( new Normalfeld( 1, 2, 3, 4, 5, 6));
     IAuftrag auftrag = new Auftrag(schein);
     ATipp tipp = new Tipp(schein.Tippfelder[0].Tippzahlen.ToArray());
     sut = new IndexedTipp(auftrag, tipp, schein.Tippfelder[0].Index);
     s1.Save(auftrag);
     s1.Save(tipp);
     s1.Save(sut);
     s1.Flush();
 }
示例#16
0
        /// <summary>
        /// Gibt eine Liste der Aufträge zurück, welche mit den Parametern übereinstimmen.
        /// Ohne Parameter werden alle Aufträge zurückgegeben.
        /// </summary>
        /// <param name="version"></param>
        /// <param name="auftrag"></param>
        /// <returns></returns>
        public List <Auftrag> Get(string version, [FromUri] Auftrag auftrag)
        {
            switch (version)
            {
            case "v1":
                return(Auftrag.getAuftrag(auftrag));

            default:
                return(null);
            }
        }
示例#17
0
 public void ctor()
 {
     ISchein schein = new Normalschein( new Normalfeld( 1, 2, 3, 4, 5, 6));
     IAuftrag auftrag = new Auftrag(schein);
     ATipp tipp = new Tipp(schein.Tippfelder[0].Tippzahlen.ToArray());
     sut = new IndexedTipp(auftrag, tipp, schein.Tippfelder[0].Index);
     Assert.That(sut.Idx, Is.EqualTo(schein.Tippfelder[0].Index));
     Assert.That(sut.Tipp.SID, Is.EqualTo(schein.Tippfelder[0].SID));
     Assert.That(
         Stringifier.stringify(sut.Tipp.Tippzahlen), Is.EqualTo(
         Stringifier.stringify(schein.Tippfelder[0].Tippzahlen)));
 }
示例#18
0
        /// <summary>
        /// Fügt einen neuen Auftrag hinzu.
        /// </summary>
        /// <param name="version"></param>
        /// <param name="auftragBP"></param>
        public HttpResponseMessage Post(string version, [FromBody] AuftragBP auftragBP)
        {
            switch (version)
            {
            case "v1":
                if (auftragBP == null)
                {
                    return new HttpResponseMessage {
                               StatusCode = HttpStatusCode.BadRequest
                    }
                }
                ;
                try
                {
                    Auftrag auftrag = new Auftrag
                    {
                        ID       = new Guid(),
                        Kunde    = auftragBP.Kunde,
                        Position = auftragBP.Position,
                        Volumen  = auftragBP.Volumen,
                        Deadline = auftragBP.Deadline
                    };

                    string failure = Auftrag.addAuftrag(auftrag);
                    if (failure != "")
                    {
                        return new HttpResponseMessage {
                                   StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = failure
                        }
                    }
                    ;
                    else
                    {
                        return new HttpResponseMessage {
                                   StatusCode = HttpStatusCode.OK
                        }
                    };
                }
                catch (Exception e)
                {
                    return(new HttpResponseMessage
                    {
                        StatusCode = HttpStatusCode.BadRequest,
                        ReasonPhrase = e.Message
                    });
                }

            default:
                return(new HttpResponseMessage {
                    StatusCode = HttpStatusCode.NotFound
                });
            }
        }
        public void CreateDemodaten()
        {
            var m1 = new Modell()
            {
                Name = "Model Eins"
            };
            var m2 = new Modell()
            {
                Name = "Model Zwei"
            };

            var d1 = new Drucker()
            {
                Hersteller = "Anet", Model = "A8", MaxX = 220, MaxY = 220, MaxZ = 240, Speed = 60, Schnittstelle = "USB"
            };
            var d2 = new Drucker()
            {
                Hersteller = "CTC", Model = "DIY i3", MaxX = 220, MaxY = 220, MaxZ = 240, Speed = 60, Schnittstelle = "USB"
            };
            var d3 = new Drucker()
            {
                Hersteller = "Prusa", Model = "MK3", MaxX = 250, MaxY = 210, MaxZ = 210, Speed = 200, Schnittstelle = "USB"
            };
            var d4 = new Drucker()
            {
                Hersteller = "LulzBot", Model = "TAZ 6", MaxX = 280, MaxY = 280, MaxZ = 250, Speed = 300, Schnittstelle = "USB"
            };

            var a1 = new Auftrag()
            {
                Start = DateTime.Now.AddDays(-5), Status = Auftragstatus.Fertig, Modell = m1, Drucker = d1
            };
            var a2 = new Auftrag()
            {
                Start = DateTime.Now.AddDays(-4), Status = Auftragstatus.Abgebrochen, Modell = m1, Drucker = d2
            };
            var a3 = new Auftrag()
            {
                Start = DateTime.Now.AddDays(-3), Status = Auftragstatus.Fertig, Modell = m2, Drucker = d3
            };
            var a4 = new Auftrag()
            {
                Start = DateTime.Now.AddDays(-1), Status = Auftragstatus.Aktiv, Modell = m2, Drucker = d4
            };


            Repository.Add(a1);
            Repository.Add(a2);
            Repository.Add(a3);
            Repository.Add(a4);
            Repository.Save();
        }
        private void BookVehicle()
        {
            Auftrag newOrder       = null;
            bool    textWrongInput = false;

            if (comboBoxVehicleType.SelectedItem != null && comboBoxCustomer.SelectedItem != null && datePickerOrderDate.SelectedDate != null &&
                datePickerReturnDate.SelectedDate != null && !textBoxPeriotOfTime.Text.Equals("") && !textBoxTotalPrice.Text.Equals("") &&
                Convert.ToDateTime(datePickerOrderDate.SelectedDate) >= DateTime.Today && Convert.ToDateTime(datePickerReturnDate.SelectedDate) > DateTime.Today)
            {
                TimeSpan orderTimeSpan = Convert.ToDateTime(datePickerReturnDate.SelectedDate) - Convert.ToDateTime(datePickerOrderDate.SelectedDate);

                Kunde    aCustomer = (Kunde)comboBoxCustomer.SelectedItem;
                Fahrzeug aVehicle  = (Fahrzeug)listBoxVehicleInformation.SelectedItem;

                newOrder                    = new Auftrag();
                newOrder.AuftragID          = 0;
                newOrder.Kunde              = (Kunde)comboBoxCustomer.SelectedItem;
                newOrder.KundeID            = newOrder.Kunde.KundeID;
                newOrder.Fahrzeug           = (Fahrzeug)listBoxVehicleInformation.SelectedItem;
                newOrder.FahrzeugID         = newOrder.Fahrzeug.FahrzeugID;
                newOrder.Fahrzeug.Verfügbar = false;
                newOrder.Auftragsdatum      = Convert.ToDateTime(datePickerOrderDate.SelectedDate);
                newOrder.Rückgabedatum      = Convert.ToDateTime(datePickerReturnDate.SelectedDate);
                newOrder.Gesamtpreis        = double.Parse(textBoxTotalPrice.Text, NumberStyles.Currency);
            }
            else
            {
                textWrongInput = true;
            }

            if (textWrongInput && wrongTimeSpan)
            {
                MessageBox.Show("Bitte füllen Sie die Auftragsdaten korrekt aus." + Environment.NewLine +
                                Environment.NewLine + "     Der ausgewählte Zeitraum ist ungültig.");
            }
            else if (textWrongInput)
            {
                MessageBox.Show("Bitte füllen Sie die Auftragsdaten korrekt aus.");
            }

            if (!textWrongInput && !wrongTimeSpan)
            {
                var result = MessageBox.Show("Möchten Sie das Fahrzeug buchen?", "", MessageBoxButton.YesNo, MessageBoxImage.Question);

                if (result == MessageBoxResult.Yes)
                {
                    ClearComponents();
                    list.addToOrderList(newOrder);
                    LoadListBoxCreatedVehicles();
                }
            }
        }
示例#21
0
        public virtual List <Contact> GetTechniciansForAuftrag(Auftrag auftrag)
        {
            var technicians   = new List <Contact>();
            var mfrTechnician = new CreateOrUpdateUserMappingCommand()
            {
                tenant   = tenant,
                Benutzer = Mitarbeiter,
            }.Execute();

            technicians.Add(mfrTechnician);

            return(technicians);
        }
示例#22
0
        // POST: Auftrag/Delete/5
        public ActionResult Delete(Guid id)
        {
            Auftrag auftrag = _db.Auftrag.Find(id);

            if (auftrag == null)
            {
                return(HttpNotFound());
            }

            _db.Auftrag.Remove(auftrag);
            _db.SaveChanges();

            return(RedirectToAction("Index"));
        }
 public void Initialize()
 {
     databaseConnection = DM_DBConnection.Instance;
     list                       = CL_List.Instance;
     aCustomer                  = null;
     aOrder                     = null;
     customerExists             = false;
     customerNumber             = null;
     existingCustomerNumber     = null;
     errorMessage               = null;
     comboBoxGender.ItemsSource = new List <string> {
         "Männlich", "Weiblich"
     };
 }
示例#24
0
        public void can_convert()
        {
            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 5, 6)) { Losnummer = "1234567" });
            var schein = sut.toSchein();
            Assert.That(schein.Losnummer, Is.EqualTo("1234567"));
            Assert.That(schein.Tippfelder[0].Tippzahlen.Count, Is.EqualTo(6));

            sut = new Auftrag(
                new Normalschein(
                    new Normalfeld(),
                    new Normalfeld(1, 2, 3, 4, 5, 6)) { Losnummer = "1234567" });
            schein = sut.toSchein();
            Assert.That(schein.Losnummer, Is.EqualTo("1234567"));
            Assert.That(schein.Tippfelder[1].Tippzahlen.Count, Is.EqualTo(6));
        }
示例#25
0
 public void addAuftrag(Auftrag auftrag)
 {
     conn.Open();
     try
     {
         SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Auftrag (erstelldatum,titel,beschreibung,ort, Id) VALUES ('" + auftrag.erstelldatum + "','" + auftrag.titel + "','" + auftrag.beschreibung + "','" + auftrag.ort + "','" + auftrag.Id + "') ", conn);
         cmd.ExecuteNonQuery();
         conn.Close();
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         conn.Close();
     }
 }
示例#26
0
 /// <summary>
 /// Legt einen neuen Auftrag mit den übergebenen Daten in der Datenbank an.
 /// </summary>
 /// <param name="auftrag">Daten des neuen Auftrags</param>
 /// <seealso cref="EasyAuftragContext"/>
 public void AuftragAnlegen(Auftrag auftrag, string connection)
 {
     try
     {
         using (var db = new EasyAuftragContext(connection))
         {
             db.Auftraege.Add(auftrag);
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         ErrorHandler.ErrorHandle(ex);
     }
 }
示例#27
0
        public void merge_random_auftrag()
        {
            IAuftrag a = new Auftrag(new Normalschein().quick());
            var aus = new Ausspielung();

            Console.WriteLine("Ziehung: " + Stringifier.stringify(aus.Gewinnzahlen, " "));
            foreach (var tipp in a.Tipps)
                Console.WriteLine("Tipp: " + Stringifier.stringify(tipp.Tipp.Tippzahlen, " "));
            var p = a.evaluateLotto(aus);
            if (p.IsWin)
                Console.WriteLine("won");
            else
                Console.WriteLine("lost");
            foreach (var hit in a.evaluateLotto(aus).Hits.OrderBy(x => x.Key))
                Console.WriteLine("Hits: " + "Gk" + hit.Key + ": " + hit.Value);
        }
        private void CancelOrder()
        {
            var result = MessageBox.Show("Möchten Sie den ausgewählten Auftrag stornieren?", "", MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (result == MessageBoxResult.Yes)
            {
                aOrder = (Auftrag)comboBoxOrder.SelectedItem;
                aOrder.Fahrzeug.Verfügbar = true;
                list.OrderSortedByCustomerList.Remove(aOrder);
                list.OrderList.Remove(aOrder);

                MessageBox.Show("Der ausgewählte Auftrag wurde storniert.");

                LoadComboBoxOrder();
                EnableComponents();
            }
        }
 private void UpdateOrderTextBoxes()
 {
     if (list.OrderSortedByCustomerList.Count != 0)
     {
         if (aCustomer.Auftrag != null)
         {
             aOrder = (Auftrag)comboBoxOrder.SelectedItem;
             if (aOrder != null)
             {
                 textBoxVehicleDescription.Text    = aOrder.Fahrzeug.Bezeichnung;
                 textBoxTotalPrice.Text            = aOrder.Gesamtpreis.ToString("C");
                 datePickerOrderDate.SelectedDate  = aOrder.Auftragsdatum;
                 datePickerReturnDate.SelectedDate = aOrder.Rückgabedatum;
             }
         }
     }
 }
示例#30
0
        private ExpandedAuftrag CreateExpandedAuftrag(Auftrag auftrag)
        {
            List <ExpandedAufgabe> aufgaben          = null;
            List <ExpandedAuftrag> expandedAuftraege = new List <ExpandedAuftrag>();

            aufgaben = AlleAufgaben.Where(a => a.AuftragId == auftrag.AuftragId).ToList();


            return(new ExpandedAuftrag(_fortschrittCalculator)
            {
                AuftragId = auftrag.AuftragId,
                Auftragname = auftrag.Auftragname,
                ErstellDatum = auftrag.ErstellDatum,
                FinishDatum = auftrag.FinishDatum ?? null,
                Priorität = auftrag.Priorität,
                TeamId = auftrag.TeamId,
                Aufgaben = aufgaben
            });
        }
示例#31
0
        public void EinnahmeLoeschenTest_KorrektesLoeschen()
        {
            //Arrange
            Model          model      = new Model();
            List <Auftrag> alist      = model.LadeAuftraege("");
            Auftrag        istAuftrag = alist.Last();


            //Act
            bool successfull = model.LoescheAuftrag(istAuftrag);

            alist = model.LadeAuftraege("");
            bool nochVorhanden = alist.Any(i => i.ID == this._id);


            //Assert
            Assert.IsTrue(successfull);
            Assert.IsFalse(nochVorhanden);
        }
示例#32
0
        public void EinnahmeAendernTest_KorrektesSpeichern()
        {
            //Arrange
            Model          model      = new Model();
            List <Auftrag> alist      = model.LadeAuftraege("");
            Auftrag        istAuftrag = alist.Last();

            istAuftrag.Total = 222m;


            //Act
            this._id   = model.SpeichereAuftrag(istAuftrag);
            alist      = model.LadeAuftraege("");
            istAuftrag = alist.First(i => i.ID == this._id);


            //Assert
            Assert.IsNotNull(istAuftrag);
            Assert.IsTrue(istAuftrag.Total == 222m);
        }
示例#33
0
 public void can_evaluate()
 {
     var a = new Ausspielung(new[] {1, 2, 3, 4, 5, 6}, 49, "1234567", "123456", 0);
     sut = new Auftrag(new Normalschein(new Normalfeld()));
     Assert.That(sut.IsWin(a), Is.False);
     sut = new Auftrag(new Normalschein(new Normalfeld(1)));
     Assert.That(sut.IsWin(a), Is.False);
     sut = new Auftrag(new Normalschein(new Normalfeld(1, 2)));
     Assert.That(sut.IsWin(a), Is.False);
     sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3)));
     Assert.That(sut.IsWin(a));
     sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4)));
     Assert.That(sut.IsWin(a));
     sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 5)));
     Assert.That(sut.IsWin(a));
     sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 5, 6)));
     Assert.That(sut.IsWin(a));
     sut = new Auftrag(new Systemschein(new Systemfeld(1, 2, 3) { SID = 7 }));
     Assert.That(sut.IsWin(a));
 }
示例#34
0
        public void SafeAuftrag(ExpandedAuftrag auftrag)
        {
            Auftrag updatedAuftrag = new Auftrag
            {
                AuftragId    = auftrag.AuftragId,
                Auftragname  = auftrag.Auftragname,
                ErstellDatum = auftrag.ErstellDatum,
                FinishDatum  = DateTime.Today,
                Priorität    = auftrag.Priorität,
                TeamId       = auftrag.TeamId
            };

            using (ISession session = NhibernateSession.OpenSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    session.Update(updatedAuftrag);
                    transaction.Commit();
                }
            }
        }
示例#35
0
        public ActionResult AuftragAbschliessen(Guid id)
        {
            Auftrag auftrag = _db.Auftrag.Find(id);

            if (auftrag != null)
            {
                foreach (var auftragWaren in auftrag.AuftragWaren)
                {
                    var lagerWare = _db.LagerWaren.Find(auftragWaren.LagerWareID);

                    if (lagerWare != null)
                    {
                        lagerWare.Menge -= auftragWaren.Menge;
                    }
                }

                auftrag.StatusId = _db.AuftragStatus.SingleOrDefault(c => c.Bezeichnung.Equals("Abgeschlossen"))?.ID;
                _db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }
示例#36
0
        public static MailMessage GetMailMessageForContractBill(Auftrag auftrag, byte[] billPdf)
        {
            var message = new MailMessage
            {
                Sender  = FromAdress,
                From    = FromAdress,
                To      = { auftrag.Kunde.Email },
                Subject = $"CRE - Rechnung für Auftrag-Nr: {auftrag.Auftragsnummer.AsContractNumber()}",
                Body    = $"Sehr geehrte/r Frau/Herr {auftrag.Kunde.Nachname}, <br/>" +
                          $"Vielen Dank für Ihre Bestellung und Ihr Vertrauen in unsere Dienstleistungen!<br/>" +
                          $"Die Rechnung für diese Bestellung finden Sie im Anhang. <br/><br/>" +
                          $"Viele Grüße wünscht Ihnen<br/>" +
                          $"Ihr Copyright Exception Team",
                IsBodyHtml = true
            };

            message.Attachments.Add(new Attachment(new MemoryStream(billPdf),
                                                   "Rechnung_" + DateTime.Now.ToString("dd-MM-yyyy") + ".pdf"));

            return(message);
        }
示例#37
0
        public void EinnahmeErfassenTest_KorrektesErfassen()
        {
            //Arrange
            Model          model       = new Model();
            Dienstleistung dl          = model.LadeDienstleistungen().First();
            int            kId         = model.LadeKunden("").First().ID;
            Auftrag        sollAuftrag = new Auftrag
            {
                KundeID        = kId,
                Dienstleistung = dl,
                Total          = 140m
            };

            //Act
            this._id = model.SpeichereAuftrag(sollAuftrag);
            List <Auftrag> alist      = model.LadeAuftraege("");
            Auftrag        istAuftrag = alist.First(i => i.ID == this._id);


            //Assert
            Assert.IsNotNull(istAuftrag);
            Assert.IsTrue(istAuftrag.Total == sollAuftrag.Total);
        }
示例#38
0
 /// <summary>
 /// Konstruktor für die <see cref="AuftragView"/>
 /// </summary>
 /// <param name="titel">Titel für das Fenster</param>
 /// <param name="auftrag">Zu bearbeitender/löschender Auftrag</param>
 public AuftragView(string titel, Auftrag auftrag, string connection)
 {
     try
     {
         _connection = connection;
         // Zwischenpeichern des ausgewälten Auftrags zur Weiterverarbeitung
         AuftragInfo = auftrag;
         InitializeComponent();
         Text = titel;
         dtpEingang.MaxDate = DateTime.Now;
         dtpErteilt.MaxDate = DateTime.Now;
         if (titel == "Auftrag Löschen")
         {
             butSpeichern.Text = "Löschen";
         }
         DataGridNeu();
         // Übergeben des Auftrags zum Anzeigen in den Controls
         FillControls(AuftragInfo);
     }
     catch (Exception ex)
     {
         ErrorHandler.ErrorHandle(ex);
     }
 }
示例#39
0
        public void mergeIAuftragSystem()
        {
            IAuftrag a = new Auftrag(new Systemschein(
                new Systemfeld(1, 2, 3) { SID = 7 }
                , new Systemfeld(1, 2, 3, 4) { SID = 7 }
                , new Systemfeld(1, 2, 3, 4, 5) { SID = 7 }
                , new Systemfeld(1, 2, 3, 4, 5, 6) { SID = 7 }
                , new Systemfeld(1, 2, 3, 4, 5, 6, 49) { SID = 13 }
                , new Systemfeld(1, 2, 3, 4, 5, 6, 49) { SID = 13 }
                , new Systemfeld(1, 2, 3, 4, 5, 6, 49) { SID = 13 }
                ) { Losnummer = "0000001" });
            var aus = new Ausspielung(new[] { 1, 2, 3, 4, 5, 6 }, 49, "1234567", "123456", 0);

            Console.WriteLine("Ziehung: " + Stringifier.stringify(aus.Gewinnzahlen, " "));
            foreach (var tipp in a.Tipps)
                Console.WriteLine("Tipp: " + Stringifier.stringify(tipp.Tipp.Tippzahlen, " "));
            var p = a.evaluateLotto(aus);
            if (p.IsWin)
                Console.WriteLine("won");
            else
                Console.WriteLine("lost");
            foreach (var hit in a.evaluateLotto(aus).Hits.OrderBy(x => x.Key))
                Console.WriteLine("Hits: " + "Gk" + hit.Key + ": " + hit.Value);
        }
示例#40
0
        public void can_merge_Auftrag_with_single_Tippfeld()
        {
            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3)));
            var ausspielung = new Ausspielung(new[] { 1, 2, 3, 4, 5, 6 }, 49, "1234567", "234567", 7);
            var protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.Count(), Is.EqualTo(1));
            Assert.That(protocols.First().ProtocolType, Is.EqualTo(SpielType.Lotto649));
            Assert.That(protocols.First().Hits.ContainsKey(8));

            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 49)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits.ContainsKey(7));

            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits.ContainsKey(6));

            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 49)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits.ContainsKey(5));

            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 5)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits.ContainsKey(4));

            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 5, 49)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits.ContainsKey(3));

            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 5, 6)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits.ContainsKey(2));

            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 5, 6)) { Losnummer = "0000007" });
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits.ContainsKey(1));
        }
示例#41
0
        public static ObservableCollection <CustomerWrapper> GetKunden()
        {
            var kuden = new ObservableCollection <CustomerWrapper>();

            var kunde1 = new Kunde()
            {
                Klassifizirung = 1,
                Name           = "TestKunde1",
                Ort            = "Darmstadt",
                Plz            = "64283",
                Str            = "Stauffenbergstraße 56"
            };

            var kunde2 = new Kunde()
            {
                Klassifizirung = 0,
                Name           = "TestKunde2",
                Ort            = "Taunusstein",
                Plz            = "65232",
                Str            = "Bleidenstädterstraße 5"
            };

            var kunde3 = new Kunde()
            {
                Klassifizirung = 2,
                Name           = "TestKunde3",
                Ort            = "Darmstadt",
                Plz            = "64293",
                Str            = "Otto-Röhm-Straße 69"
            };

            var artikel1 = new Artikel()
            {
                Bezeichnung  = "TestArtikel1",
                IstLieferbar = true,
                Preis        = 5.50
            };

            var artikel2 = new Artikel()
            {
                Bezeichnung  = "TestArtikel2",
                IstLieferbar = false,
                Preis        = 12.67
            };

            var atg1Kd1 = new Auftrag(kunde1.Uid, new TestBillingProvider(), new TestDiscountProvider())
            {
                AuftragsDatum = new DateTime(2016, 1, 1),
                LieferDatum   = new DateTime(2016, 05, 01),
                Status        = 2
            };

            var pos1atg1 = new Auftragsposition(atg1Kd1.Uid, new TestDiscountProvider())
            {
                ArtikelUid   = artikel1.Uid,
                Bestellmenge = 5,
                Liefermenge  = 5
            };

            var pos2atg1 = new Auftragsposition(atg1Kd1.Uid, new TestDiscountProvider())
            {
                ArtikelUid   = artikel2.Uid,
                Bestellmenge = 41,
                Liefermenge  = 20
            };

            var pos1Wrapper = new PositionWrapper()
            {
                Position = pos1atg1,
                Artikel  = artikel1
            };

            var pos2Wrapper = new PositionWrapper()
            {
                Position = pos2atg1,
                Artikel  = artikel2
            };

            var atgWrapper = new AuftragWrapper()
            {
                Auftrag    = atg1Kd1,
                Positionen = new ObservableCollection <PositionWrapper>()
                {
                    pos1Wrapper, pos2Wrapper
                },
                Kunde = kunde1
            };

            var kd1Wrapper = new CustomerWrapper()
            {
                Kunde     = kunde1,
                Auftraege = new ObservableCollection <AuftragWrapper>()
                {
                    atgWrapper
                }
            };

            var kd2Wrapper = new CustomerWrapper()
            {
                Kunde = kunde2
            };

            var kd3Wrapper = new CustomerWrapper()
            {
                Kunde = kunde3
            };

            return(new ObservableCollection <CustomerWrapper>()
            {
                kd1Wrapper,
                kd2Wrapper,
                kd3Wrapper
            });
        }
示例#42
0
 public void addToOrderSortedByCustomerList(Auftrag aOrder)
 {
     OrderSortedByCustomerList.Add(aOrder);
 }
示例#43
0
        public void can_merge_normal_Auftrag()
        {
            var ausspielung = new Ausspielung(new[] { 6, 11, 14, 29, 30, 37 }, 19, "7188625", "074789", 5);

            sut = new Auftrag(new Systemschein(
                new Systemfeld(1,6,7,12,13,16,22,25,40,41,43,44,45) { SID = 13 }, // 6
                new Systemfeld(1,8,9,11,14,19,29,31,36,38,39,40,46) { SID = 13 }, // 11,14,29-19
                new Systemfeld(5,6,7,9,13,14,17,23,24,29,35,36,48) { SID = 13 }, // 6,14,29
                new Systemfeld(9,13,16,17,20,25,27,31,33,40,43,44,49) { SID = 13 }
                ));

            var protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits[7], Is.EqualTo(36));
            Assert.That(protocols.First().Hits[8], Is.EqualTo(204));
        }
示例#44
0
        public void can_merge_system_Auftrag()
        {
            var ausspielung = new Ausspielung(new[] { 1,9,20,29,36,44 }, 8, "0700630", "196540", 7);

            sut = new Auftrag(new Systemschein(
                new Systemfeld(1, 6, 7, 12, 13, 16, 22, 25, 40, 41, 43, 44, 45) { SID = 13 }, // 1,44
                new Systemfeld(1, 8, 9, 11, 14, 19, 29, 31, 36, 38, 39, 40, 46) { SID = 13 }, // 1,9,29,36-8
                new Systemfeld(5, 6, 7, 9, 13, 14, 17, 23, 24, 29, 35, 36, 48) { SID = 13 }, // 9,29,36
                new Systemfeld(9, 13, 16, 17, 20, 25, 27, 31, 33, 40, 43, 44, 49) { SID = 13 } // 9,20,44
                ));

            var protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits[5], Is.EqualTo(8));
            Assert.That(protocols.First().Hits[6], Is.EqualTo(28));
            Assert.That(protocols.First().Hits[7], Is.EqualTo(112));
            Assert.That(protocols.First().Hits[8], Is.EqualTo(464));
        }
示例#45
0
        public void can_validate()
        {
            sut = new Auftrag(new Normalschein());
            Assert.That(sut.IsValid(), Is.False);
            sut = new Auftrag(new Systemschein());
            Assert.That(sut.IsValid(), Is.False);

            sut = new Auftrag(new Normalschein(new Normalfeld()));
            Assert.That(sut.IsValid(), Is.False);
            sut = new Auftrag(new Systemschein(new Systemfeld()));
            Assert.That(sut.IsValid(), Is.False);

            sut = new Auftrag(new Normalschein(new Normalfeld(1)));
            Assert.That(sut.IsValid(), Is.False);
            sut = new Auftrag(new Systemschein(new Systemfeld(1) { SID = 7 }));
            Assert.That(sut.IsValid(), Is.False);

            sut = new Auftrag(new Normalschein(new Normalfeld(1, 2, 3, 4, 5, 6)));
            Assert.That(sut.IsValid());
            sut = new Auftrag(new Systemschein(new Systemfeld(1, 2, 3, 4, 5, 6, 7) { SID = 7 }));
            Assert.That(sut.IsValid());

            sut = new Auftrag(new Normalschein().quick());
            Assert.That(sut.IsValid());
            sut = new Auftrag(new Systemschein().quick());
            Assert.That(sut.IsValid());
        }
示例#46
0
 public void can_validate_false()
 {
     sut = new Auftrag(new Systemschein(new Systemfeld(ZahlRandomiser.many(7)) { SID = 8 }));
     X.printValidationErros(sut);
     Assert.That(sut.IsValid(), Is.False);
 }
示例#47
0
        public void can_validate_ISchein_in_Auftrag_context()
        {
            var schein = new Normalschein(new Normalfeld().quick() as Normalfeld, new Normalfeld());
            sut = new Auftrag(schein);
            X.printValidationErros(sut);
            Assert.That(X.isValid(sut));

            sut = new Auftrag(new Normalschein().quick());
            Assert.That(X.isValid(sut));

            sut = new Auftrag(new Systemschein().quick());
            Assert.That(X.isValid(sut));
        }
示例#48
0
 public void can_validate_true()
 {
     sut = new Auftrag(new Systemschein(new Systemfeld(ZahlRandomiser.many(7)) { SID = 7 }));
     Assert.That(sut.IsValid());
 }
示例#49
0
        public void ctor()
        {
            sut = new Auftrag(new Normalschein());
            Assert.That(sut.Tipps.Count, Is.EqualTo(0));

            sut = new Auftrag(new Normalschein().quick());
            Assert.That(sut.Tipps.Select(x => x.Idx).Distinct().Count(), Is.EqualTo(12));
        }
示例#50
0
        public void can_merge_Auftrag_with_multiple_Tippfelds()
        {
            var ausspielung = new Ausspielung(new[] { 1, 2, 3, 4, 5, 6 }, 49, "1234567", "234567", 7);

            sut = new Auftrag(new Normalschein(
                    new Normalfeld(1, 2),
                    new Normalfeld(1, 2, 3)));
            var protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.Count(), Is.EqualTo(1));
            Assert.That(protocols.First().ProtocolType, Is.EqualTo(SpielType.Lotto649));
            Assert.That(protocols.First().Hits.ContainsKey(8));
            Assert.That(protocols.First().Hits[8], Is.EqualTo(1));

            sut = new Auftrag(new Normalschein(
                    new Normalfeld(1, 2, 3),
                    new Normalfeld(1, 2, 3)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits[8], Is.EqualTo(2));

            sut = new Auftrag(new Normalschein(
                    new Normalfeld(1, 2, 3),
                    new Normalfeld(1, 2, 3, 4)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits[8], Is.EqualTo(1));
            Assert.That(protocols.First().Hits[6], Is.EqualTo(1));

            sut = new Auftrag(new Normalschein(
                    new Normalfeld(1, 2, 3, 4),
                    new Normalfeld(1, 2, 3)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits[8], Is.EqualTo(1));
            Assert.That(protocols.First().Hits[6], Is.EqualTo(1));

            sut = new Auftrag(new Normalschein(
                    new Normalfeld(1, 2, 3, 4, 5, 6),
                    new Normalfeld(1, 2, 3, 4),
                    new Normalfeld(1, 2, 3, 4, 5),
                    new Normalfeld(1, 2, 3)));
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits[8], Is.EqualTo(1));
            Assert.That(protocols.First().Hits[6], Is.EqualTo(1));
            Assert.That(protocols.First().Hits[4], Is.EqualTo(1));
            Assert.That(protocols.First().Hits[2], Is.EqualTo(1));

            sut = new Auftrag(new Normalschein(
                    new Normalfeld(1, 2, 3, 4, 5, 6),
                    new Normalfeld(1, 2, 3, 4, 49),
                    new Normalfeld(1, 2, 3, 4, 5, 49),
                    new Normalfeld(1, 2, 3, 49)) { Losnummer = "0000007" });
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits[7], Is.EqualTo(1));
            Assert.That(protocols.First().Hits[5], Is.EqualTo(1));
            Assert.That(protocols.First().Hits[3], Is.EqualTo(1));
            Assert.That(protocols.First().Hits[1], Is.EqualTo(1));

            sut = new Auftrag(new Normalschein(
            new Normalfeld(1, 2, 3, 4, 5, 6),
            new Normalfeld(1, 2, 3),
            new Normalfeld(1, 2, 3, 4, 5),
            new Normalfeld(1, 2, 3, 4, 49),
            new Normalfeld(1, 2, 3, 4, 5, 49),
            new Normalfeld(1, 2, 3, 4),
            new Normalfeld(1, 2, 3, 49)) { Losnummer = "0000007" });
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits.ContainsKey(1));
            Assert.That(protocols.First().Hits.ContainsKey(2), Is.False);
            Assert.That(protocols.First().Hits.ContainsKey(3));
            Assert.That(protocols.First().Hits.ContainsKey(4));
            Assert.That(protocols.First().Hits.ContainsKey(5));
            Assert.That(protocols.First().Hits.ContainsKey(6));
            Assert.That(protocols.First().Hits.ContainsKey(7));
            Assert.That(protocols.First().Hits.ContainsKey(8));

            sut = new Auftrag(new Normalschein(
            new Normalfeld(1, 2, 3, 4, 5, 6),
            new Normalfeld(1, 2, 3),
            new Normalfeld(1, 2, 3, 4, 5),
            new Normalfeld(1, 2, 3, 4, 49),
            new Normalfeld(1, 2, 3, 4, 5, 49),
            new Normalfeld(1, 2, 3, 4),
            new Normalfeld(1, 2, 3),
            new Normalfeld(1, 2, 3, 49)) { Losnummer = "0000007" });
            protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.First().Hits.ContainsKey(1));
            Assert.That(protocols.First().Hits.ContainsKey(2), Is.False);
            Assert.That(protocols.First().Hits.ContainsKey(3));
            Assert.That(protocols.First().Hits.ContainsKey(4));
            Assert.That(protocols.First().Hits.ContainsKey(5));
            Assert.That(protocols.First().Hits.ContainsKey(6));
            Assert.That(protocols.First().Hits.ContainsKey(7));
            Assert.That(protocols.First().Hits[8], Is.EqualTo(2));

            sut = new Auftrag(new Systemschein(
                new Systemfeld(){SID = 13},
                new Systemfeld(){SID = 13},
                new Systemfeld(){SID = 13},
                new Systemfeld(){SID = 13}
                ));
        }
示例#51
0
        public void can_validate_empty_Schein_in_Auftrag_context()
        {
            sut = new Auftrag(new Normalschein());
            Assert.That(X.isValid(sut), Is.False);
            X.printValidationErros(sut);

            sut = new Auftrag(new Systemschein());
            Assert.That(X.isValid(sut), Is.False);
            X.printValidationErros(sut);
        }
示例#52
0
        public void can_merge_Auftrag_with_Super6_Spiel77()
        {
            var ausspielung = new Ausspielung(new[] { 6, 11, 14, 29, 30, 37 }, 19, "0000005", "000005", 5);

            sut = new Auftrag(new Systemschein(
                new Systemfeld(6, 11, 14) { SID = 13 }
                ) { IsSpiel77 = true, IsSuper6 = true, Losnummer = "0000005" });

            var protocols = sut.evaluate(ausspielung);
            Assert.That(protocols.Count(), Is.EqualTo(3));
        }