예제 #1
0
        private void CopyTableEveryDay()
        {
#pragma warning disable CS1998 // Bei der asynchronen Methode fehlen "await"-Operatoren. Die Methode wird synchron ausgeführt.
            Task.Run(async() =>
#pragma warning restore CS1998 // Bei der asynchronen Methode fehlen "await"-Operatoren. Die Methode wird synchron ausgeführt.
            {
                while (true)
                {
                    #region set Trigger Time
                    DateTime aktuelleZeit = DateTime.Now;
                    DateTime triggerZeit  = new DateTime(aktuelleZeit.Year, aktuelleZeit.Month, aktuelleZeit.Day, 13, 36, 00, 000);
                    // get the time different to int in millisec
                    int iTriggerZeit = Convert.ToInt32(triggerZeit.Subtract(aktuelleZeit).TotalMilliseconds);
                    if (iTriggerZeit < 0)
                    {
                        triggerZeit  = new DateTime(aktuelleZeit.Year, aktuelleZeit.Month, aktuelleZeit.Day, 13, 36, 00, 000).AddDays(1);
                        iTriggerZeit = Convert.ToInt32(triggerZeit.Subtract(aktuelleZeit).TotalMilliseconds);
                    }
                    // sleep until the respons time is 13:38 each day
                    Thread.Sleep(iTriggerZeit);
                    #endregion

                    this.db = this.dbClass.connect();
                    TablesHeader dbTable = new TablesHeader(this.db);

                    #region Delete all Data in Table 1337_2 First
                    var table1337_2result = from table in dbTable.Table1337_2
                                            select table;

                    foreach (var item in table1337_2result)
                    {
                        dbTable.Table1337_2.DeleteOnSubmit(item);
                    }
                    try
                    {
                        dbTable.SubmitChanges();
                        LogMain("Daten in Tabelle 1337_2 erfolgreich gelöscht.", LogLevel.Dev);
                    }
                    catch (Exception e)
                    {
                        LogMain("Beim Löschen der Daten in Tabelle 1337_2 ist ein Fehler aufgetretten.\n" + e, LogLevel.Error);
                    }
                    #endregion

                    #region Copy Data from Table 1337 -> 1337_2
                    var table1337result = from table in dbTable.Table1337
                                          select table;

                    foreach (var item in table1337result)
                    {
                        Table1337_2 newList            = new Table1337_2();
                        newList.userid                 = item.userid;
                        newList.username               = item.username;
                        newList.counter_all            = item.counter_all;
                        newList.counter_streak         = item.counter_streak;
                        newList.counter_longest_streak = item.counter_longest_streak;
                        newList.date_begin             = item.date_begin;
                        newList.date_last              = item.date_last;
                        dbTable.Table1337_2.InsertOnSubmit(newList);
                    }
                    try
                    {
                        dbTable.SubmitChanges();
                        LogMain("Kopieren der Tabelle 1337 -> 1337_2 war erfolgreich.", LogLevel.Dev);
                    }
                    catch (Exception e)
                    {
                        LogMain("Beim Kopieren der Tabelle 1337 -> 1337_2 ist ein Fehler aufgetretten.\n" + e, LogLevel.Error);
                    }
                    #endregion
                    db.Close();
                }
            });
        }
예제 #2
0
        private async Task ShowUser(string args, ShowUserEnum su)
        {
            if (!ReadChannelGeneralAdmin())
            {
                return;
            }

            if (ModRoleID == 0)
            {
                await SendToGeneralChannelAdminAsync("Die Mod rolle wurde noch nicht gesetzt, bitte dem SeverAdministrator bescheid geben!");

                return;
            }

            if (args == null)
            {
                if (su == ShowUserEnum.Today)
                {
                    await SendToGeneralChannelAdminAsync(Context.User.Mention + " Du hast zu wenige Argumente angegeben. Bitte nutze den Befehl wie folgt:\n>>> `" +
                                                         Prefix + "showusertoday <UserID>`");
                }
                else if (su == ShowUserEnum.Yesterday)
                {
                    await SendToGeneralChannelAdminAsync(Context.User.Mention + " Du hast zu wenige Argumente angegeben. Bitte nutze den Befehl wie folgt:\n>>> `" +
                                                         Prefix + "showuseryesterday <UserID>`");
                }
                return;
            }
            args = args.ToLower();
            string[] countArgs = args.Split(' ');

            if (countArgs.Length > 1)
            {
                await SendToGeneralChannelAdminAsync(Context.User.Mention + " Zu viele Agumente!");
            }
            else
            {
                bool memberHasModRole = false;
                foreach (var item in Context.Guild.GetRole(ModRoleID).Members)
                {
                    if (item.Id == Context.User.Id)
                    {
                        memberHasModRole = true;
                    }
                }

                if (memberHasModRole || Context.Guild.GetUser(Context.User.Id).GuildPermissions.Administrator)
                {
                    var          db      = new DatabaseInit().connect();
                    TablesHeader dbTable = new TablesHeader(db);

                    Table1337   updateUserToday     = new Table1337();
                    Table1337_2 updateUserYesterday = new Table1337_2();

                    try
                    {
                        // Check if UserID is number
                        ulong userID = 0;
                        try
                        {
                            userID = Convert.ToUInt64(countArgs[0]);
                        }
                        catch (Exception)
                        {
                            await SendToGeneralChannelAdminAsync("<UserID> war keine Zahl!");

                            return;
                        }
                        // Get User from Database
                        if (su == ShowUserEnum.Today)
                        {
                            updateUserToday = dbTable.Table1337.Single((item) => item.userid == userID);
                        }
                        else if (su == ShowUserEnum.Yesterday)
                        {
                            updateUserYesterday = dbTable.Table1337_2.Single((item) => item.userid == userID);
                        }
                    }
                    catch (Exception)
                    {
                        await SendToGeneralChannelAdminAsync("Es wurde kein User mit der ID: " + countArgs[0] + " gefunden");

                        return;
                    }
                    if (su == ShowUserEnum.Today)
                    {
                        await SendToGeneralChannelAdminAsync("User Informationen\n" +
                                                             ">>> Name: `" + updateUserToday.username + "`\n" +
                                                             "ID: `" + updateUserToday.userid.ToString() + "`\n" +
                                                             "Counter Streak: `" + updateUserToday.counter_streak + "`\n" +
                                                             "Counter Longest Streak: `" + updateUserToday.counter_longest_streak + "`\n" +
                                                             "Counter All: `" + updateUserToday.counter_all + "`\n" +
                                                             "Date Begin: `" + updateUserToday.date_begin + "`\n" +
                                                             "Date Last: `" + updateUserToday.date_last + "`");
                    }
                    else if (su == ShowUserEnum.Yesterday)
                    {
                        await SendToGeneralChannelAdminAsync("User Informationen\n" +
                                                             ">>> Name: `" + updateUserYesterday.username + "`\n" +
                                                             "ID: `" + updateUserYesterday.userid.ToString() + "`\n" +
                                                             "Counter Streak: `" + updateUserYesterday.counter_streak + "`\n" +
                                                             "Counter Longest Streak: `" + updateUserYesterday.counter_longest_streak + "`\n" +
                                                             "Counter All: `" + updateUserYesterday.counter_all + "`\n" +
                                                             "Date Begin: `" + updateUserYesterday.date_begin + "`\n" +
                                                             "Date Last: `" + updateUserYesterday.date_last + "`");
                    }
                }
                else
                {
                    await SendToGeneralChannelAdminAsync("Du hast keine Berechtigung. Du musst im besitz der `" + Context.Guild.GetRole(ModRoleID).Name + "` Rolle sein.");
                }
            }
        }