public static void SaveStrafe(Strafen strafe)
        {
            try
            {
                Strafen st;

                using (fsbDB FSBDB = new fsbDB())
                {
                    st = (from x in FSBDB.Strafen
                          where x.ID == strafe.ID
                          select x).FirstOrDefault();

                    foreach (PropertyInfo pi in strafe.GetType().GetProperties())
                    {
                        if (pi.CanWrite)
                        {
                            pi.SetValue(st, pi.GetValue(strafe, null), null);
                        }
                    }

                    FSBDB.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
        public static void Dotick(List <ClsZeitstrafe> zeitstrafen, string aoderb)
        {
            try
            {
                //// bool removed = false;

                if (zeitstrafen.Count > 0)
                {
                    zeitstrafen.RemoveAll(x => x.Zeit == 0);
                    //// removed = true;
                }

                string parStraf    = ClsOptionsControler.Options3("Parallelstrafen").Value;
                int    parStrafInt = Convert.ToInt32(parStraf);

                if (parStrafInt == 0 || parStrafInt > zeitstrafen.Count)
                {
                    parStrafInt = zeitstrafen.Count;
                }

                for (int i = 0; i < parStrafInt; i++)
                {
                    if (zeitstrafen[i].Zeit > 0)
                    {
                        zeitstrafen[i].Zeit   -= 1;
                        zeitstrafen[i].Minuten = ClsFunktionen.Sek2uhr(zeitstrafen[i].Zeit);
                        if (zeitstrafen[i].Zeit == 0)
                        {
                            string endeton = ClsOptionsControler.Strafe(zeitstrafen[i].Bezeichnung).EndeTon;
                            ClsSoundplayer.Instance.TPlay(endeton + "|" + "20");
                        }

                        Strafen straf = ClsOptionsControler.Strafe(zeitstrafen[i].Bezeichnung);
                        if (zeitstrafen[i].Zeit <= straf.Countdowndauer && zeitstrafen[i].Zeit != 0)
                        {
                            ClsSoundplayer.Instance.TPlay(straf.TonCountdown + "|" + "21");
                        }
                    }
                }

                ClsTabellenfunktionen.StrafenToVariable(zeitstrafen, aoderb, "std");
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
 public static void AddStrafe(Strafen strafe)
 {
     try
     {
         using (fsbDB FSBDB = new fsbDB())
         {
             long newID = (from x in FSBDB.Strafen select x.ID).DefaultIfEmpty(0).Max() + 1;
             strafe.ID = newID;
             FSBDB.Strafen.Add(strafe);
             FSBDB.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex);
     }
 }
        public static void StrafeNeu(string aoderb, string SpielerID, string StrafenID)
        {
            try
            {
                int strafenID = Convert.ToInt32(StrafenID);

                DateTime cpu = DateTime.Now;

                string mannschaft = string.Empty;
                if (aoderb == "A")
                {
                    mannschaft = ClsGlobal.Instance.AktivesSpiel.IstMannA;
                }
                else
                {
                    mannschaft = ClsGlobal.Instance.AktivesSpiel.IstMannB;
                }

                string spielerName = ClsFunktionen.MakeSpielerNameOhneSID(SpielerID);

                // Strafdaten
                Strafen strafe = ClsOptionsControler.Strafe(strafenID);

                // 03 = Zeitstrafe
                if (strafe.Art == "03")
                {
                    // Zeitstarfe
                    ClsZeitstrafe z = new ClsZeitstrafe();

                    z.Mannschaft  = mannschaft;
                    z.SpielerID   = SpielerID;
                    z.Spieler     = spielerName;
                    z.Zeit        = strafe.Sekunden;
                    z.Minuten     = ClsFunktionen.Sek2uhr(z.Zeit);
                    z.Bezeichnung = strafe.Bezeichnung;

                    if (aoderb == "A")
                    {
                        if (ClsGlobal.Instance.Strafen1.Any())
                        {
                            z.ID = (from x in ClsGlobal.Instance.Strafen1 select x.ID).Max() + 1;
                        }
                        else
                        {
                            z.ID = 1;
                        }

                        ClsGlobal.Instance.Strafen1.Add(z);

                        ClsTabellenfunktionen.StrafenToVariable(ClsGlobal.Instance.Strafen1, aoderb, "std");
                    }
                    else if (aoderb == "B")
                    {
                        if (ClsGlobal.Instance.Strafen2.Any())
                        {
                            z.ID = (from x in ClsGlobal.Instance.Strafen2 select x.ID).Max() + 1;
                        }
                        else
                        {
                            z.ID = 1;
                        }

                        ClsGlobal.Instance.Strafen2.Add(z);

                        ClsTabellenfunktionen.StrafenToVariable(ClsGlobal.Instance.Strafen2, aoderb, "std");
                    }

                    // Ereignis
                    if (
                        (ClsGlobal.Instance.TurnierID == 0 && ClsOptionsControler.Options3("Spielfreieereignisse").Value == "True")
                        ||
                        (ClsGlobal.Instance.TurnierID != 0 && ClsGlobal.Instance.AktivesSpiel != null)
                        )
                    {
                        string SpielzeitStr = ClsDBVariablen.Instance.GetTextVariableWert("S08");
                        if (ClsZeitkontroler.Instance.GetClockStatus(2))
                        {
                            SpielzeitStr = SpielzeitStr + "+" + ClsDBVariablen.Instance.GetTextVariableWert("S35");
                        }

                        string Spielzeitrichtung = ClsTimerControler.Timer(ClsTimerControler.TimerID(1)).Countdown.ToString();

                        TEreignisse e = new TEreignisse
                        {
                            TurnierID         = ClsGlobal.Instance.TurnierID,
                            TurnierNr         = 0,
                            Spiel             = (int)ClsGlobal.Instance.AktivesSpiel.Spiel,
                            Mannschaft        = mannschaft,
                            Spielzeit         = SpielzeitStr,
                            Spielzeitrichtung = Spielzeitrichtung,
                            CPUZeit           = DateTime.Now,
                            Ereignistyp       = "07",
                            Spieler           = spielerName,
                            Details           = strafe.Bezeichnung,
                            Spielabschnitt    = ClsDBVariablen.Instance.GetTextVariableWert("S09")
                        };

                        ClsEreignisControler.AddEreignis(e);
                    }

                    ClsDBVariablen.Instance.SetTabellenVariableWert("T03", ClsTabellenfunktionen.EreignisseToVariable_Json(ClsGlobal.Instance.TurnierID));

                    // Spieler wählen
                    ClsDBVariablen.Instance.SetTextVariableWert("S38", SpielerID);
                }
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }