private bool ProcessRegisterUserModelData(User registerUser)
 {
     return(DeleteWhiteSpaces(registerUser) &&
            UpdateUserModelDates(registerUser) &&
            UserTools.ConvertPasswordToSha512(registerUser) &&
            SetActiveFlagForRegisterUser(registerUser));
 }
        private List <ArticleUserPair> GetArticlesFromCategoryList(long lCategoryId)
        {
            List <Article>         articleFromCategory = _repositoryWrapper.Articles.GetArticlesFromCategory(lCategoryId);
            List <ArticleUserPair> newestArticleList   = UserTools.GetUserArticlePair(_repositoryWrapper, articleFromCategory);

            return(newestArticleList);
        }
Beispiel #3
0
        private void DataSave()
        {
            CheckUnCheck();
            string userid = string.Empty;

            if (CmbUserName.SelectedIndex >= 0)
            {
                userid = ((KeyValuePair <string, string>)CmbUserName.SelectedItem).Key.ToString();
            }
            string query = "update usercontrol set permision='" + checkbox + "',Isdelete='" + chkDelete.Checked + "',IsEdit='" + chkEdit.Checked + "',IsCancel='" + ChkCancel.Checked + "' where userid='" + userid + "'";
            bool   bl    = SQLHelper.GetInstance().ExcuteQuery(query, out msg);

            if (bl == true)
            {
                MessageBox.Show("Permission Success fully Updated", "Permission", MessageBoxButtons.OK, MessageBoxIcon.Information);
                UserTools.GetEditDeletePermision();
                CmbUserName.SelectedIndex = -1;
                for (int i = 0; i < chklistbox.Items.Count; i++)
                {
                    chklistbox.SetItemChecked(i, false);
                }
                chkDelete.Checked = false;
                chkEdit.Checked   = false;
                ChkCancel.Checked = false;
            }
        }
Beispiel #4
0
        public string ValidateUser(string UserName, string Password)
        {
            LoggedOnUser LOU = (Session["LoggedOnUserDetails"] == null ? UserTools.getLoggedOnUserDetails(UserName, Password) : (LoggedOnUser)Session["LoggedOnUserDetails"]);

            if (UserTools.authenticateUserOnDefault(LOU) == true)
            {
                Session["USER_ID"]   = LOU.UserID;
                Session["USER_NAME"] = LOU.FullName;
                Session["EMAIL"]     = LOU.EmailID;
                Session["RoleID"]    = LOU.RoleID;
                Session["AccountID"] = LOU.AccountID;

                string UrlPath = string.Empty;
                //Organization Login
                if (LOU.AccountID == 1)
                {
                    UrlPath = "/Organisation/Entity";
                }
                //Entity Login
                else if (LOU.AccountID == 2)
                {
                    UrlPath = "/SessionMgmt/ViewSessions";
                }
                //Center Login
                else if (LOU.AccountID == 3)
                {
                    UrlPath = "/CenterMgmt/ViewSessions";
                }
                return(UrlPath);
            }
            else
            {
                return("false");
            }
        }
Beispiel #5
0
        private List <ArticleUserPair> GetRecommendedArticlesForIndex()
        {
            const int              iNumberOfArticlesResult          = 3;
            HashSet <int>          recommendedArticleIndexesHashSet = new HashSet <int>();
            List <Article>         articlesFromDb          = _repositoryWrapper.Articles.FindAll().ToList <Article>();
            List <Article>         recommendedArticles     = new List <Article>();
            List <ArticleUserPair> recommendedUserArticles = null;

            int iArticleCounter      = 0;
            int iArticlesFromDbCount = articlesFromDb.Count;

            do
            {
                if (recommendedArticleIndexesHashSet.Add(new Random().Next(articlesFromDb.Count)))
                {
                    iArticleCounter++;
                }

                if (iArticlesFromDbCount == iArticleCounter)
                {
                    break;
                }
            }while(iArticleCounter < iNumberOfArticlesResult);


            foreach (int iHashSetElementValue in recommendedArticleIndexesHashSet)
            {
                recommendedArticles.Add(articlesFromDb[iHashSetElementValue]);
            }

            recommendedUserArticles = UserTools.GetUserArticlePair(_repositoryWrapper, recommendedArticles);

            return(recommendedUserArticles);
        }
        public async Task <User> Authenticate(string usernameString, string passwordString)
        {
            string encodedPassword = UserTools.ConvertInputTextToSha512(passwordString);
            User   user            = await Task.Run(() => _repositoryContext.Users.SingleOrDefault(x => x.NickName == usernameString && x.Password == encodedPassword));

            return(user);
        }
Beispiel #7
0
        private List <ArticleUserPair> GetNewestArticlesList()
        {
            const int              iNumberOfArticlesResult = 10;
            List <Article>         newestArticles          = _repositoryWrapper.Articles.GetNewestArticles(iNumberOfArticlesResult);
            List <ArticleUserPair> newestArticleList       = UserTools.GetUserArticlePair(_repositoryWrapper, newestArticles);

            return(newestArticleList);
        }
 private void InitUsers(ModelBuilder modelBuilder)
 {
     modelBuilder.Entity <User>().HasData(new User
     {
         Id                    = 1,
         NickName              = UserTools.ANONYMOUS_USER_NICKNAME,
         Password              = UserTools.ConvertInputTextToSha512(UserTools.ANONYMOUS_USER_NICKNAME),
         Email                 = "*****@*****.**",
         CreateAccountDate     = new DateTime(2019, 5, 30).ToString(),
         LastUpdateAccountDate = new DateTime(2019, 6, 20).ToString(),
         LastLoggedAccountDate = new DateTime(2019, 8, 24).ToString(),
         AvatarId              = 1
     },
                                          new User
     {
         Id                    = 2,
         NickName              = "robert1234",
         Password              = UserTools.ConvertInputTextToSha512("password123ba8"),
         Email                 = "*****@*****.**",
         CreateAccountDate     = new DateTime(2018, 4, 22).ToString(),
         LastUpdateAccountDate = new DateTime(2019, 2, 21).ToString(),
         LastLoggedAccountDate = new DateTime(2019, 9, 12).ToString(),
         AvatarId              = 2
     },
                                          new User
     {
         Id                    = 3,
         NickName              = "michal854",
         Password              = UserTools.ConvertInputTextToSha512("polska987wrm"),
         Email                 = "*****@*****.**",
         CreateAccountDate     = new DateTime(2019, 1, 20).ToString(),
         LastUpdateAccountDate = new DateTime(2019, 6, 23).ToString(),
         LastLoggedAccountDate = new DateTime(2019, 6, 28).ToString(),
         AvatarId              = 5
     },
                                          new User
     {
         Id                    = 4,
         NickName              = "witek754",
         Password              = UserTools.ConvertInputTextToSha512("witek123abc"),
         Email                 = "*****@*****.**",
         CreateAccountDate     = new DateTime(2019, 4, 30).ToString(),
         LastUpdateAccountDate = new DateTime(2019, 12, 21).ToString(),
         LastLoggedAccountDate = new DateTime(2019, 12, 28).ToString(),
         AvatarId              = 7
     },
                                          new User
     {
         Id                    = 5,
         NickName              = "adam5",
         Password              = UserTools.ConvertInputTextToSha512("adamP12z"),
         Email                 = "*****@*****.**",
         CreateAccountDate     = new DateTime(2018, 3, 29).ToString(),
         LastUpdateAccountDate = new DateTime(2019, 10, 04).ToString(),
         LastLoggedAccountDate = new DateTime(2019, 12, 10).ToString(),
         AvatarId              = 3
     });
 }
Beispiel #9
0
        private static void BanUserForPositiveFilter(Message message, Filters.FilterResult result)
        {
            int limitTime = 3;

            Models.Group.ConfigurationParameter configValue = CacheData.GroupConfigs[message.Chat.Id]
                                                              .Where(x => x.ConfigurationParameterId == "SpamActionLimitTime")
                                                              .SingleOrDefault();
            if (configValue != null)
            {
                int.TryParse(configValue.Value, out limitTime);
            }
            RemoveMessageForPositiveFilter(message, result);

            Bot.Manager.BotClient.KickChatMemberAsync(message.Chat.Id, message.From.Id,
                                                      DateTime.UtcNow.AddMinutes(-5));
            UserTools.AddPenalty(message.Chat.Id, message.From.Id,
                                 Models.TrustFactorLog.TrustFactorAction.ban, Bot.Manager.MyId);

            Bot.Manager.BotClient.KickChatMemberAsync(message.Chat.Id, message.From.Id,
                                                      DateTime.UtcNow.AddMinutes(-5));

            UserTools.AddPenalty(message.Chat.Id, message.From.Id,
                                 Models.TrustFactorLog.TrustFactorAction.ban, Bot.Manager.MyId);

            string author = message.From.Username == null
                ? message.From.FirstName + " " + message.From.LastName
                : "@" + message.From.Username;
            string logMessage = String.Format(
                "*[Report]*\n" +
                "User banned as per group _Spam Action_ preference.\n" +
                "⚠ do not open links you don't know ⚠\n" +
                "\nControl: `{0}`" +
                "\nChat: `{1}`" +
                "\nAuthor: `{2}`" +
                "\nUserId: `{3}`" +
                "\n\n*hash_code:* #UB{4}-{5}",
                result.CheckName,
                message.Chat.Title,
                author,
                message.From.Id,
                message.Chat.Id.ToString().Replace("-", ""),
                Guid.NewGuid());

            MessageQueueManager.EnqueueLog(new ChatMessage()
            {
                ParseMode = ParseMode.Markdown,
                Text      = logMessage
            });

            LogTools.AddActionLog(new ActionLog()
            {
                GroupId      = CacheData.Groups[message.Chat.Id].GroupId,
                UtcDate      = DateTime.UtcNow,
                ActionTypeId = "autoBan",
                Parameters   = logMessage,
            });
        }
Beispiel #10
0
        private List <ArticleUserPair> GetNewestArticlesForIndex()
        {
            const int      iNumberOfArticleResult = 3;
            List <Article> newestArticleList      = _repositoryWrapper.Articles
                                                    .GetNewestArticles(iNumberOfArticleResult);
            List <ArticleUserPair> newestArticleUserPairList = UserTools.GetUserArticlePair(_repositoryWrapper, newestArticleList);

            return((newestArticleUserPairList != null) ? newestArticleUserPairList : new List <ArticleUserPair>());
        }
        public IActionResult GetTopArticlesContent()
        {
            MostViewedModel        mostViewedModel       = new MostViewedModel();
            List <Article>         mostViewedArticleList = _repositoryWrapper.Articles.GetMostViewedArticles(10);
            List <ArticleUserPair> articleUserPairList   = UserTools.GetUserArticlePair(_repositoryWrapper, mostViewedArticleList);

            mostViewedModel.MostViewedArticleList = articleUserPairList;

            return(View("Top", mostViewedModel));
        }
Beispiel #12
0
        public static TokenHandleResult HandleIdpIdToken(Session session, idP idP, JWT JWT)
        {
            SqlCommand cmd = session.db.NewConnection.CreateCommand();

            try
            {
                cmd.Parameters.AddWithValue("@IDPID@", idP.IdpID);
                cmd.Parameters.AddWithValue("@SUBJECT@", JWT.Payload["sub"].ToString());
                cmd.CommandText = "SELECT UserID FROM [Security.Users] WHERE [OpenID.IdpID] = @IDPID@ AND [OpenID.Subject] = @SUBJECT@";
                SqlDataReader rdr = cmd.ExecuteReader();
                try
                {
                    if (rdr.HasRows)
                    {
                        if (session.UserID == Guid.Empty)
                        {
                            rdr.Read();
                            Guid UserID = rdr.GetGuid(0);
                            rdr.Close();
                            UserTools.Logon(session, UserID);
                            HandleJwtClaims(session, idP, JWT);
                            return(TokenHandleResult.Success);
                        }
                        else
                        {
                            return(TokenHandleResult.SubjectAlreadyBoundToAnotherAccount);
                        }
                    }
                }
                finally
                {
                    rdr.Close();
                }
                if (session.UserID == Guid.Empty)
                {
                    Guid newUserID = UserTools.CreateUser(session.db);
                    UserTools.Logon(session, newUserID);
                }
                cmd.Parameters.AddWithValue("@USERID@", session.UserID);
                cmd.CommandText = "UPDATE [Security.Users] SET [OpenID.IdpID] = @IDPID@, [OpenID.Subject] = @SUBJECT@ WHERE UserID = @USERID@";
                int affected = cmd.ExecuteNonQuery();
                if (affected != 1)
                {
                    return(TokenHandleResult.FailedToBindToCurrentUserAccount);
                }
                HandleJwtClaims(session, idP, JWT);
                return(TokenHandleResult.Success);
            }
            finally
            {
                cmd.Connection.Close();
            }
        }
Beispiel #13
0
 private static bool HandleJwtClaims(Session Session, idP idP, JWT JWT)
 {
     if (
         idP.ClaimsEmail != null &&
         idP.ClaimsEmail != "" &&
         JWT.Payload.TryGetValue(idP.ClaimsEmail, out object oClaimEmail) &&
         MailAddress.TryCreate(oClaimEmail.ToString(), out MailAddress mailAddress)
         )
     {
         UserTools.SetUserEmail(Session.db, Session.UserID, mailAddress);
     }
     return(true);
 }
Beispiel #14
0
        private void btnLogin_Click(object sender, EventArgs e)
        {
            if (Islogin())
            {
                UserTools._UserID   = ((KeyValuePair <string, string>)cmbUserName.SelectedItem).Key.ToString();
                UserTools._UserName = ((KeyValuePair <string, string>)cmbUserName.SelectedItem).Value.ToString();
                FinancialYearTools.GetFinancialYearDetails();
                UserTools.GetEditDeletePermision();

                flag = true;
                this.Close();
            }
            else
            {
                flag = false;
                toolTip1.Show("SORRY!INVALID PASSWORD", cmbUserName, 10, cmbUserName.Height - 100, 1000);
                // MessageBox.Show("SORRY! INVALID PASSWORD", "Wrong Password", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }
        public bool UpdateUserData(long lUserId, User user, bool bIsChangeAvatar)
        {
            User   userFromDb            = GetUser(lUserId);
            string userPassword          = user.Password;
            string userNewPasswordString = (userPassword != null) ?
                                           UserTools.ConvertInputTextToSha512(userPassword.Trim()) : string.Empty;
            string userEmailString = (user.Email != null) ? user.Email.Trim() : string.Empty;
            bool   bUpdateUserDb   = false;

            if (userFromDb != null)
            {
                bUpdateUserDb = true;

                if (userNewPasswordString != null &&
                    userNewPasswordString.Length > 0 &&
                    userNewPasswordString != userFromDb.Password)
                {
                    userFromDb.Password = userNewPasswordString;
                    userFromDb.LastUpdateAccountDate = DateTime.Now.ToString();
                }

                if (userEmailString != null &&
                    userEmailString.Length > 0 &&
                    userEmailString != userFromDb.Email)
                {
                    userFromDb.Email = userEmailString;
                }

                if (bIsChangeAvatar &&
                    user.AvatarId > -1 &&
                    userFromDb.AvatarId != user.AvatarId)
                {
                    userFromDb.AvatarId = user.AvatarId;
                }

                Update(userFromDb);
            }

            return(bUpdateUserDb);
        }
Beispiel #16
0
    //set all the reference scripts
    private void SetScripts()
    {
        GameObject scriptHolder = GameObject.Find("ScriptHolder");
        int        currentScene = SceneManager.GetActiveScene().buildIndex;

        if (currentScene == 1)
        {
            userTools          = scriptHolder.GetComponent <UserTools>();
            itemTools          = scriptHolder.GetComponent <ItemTools>();
            tempGetDefaultItem = scriptHolder.GetComponent <TempGetDefaultItem>();
            selectedItemScript = scriptHolder.GetComponent <SelectedItemScript>();
            afkTimeScript      = scriptHolder.GetComponent <AfkTimeScript>();
            playTimeScript     = scriptHolder.GetComponent <PlayTimeScript>();
            statsUI            = scriptHolder.GetComponent <StatsUI>();
            customiseUserUI    = scriptHolder.GetComponent <CustomiseUserUI>();
            shopItemsManager   = scriptHolder.GetComponent <ShopItemsManager>();
            leftItemManager    = scriptHolder.GetComponent <LeftItemManager>();
            playerUI           = scriptHolder.GetComponent <PlayerUI>();
        }
        else if (currentScene == 2)
        {
        }
    }
Beispiel #17
0
        public void Execute(Message message)
        {
            if (!BotTools.IsUserOperator(message.From.Id, Models.Operator.Levels.Basic) &&
                !ChatTools.IsUserAdmin(message.Chat.Id, message.From.Id))
            {
                MessageQueueManager.EnqueueMessage(
                    new Models.ChatMessage()
                {
                    Timestamp = DateTime.UtcNow,
                    Chat      = message.Chat,
                    Text      = CacheData.GetTranslation("en", "ban_command_error_notadmin")
                });
                return;
            }

            if (Manager.BotClient.GetChatAdministratorsAsync(message.Chat.Id).Result
                .Single(x => x.User.Id == message.From.Id)
                .CanRestrictMembers == false)
            {
                MessageQueueManager.EnqueueMessage(
                    new Models.ChatMessage()
                {
                    Timestamp = DateTime.UtcNow,
                    Chat      = message.Chat,
                    Text      = CacheData.GetTranslation("en", "ban_command_error_adminPrivilege")
                });
                return;
            }

            int userToKick;

            if (message.ReplyToMessage == null)
            {
                if (message.Text.Split(" ")[1].StartsWith("@"))
                {
                    if (!CacheData.Usernames.Keys.Contains(message.Text.Split(" ")[1].Remove(0, 1)))
                    {
                        MessageQueueManager.EnqueueMessage(
                            new Models.ChatMessage()
                        {
                            Timestamp = DateTime.UtcNow,
                            Chat      = message.Chat,
                            Text      = CacheData.GetTranslation("en", "ban_command_error_invalidUsername")
                        });
                        return;
                    }
                    userToKick = CacheData.Usernames[message.Text.Split(" ")[1].Remove(0, 1)];
                }
                else
                {
                    bool isValid = int.TryParse(message.Text.Split(" ")[1], out userToKick);
                    if (!isValid)
                    {
                        MessageQueueManager.EnqueueMessage(
                            new Models.ChatMessage()
                        {
                            Timestamp = DateTime.UtcNow,
                            Chat      = message.Chat,
                            Text      = CacheData.GetTranslation("en", "ban_command_error_invalidUserId")
                        });
                        return;
                    }
                }
            }
            else
            {
                userToKick = message.ReplyToMessage.From.Id;
            }

            if (userToKick == 777000) // Telegram's official updateServiceNotification
            {
                Manager.BotClient.SendTextMessageAsync(
                    chatId: message.Chat.Id,
                    parseMode: ParseMode.Markdown,
                    text: String.Format(
                        "*[Error]*\n" +
                        "This is an official Telegram's user/id.")
                    );

                return;
            }

            if (BotTools.IsUserOperator(userToKick))
            {
                MessageQueueManager.EnqueueMessage(
                    new Models.ChatMessage()
                {
                    Timestamp = DateTime.UtcNow,
                    Chat      = message.Chat,
                    Text      = CacheData.GetTranslation("en", "command_to_operator_not_allowed")
                });

                return;
            }

            try
            {
                Manager.BotClient.KickChatMemberAsync(message.Chat.Id, userToKick,
                                                      DateTime.UtcNow.AddMinutes(-5));
                MessageQueueManager.EnqueueMessage(
                    new Models.ChatMessage()
                {
                    Timestamp = DateTime.UtcNow,
                    Chat      = message.Chat,
                    Text      = CacheData.GetTranslation("en", "ban_command_success")
                });
            }
            catch
            {
                MessageQueueManager.EnqueueMessage(
                    new Models.ChatMessage()
                {
                    Timestamp = DateTime.UtcNow,
                    Chat      = message.Chat,
                    Text      = CacheData.GetTranslation("en", "ban_command_error")
                });
                return;
            }

            UserTools.AddPenalty(message.Chat.Id, userToKick,
                                 Models.TrustFactorLog.TrustFactorAction.ban, Manager.MyId);
        }
Beispiel #18
0
 public LoginWindow()
 {
     InitializeComponent();
     UserTools.GetUserName();
     cmbUserName.AddUserName();
 }
Beispiel #19
0
        public void Execute(Message message)
        {
            Manager.BotClient.DeleteMessageAsync(message.Chat.Id, message.MessageId);

            if (!BotTools.IsUserOperator(message.From.Id) &&
                !ChatTools.IsUserAdmin(message.Chat.Id, message.From.Id))
            {
                MessageQueueManager.EnqueueMessage(
                    new Models.ChatMessage()
                {
                    Timestamp        = DateTime.UtcNow,
                    Chat             = message.Chat,
                    ReplyToMessageId = message.MessageId,
                    Text             = CacheData.GetTranslation("en", "error_not_auth_command")
                });
                return;
            }
            int userToKick;

            if (message.ReplyToMessage == null)
            {
                if (message.Text.Split(" ")[1].StartsWith("@"))
                {
                    if (!CacheData.Usernames.Keys.Contains(message.Text.Split(" ")[1].Remove(0, 1)))
                    {
                        MessageQueueManager.EnqueueMessage(
                            new Models.ChatMessage()
                        {
                            Timestamp = DateTime.UtcNow,
                            Chat      = message.Chat,
                            Text      = CacheData.GetTranslation("en", "kick_command_error_invalidUsername")
                        });
                        return;
                    }
                    userToKick = CacheData.Usernames[message.Text.Split(" ")[1].Remove(0, 1)];
                }
                else
                {
                    bool isValid = int.TryParse(message.Text.Split(" ")[1], out userToKick);
                    if (!isValid)
                    {
                        MessageQueueManager.EnqueueMessage(
                            new Models.ChatMessage()
                        {
                            Timestamp = DateTime.UtcNow,
                            Chat      = message.Chat,
                            Text      = CacheData.GetTranslation("en", "kick_command_error_invalidUserId")
                        });
                        return;
                    }
                }
            }
            else
            {
                userToKick = message.ReplyToMessage.From.Id;
            }

            if (userToKick == 777000) // Telegram's official updateServiceNotification
            {
                Manager.BotClient.SendTextMessageAsync(
                    chatId: message.Chat.Id,
                    parseMode: ParseMode.Markdown,
                    text: String.Format(
                        "*[Error]*\n" +
                        "This is an official Telegram's user/id.")
                    );

                return;
            }

            if (BotTools.IsUserOperator(userToKick))
            {
                MessageQueueManager.EnqueueMessage(
                    new Models.ChatMessage()
                {
                    Timestamp = DateTime.UtcNow,
                    Chat      = message.Chat,
                    Text      = CacheData.GetTranslation("en", "command_to_operator_not_allowed")
                });

                return;
            }

            try
            {
                Manager.BotClient.KickChatMemberAsync(message.Chat.Id, userToKick);
                if (message.Chat.Type == ChatType.Supergroup)
                {
                    Manager.BotClient.UnbanChatMemberAsync(message.Chat.Id, userToKick);
                }
            }
            catch
            {
                MessageQueueManager.EnqueueMessage(
                    new Models.ChatMessage()
                {
                    Timestamp = DateTime.UtcNow,
                    Chat      = message.Chat,
                    ParseMode = ParseMode.Markdown,
                    Text      = CacheData.GetTranslation("en", "command_kick_error")
                });
                return;
            }

            UserTools.AddPenalty(message.Chat.Id, userToKick,
                                 Models.TrustFactorLog.TrustFactorAction.kick, Manager.MyId);
        }
Beispiel #20
0
        public ControlResult DoCheck(Message message)
        {
            if (ChatTools.IsUserAdmin(message.Chat.Id, message.From.Id))
            {
                return(new ControlResult()
                {
                    CheckName = "Anti Flood",
                    Result = IControl.ControlResultType.skipped
                });
            }

            if (message.Date < DateTime.UtcNow.AddMinutes(-1))
            {
                return new ControlResult()
                       {
                           CheckName = "Anti Flood",
                           Result    = IControl.ControlResultType.skipped
                       }
            }
            ;

            Models.Group.ConfigurationParameter configValue = CacheData.GroupConfigs[message.Chat.Id]
                                                              .Where(x => x.ConfigurationParameterId == "FloodControl")
                                                              .SingleOrDefault();
            if (configValue != null)
            {
                if (configValue.Value == "false")
                {
                    return new ControlResult()
                           {
                               CheckName = "Anti Flood",
                               Result    = IControl.ControlResultType.skipped
                           }
                }
            }
            ;

            Dictionary <int, Flood> floodCounter = FloodCounter.GetValueOrDefault(message.Chat.Id);

            if (floodCounter == null)
            {
                FloodCounter.TryAdd(message.Chat.Id, new Dictionary <int, Flood>());
            }

            if (!FloodCounter[message.Chat.Id].TryGetValue(message.From.Id, out Flood currentValue))
            {
                FloodCounter[message.Chat.Id].Add(message.From.Id, new Flood()
                {
                    UserId      = message.From.Id,
                    Messages    = 1,
                    LastMessage = DateTime.UtcNow
                });
            }
            else
            {
                if (currentValue.LastMessage < DateTime.UtcNow.AddSeconds(-3))
                {
                    FloodCounter[message.Chat.Id][message.From.Id] = new Flood()
                    {
                        UserId      = message.From.Id,
                        Messages    = 1,
                        LastMessage = DateTime.UtcNow
                    };

                    return(new ControlResult()
                    {
                        CheckName = "Anti Flood",
                        Result = IControl.ControlResultType.negative
                    });
                }

                currentValue.Messages   += 1;
                currentValue.LastMessage = DateTime.UtcNow;
                FloodCounter[message.Chat.Id][message.From.Id] = currentValue;
            }

            if (FloodCounter[message.Chat.Id][message.From.Id].Messages >= 5)
            {
                int minutes = 5;

                SysConfig floodBanMinutes = CacheData.SysConfigs.Where(x => x.SysConfigId == "FloodBanInMinutes")
                                            .SingleOrDefault();
                if (floodBanMinutes != null)
                {
                    int.TryParse(floodBanMinutes.Value, out minutes);
                }

                if (limitedUsers.ContainsKey(message.From.Id))
                {
                    if (limitedUsers[message.From.Id] > DateTime.UtcNow.AddMinutes(-minutes))
                    {
                        goto skipLimitAndPenality;
                    }
                }

                limitedUsers.AddOrUpdate(message.From.Id, DateTime.UtcNow,
                                         (key, value) => value = DateTime.UtcNow);

                Bot.Manager.BotClient.RestrictChatMemberAsync(
                    message.Chat.Id,
                    message.From.Id,
                    new ChatPermissions()
                {
                    CanSendMessages       = false,
                    CanAddWebPagePreviews = false,
                    CanChangeInfo         = false,
                    CanInviteUsers        = false,
                    CanPinMessages        = false,
                    CanSendMediaMessages  = false,
                    CanSendOtherMessages  = false,
                    CanSendPolls          = false
                },
                    DateTime.UtcNow.AddMinutes(minutes)
                    ).Wait();

                string author = message.From.Username == null
                    ? message.From.FirstName + " " + message.From.LastName
                    : "@" + message.From.Username;
                MessageQueueManager.EnqueueLog(new ChatMessage()
                {
                    ParseMode = ParseMode.Markdown,
                    Text      = String.Format(
                        "*[Report]*\n" +
                        "User muted for {0} minutes due to flood.\n" +
                        "\nChat: `{1}`" +
                        "\nAuthor: `{3}`" +
                        "\nUserId: `{2}`" +
                        "\n\n*hash_code:* #UB{4}-{5}",
                        minutes,
                        message.Chat.Title,
                        message.From.Id,
                        author,
                        message.Chat.Id.ToString().Replace("-", ""),
                        Guid.NewGuid())
                });

                UserTools.AddPenalty(message.Chat.Id, message.From.Id,
                                     TrustFactorLog.TrustFactorAction.limit, Bot.Manager.MyId);

                MessageQueueManager.EnqueueMessage(
                    new ChatMessage()
                {
                    Timestamp = DateTime.UtcNow,
                    Chat      = message.Chat,
                    ParseMode = ParseMode.Markdown,
                    Text      = $"User {message.From.Username} has been limited for {minutes} minutes due to flood.\n"
                                + "An admin can immediately remove this limitation by clicking the button below.",
                    ReplyMarkup = new InlineKeyboardMarkup(
                        InlineKeyboardButton.WithCallbackData(
                            CacheData.GetTranslation("en", "button_removeFlood", true),
                            $"/RemoveFlood " + message.From.Id
                            )
                        )
                });

skipLimitAndPenality:
                return(new ControlResult()
                {
                    CheckName = "Anti Flood",
                    Result = IControl.ControlResultType.positive
                });
            }
            return(new ControlResult()
            {
                CheckName = "Anti Flood",
                Result = IControl.ControlResultType.negative
            });
        }
    }
Beispiel #21
0
        public DefaultClass()
        {
            INVOICE_TOOLS.InitDetails();
            //OtherSettingTools.InitEstimateDetails();
            //OtherSettingTools.InitChallanDetails();
            //OtherSettingTools.InitCreditNoteDetails();
            //OtherSettingTools.InitPurchaseOrderDetails();
            //OtherSettingTools.InitAdvanceReceiptVoucherDetails();
            //OtherSettingTools.InitRefundVoucherDetails();
            //OtherSettingTools.InitReceiptVoucherDetails();
            //OtherSettingTools.InitAdvancePaymentVoucherDetails();
            //OtherSettingTools.InitPaymentVoucherDetails();
            //OtherSettingTools.InitDebitNoteDetails();
            OtherSettingTools.CallAllFunctionOfOtherSettingTools();

            UnitTools.GetUnit();
            ComodityCodeTools.GetHSNCode();
            ComodityCodeTools.GetSACCode();

            BillingTermTools.GetBillingTerms();
            EmployeeDesignationTools.GetDesignation();
            BAnkTools.GetBank();
            UserTools.GetUserName();
            StateTool.GetState();

            FinancialYearTools.GetYear();
            SubGroupTools.GetIncomeExpenseGroup();
            SubGroupTools.GetUnder();

            CashOrBankAccountTools.GetCashAccount();
            CashOrBankAccountTools.GetBankAcHead();

            Supplier.GetSuppliers();
            BillClas.GetAccountHeadForExpense();
            ExpenseTools.GetExpenseAccountHead();
            AccountHeadTools.SetCategory();

            ItemTools.GetItem();
            ItemTools.GetItemCategory();
            ItemTools.GetSubCategory();
            ItemTools.GetItemCompany();

            AccountHeadTools.GetSalesLedgerID();
            AccountHeadTools.GetSalesReturnLedgerID();
            AccountHeadTools.GetPurchaseLedgerID();
            AccountHeadTools.GetPurchaseReturnLedgerID();
            Customertools.GetCustomers();
            ///ledgers
            LedgerTools.GetAllLedgers();
            LedgerTools.GetAccountLedgers();
            LedgerTools.GetPartyLedgers();
            LedgerTools.GetBankLedgers();
            LedgerTools.GetCashLedgers();
            LedgerTools.GetCash_BankLedgers();
            LedgerTools.GetCustomerLedgers();
            LedgerTools.GetSupplierLedgers();
            LedgerTools.GetOtherLedgers();
            LedgerTools.GetReceivableAccountHeadID();

            SubAccountTools.GetSubAccountForExpense();

            CashCustomersTools.GetCashCustomers();
        }
Beispiel #22
0
 private void Awake()
 {
     userTools = GetComponent <UserTools>();
 }