예제 #1
0
        public static string EreignisseToVariable_Json(int turnierID)
        {
            try
            {
                ClsTabellenVariabeln tv = ClsDBVariablen.Instance.GetTabellenVariable("T03");

                string SpielNr = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T03" && x.Field == "Spiel").Value;

                if (SpielNr == string.Empty)
                {
                    SpielNr = "0";
                }

                int spielNr = Convert.ToInt32(SpielNr);

                string Ereignisart = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T03" && x.Field == "Ereignistyp").Value;

                // Create a DataTable for buildup
                DataTable tempTable = new DataTable();

                // Spalte je Anzeigespalte erstellen
                List <Anzeigetabelle> cols1 = ClsOptionsControler.Anzeigetabelle("T03", "std");
                List <Anzeigetabelle> cols  = (from x in cols1 where x.Sichtbar == 1 select x).ToList();

                string[] spalten = new string[cols.Count + 1];
                if (cols.Any())
                {
                    spalten[0] = "ID";
                    for (int i = 0; i < cols.Count; i++)
                    {
                        spalten[i + 1] = cols[i].DBFeld;
                    }
                }

                // Daten lesen
                List <TEreignisse> tab = ClsEreignisControler.Ereignisse(turnierID);

                // Daten filtern
                if (Ereignisart != string.Empty)
                {
                    tab = (from t in tab
                           where t.Ereignistyp == Ereignisart.Substring(0, 2)
                           select t).ToList();
                }

                if (SpielNr != "0")
                {
                    tab = (from t in tab
                           where t.Spiel == spielNr
                           select t).ToList();
                }

                // Daten sortieren
                //if (zeitrichtung == "0")
                //{
                //    tab = (from t in tab orderby t.Spiel, t.Spielabschnitt, t.Spielzeit select t).ToList();
                //}
                //else
                //{
                //    tab = (from t in tab orderby t.Spiel, t.Spielabschnitt, t.Spielzeit descending select t).ToList();
                //}

                tab = (from t in tab orderby t.CPUZeit select t).ToList();

                //// Seite berechnen
                int recPerPage = tv.RecPerPage;
                int skip       = calacSkipRecords("T03", recPerPage, (decimal)tab.Count());

                // tabseite
                tab = (from t in tab select t).Skip(skip).Take(recPerPage).ToList();

                // Werte übersetzen
                if (tab.Any())
                {
                    for (int i = 0; i < tab.Count; i++)
                    {
                        //tab[i].Ereignistyp = ClsLocalisationFunctions.Keytext("Ereignis", tab[i].Ereignistyp);
                        if (!tab[i].Ereignistyp.Contains("-"))
                        {
                            tab[i].Ereignistyp = ClsTextControler.TextByNameAndNumber("Ereignis", tab[i].Ereignistyp);
                        }
                        //if (kname)
                        //{
                        //	tab[i].Mannschaft = Kurzname(tab[i].Mannschaft);
                        //}

                        string opt_EreigniszeitGenau = ClsOptionsControler.Options3("EreigniszeitGenau").Value;
                        if (opt_EreigniszeitGenau == "False")
                        {
                            tab[i].Spielzeit = ConvertSpielzeitToKurzzeit(tab[i].Spielzeit, tab[i].Spielzeitrichtung);
                        }
                    }
                }

                // Mache aus List ein Datatable
                using (var reader = FastMember.ObjectReader.Create(tab, spalten))
                {
                    tempTable.Load(reader);
                }

                // Spalten übersetzen
                for (int i = 0; i < tempTable.Columns.Count; i++)
                {
                    // Anzeigename
                    string text = (from x in cols where x.DBFeld == tempTable.Columns[i].ColumnName select x.Anzeigename).FirstOrDefault();
                    if (string.IsNullOrEmpty(text))
                    {
                        //text = ClsLocalisationFunctions.Tabellenfeld("Ereignisse", tempTable.Columns[i].ColumnName);
                        text = ClsTextControler.TextByNameAndNumber("Ereignisse", tempTable.Columns[i].ColumnName);
                    }

                    if (!string.IsNullOrEmpty(text))
                    {
                        tempTable.Columns[i].ColumnName = text;
                    }
                }

                // Tabellenseite berechnen
                // gewählte seite = ???
                // seiten = anz datensätze / datensätze je Seite
                // startindex =     datensätze je Seite *   gewählte seite	  + 1
                // endindex =		datensätze je Seite *   (gewählte seite	  + 1 ) - 1
                // schleife zum filten von tempTable

                //			var custQuery2 =
                //(from cust in db.Customers
                // orderby cust.ContactName
                // select cust)
                //.Skip(50).Take(10);	<------- skip und take!!!

                //			foreach (var custRecord in custQuery2)
                //			{
                //				Console.WriteLine(custRecord.ContactName);
                //			}

                return(ConvertDatatabletoString(tempTable));
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
                return(null);
            }
        }
예제 #2
0
        public static string TabelleToVariable_Json(int turnierID)
        {
            try
            {
                ClsTabellenVariabeln tv = ClsDBVariablen.Instance.GetTabellenVariable("T01");

                bool kname = Convert.ToBoolean(ClsOptionsControler.Options3("kurznamen").Value);

                string Runde  = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T01" && x.Field == "Runde").Value;
                string Gruppe = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T01" && x.Field == "Gruppe").Value;

                if (string.IsNullOrEmpty(Runde))
                {
                    Runde = "0";
                }

                int runde = Convert.ToInt32(Runde);

                // Create a DataTable for buildup
                DataTable tempTable = new DataTable();

                // Spalte je Anzeigespalte erstellen
                List <Anzeigetabelle> cols1 = ClsOptionsControler.Anzeigetabelle("T01", "std");
                List <Anzeigetabelle> cols  = (from x in cols1 where x.Sichtbar == 1 select x).ToList();

                string[] spalten = new string[cols.Count + 1];
                if (cols.Any())
                {
                    spalten[0] = "ID";
                    for (int i = 0; i < cols.Count; i++)
                    {
                        spalten[i + 1] = cols[i].DBFeld;
                    }
                }

                // Tabelle lesen
                List <TTabellen> tab = ClsTurnierControler.Tabellen(turnierID);

                // Daten filtern
                if (Runde != "0")
                {
                    tab = (from t in tab
                           where t.Runde == runde
                           select t).ToList();
                }

                if (!string.IsNullOrEmpty(Gruppe))
                {
                    tab = (from t in tab
                           where t.Gruppe == Gruppe
                           select t).ToList();
                }

                // Daten sortieren
                tab = (from t in tab
                       orderby t.Runde, t.Gruppe, t.Platz
                       select t).ToList();

                //// Seite berechnen
                int recPerPage = tv.RecPerPage;
                int skip       = calacSkipRecords("T02", recPerPage, (decimal)tab.Count());

                // tabseite
                tab = (from t in tab select t).Skip(skip).Take(recPerPage).ToList();

                // Werte übersetzen
                if (tab.Any())
                {
                    for (int i = 0; i < tab.Count; i++)
                    {
                        if (kname)
                        {
                            tab[i].Mannschaft = Kurzname(tab[i].Mannschaft);
                        }
                    }
                }

                // Mache aus List ein Datatable
                using (var reader = FastMember.ObjectReader.Create(tab, spalten))
                {
                    tempTable.Load(reader);
                }

                // Spalten übersetzen
                for (int i = 0; i < tempTable.Columns.Count; i++)
                {
                    // Anzeigename
                    string text = (from x in cols where x.DBFeld == tempTable.Columns[i].ColumnName select x.Anzeigename).FirstOrDefault();
                    if (string.IsNullOrEmpty(text))
                    {
                        //text = ClsLocalisationFunctions.Tabellenfeld("Tabelle", tempTable.Columns[i].ColumnName);
                        text = ClsTextControler.TextByNameAndNumber("Tabelle", tempTable.Columns[i].ColumnName);
                    }

                    if (!string.IsNullOrEmpty(text))
                    {
                        tempTable.Columns[i].ColumnName = text;
                    }
                }

                return(ConvertDatatabletoString(tempTable));

                // tempTable.Dispose();
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
                return(null);
            }
        }