Esempio n. 1
0
        protected override void PageLoad()
        {
            base.PageLoad();
            int queryString = RequestHelper.GetQueryString <int>("ID");

            this.userMessage = UserMessageBLL.ReadUserMessage(queryString, base.UserID);
        }
Esempio n. 2
0
        /// <summary>
        /// 添加留言
        /// </summary>
        protected void AddUserMessage()
        {
            string result       = string.Empty;
            int    messageClass = RequestHelper.GetQueryString <int>("MessageClass");
            string title        = StringHelper.AddSafe(RequestHelper.GetQueryString <string>("Title"));
            string content      = StringHelper.AddSafe(RequestHelper.GetQueryString <string>("Content"));

            if (content == string.Empty || content == string.Empty)
            {
                result = "请填写标题和内容";
            }
            else
            {
                UserMessageInfo userMessage = new UserMessageInfo();
                userMessage.MessageClass      = messageClass;
                userMessage.Title             = title;
                userMessage.Content           = content;
                userMessage.UserIP            = ClientHelper.IP;
                userMessage.PostDate          = RequestHelper.DateNow;
                userMessage.IsHandler         = (int)BoolType.False;
                userMessage.AdminReplyContent = string.Empty;
                userMessage.AdminReplyDate    = RequestHelper.DateNow;
                userMessage.UserId            = base.UserId;
                userMessage.UserName          = base.UserName;
                UserMessageBLL.Add(userMessage);
            }
            ResponseHelper.Write(result);
            ResponseHelper.End();
        }
Esempio n. 3
0
        //获取用户短消息
        public List <UserMessageInfo> getUserMessage(int pageIndex, int pageSize, int userId, out int RecordCount)
        {
            List <UserMessageInfo> list = new List <UserMessageInfo>();

            SqlParameter[] parm = new SqlParameter[] {
                new SqlParameter("@reUserId", userId),
                new SqlParameter("@pageIndex", pageIndex),
                new SqlParameter("@pageSize", pageSize),
                new SqlParameter("@RecordCount", SqlDbType.Int, 4)
            };

            parm[3].Direction = ParameterDirection.Output;

            using (SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, PEOC_GETUSERMESSAGE, parm))
            {
                while (dr.Read())
                {
                    Model.UserMessageInfo item = new UserMessageInfo();
                    item.Contents     = dr["Contents"].ToString();
                    item.MessageId    = Convert.ToInt32(dr["MessageId"]);
                    item.MessageTitle = dr["MessageTitle"].ToString();
                    item.SendDate     = Convert.ToDateTime(dr["SendDate"]).ToShortDateString();
                    item.SendUserId   = Convert.ToInt32(dr["sendUserId"]);

                    List <UsersInfo> templist = getSendMessageUser(item.SendUserId);
                    item.SendUserName = templist[0].UserName;

                    list.Add(item);
                }
            }
            RecordCount = Convert.ToInt32(parm[3].Value);

            return(list);
        }
Esempio n. 4
0
        public override async Task HandleAsync(UserMessageInfo userMessageInfo, string argument)
        {
            string[]  args      = argument.Split(' ').ToArray();
            const int argsCount = 1;

            if (args.Length <= argsCount)
            {
                await _messenger.SendMessageAsync(userMessageInfo, Resources.CommandWrongArgsCount, true);

                return;
            }

            if (!int.TryParse(args[0], out var money))
            {
                await _messenger.SendMessageAsync(userMessageInfo, Resources.CommandFirstArgMustBeANumber, true);

                return;
            }

            var caption = string.Join(" ", args.Skip(argsCount));

            const int commentMinLength = 2;
            const int commentMaxLength = 50;

            if (caption.Length < commentMinLength || caption.Length > commentMaxLength)
            {
                var msgText = string.Format(Resources.CommentLengthWrong, commentMinLength, commentMaxLength);
                await _messenger.SendMessageAsync(userMessageInfo, msgText, true);

                return;
            }

            await HandleAsync(userMessageInfo, money, caption);
        }
Esempio n. 5
0
        public UserMessageInfo ReadUserMessage(int id, int userID)
        {
            SqlParameter[] pt = new SqlParameter[] { new SqlParameter("@id", SqlDbType.NVarChar), new SqlParameter("@userID", SqlDbType.Int) };
            pt[0].Value = id;
            pt[1].Value = userID;
            UserMessageInfo info = new UserMessageInfo();

            using (SqlDataReader reader = ShopMssqlHelper.ExecuteReader(ShopMssqlHelper.TablePrefix + "ReadUserMessage", pt))
            {
                if (reader.Read())
                {
                    info.ID                = reader.GetInt32(0);
                    info.MessageClass      = reader.GetInt32(1);
                    info.Title             = reader[2].ToString();
                    info.Content           = reader[3].ToString();
                    info.UserIP            = reader[4].ToString();
                    info.PostDate          = reader.GetDateTime(5);
                    info.IsHandler         = reader.GetInt32(6);
                    info.AdminReplyContent = reader[7].ToString();
                    info.AdminReplyDate    = reader.GetDateTime(8);
                    info.UserID            = reader.GetInt32(9);
                    info.UserName          = reader[10].ToString();
                    info.Mobile            = reader[11].ToString();
                    info.IsChecked         = reader.GetInt32(12);
                }
            }
            return(info);
        }
Esempio n. 6
0
        private IMenu GetMoneyTransferSelectFromMenu(UserMessageInfo userMessageInfo, MoneyTransferQueryData data)
        {
            Builder builder = new Builder();

            for (int i = 0; i < userMessageInfo.Customers.Length; i++)
            {
                if (i % 3 == 0)
                {
                    builder.AddLine();
                }

                var customer = userMessageInfo.Customers[i];

                string query = _queryDataSerializer.EncodeBase64(new MoneyTransferQueryData
                {
                    Version        = MoneyTransferQueryData.ServerVersion,
                    Amount         = data.Amount,
                    Caption        = data.Caption,
                    ChatToken      = data.ChatToken,
                    CustomerFromId = null,
                    CustomerToId   = null,
                    TargetId       = customer.Id,
                    MenuType       = MenuType.MoneyTransferSelectFrom
                }, MenuType.MoneyTransferSelectFrom);

                builder.AddButton(customer.Caption + (customer.Id == data.TargetId ? " ☑" : ""), query);
            }

            builder.AddLine();

            if (data.TargetId.HasValue)
            {
                builder.AddButton("Применить", _queryDataSerializer.EncodeBase64(new MoneyTransferQueryData
                {
                    Version        = MoneyTransferQueryData.ServerVersion,
                    Amount         = data.Amount,
                    Caption        = data.Caption,
                    ChatToken      = data.ChatToken,
                    CustomerFromId = data.TargetId,
                    CustomerToId   = null,
                    TargetId       = null,
                    MenuType       = MenuType.MoneyTransferSelectTo
                }, MenuType.MoneyTransferSelectFrom));
            }

            builder.AddButton("Отменить", _queryDataSerializer.EncodeBase64(new MoneyTransferQueryData
            {
                Version   = MoneyTransferQueryData.ServerVersion,
                ChatToken = data.ChatToken,
                MenuType  = MenuType.MoneyTransferCancel
            }, MenuType.MoneyTransferSelectFrom));

            var markUp = builder.Build();

            return(new TelegramMenu
            {
                MenuType = MenuType.MoneyTransferSelectFrom,
                Markup = markUp,
            });
        }
Esempio n. 7
0
 public int AddUserMessage(UserMessageInfo userMessage)
 {
     SqlParameter[] pt = new SqlParameter[] {
         new SqlParameter("@messageClass", SqlDbType.Int),
         new SqlParameter("@title", SqlDbType.NVarChar),
         new SqlParameter("@content", SqlDbType.NText),
         new SqlParameter("@userIP", SqlDbType.NVarChar),
         new SqlParameter("@postDate", SqlDbType.DateTime),
         new SqlParameter("@isHandler", SqlDbType.Int),
         new SqlParameter("@adminReplyContent", SqlDbType.NText),
         new SqlParameter("@adminReplyDate", SqlDbType.DateTime),
         new SqlParameter("@userID", SqlDbType.Int),
         new SqlParameter("@userName", SqlDbType.NVarChar),
         new SqlParameter("@mobile", SqlDbType.NVarChar),
         new SqlParameter("@parentID", SqlDbType.Int)
     };
     pt[0].Value  = userMessage.MessageClass;
     pt[1].Value  = userMessage.Title;
     pt[2].Value  = userMessage.Content;
     pt[3].Value  = userMessage.UserIP;
     pt[4].Value  = userMessage.PostDate;
     pt[5].Value  = userMessage.IsHandler;
     pt[6].Value  = userMessage.AdminReplyContent;
     pt[7].Value  = userMessage.AdminReplyDate;
     pt[8].Value  = userMessage.UserID;
     pt[9].Value  = userMessage.UserName;
     pt[10].Value = userMessage.Mobile;
     pt[11].Value = userMessage.ParentID;
     return(Convert.ToInt32(ShopMssqlHelper.ExecuteScalar(ShopMssqlHelper.TablePrefix + "AddUserMessage", pt)));
 }
Esempio n. 8
0
        private async void OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            try
            {
                IQueryData queryData = _queryDataSerializer.DecodeBase64(e.CallbackQuery.Data);
                Group      group     = await _groupService.GetByChatTokenAsync(queryData.ChatToken);

                Customer[] customers = await _customerService.GetListAsync(group.Id);

                // Собираем всю информацию о пользователе и сообщении.
                UserMessageInfo userMessageInfo = new UserMessageInfo
                {
                    Group       = group,
                    Customers   = customers,
                    UserName    = e.CallbackQuery.From.Username,
                    UserToken   = e.CallbackQuery.From.Id.ToString(),
                    MessageType = Models.MessageType.Query,
                    Message     = new MessageInfo
                    {
                        Token     = e.CallbackQuery.Message.MessageId.ToString(),
                        Text      = e.CallbackQuery.Message.Text,
                        QueryData = queryData
                    }
                };

                OnMessage?.Invoke(this, userMessageInfo);
            }
            catch (Exception ex)
            {
                _logger.Error($"{GetType().Name}: Произошла ошибка во время обработки query запроса ", ex);
            }
        }
Esempio n. 9
0
        private async Task HandleTextMessageAsync(UserMessageInfo userMessageInfo)
        {
            // TODO Вынести проверку на верхний уровень.
            if (!_messageHandlersMap.ContainsKey(MessageType.Text))
            {
                _logger.Warning("Не зарегистрировано ни одного обработчика текстовых команд.");
                return;
            }

            _logger.Trace($"@{userMessageInfo.UserName} прислал сообщение. Длина сообщения: {userMessageInfo.Message.Text.Length}");

            // Читаем только команды.
            string text = userMessageInfo.Message.Text;

            if (!text.StartsWith("/"))
            {
                await _messenger.SendMessageAsync(userMessageInfo, Resources.UnknownMessageFormat, true);

                return;
            }

            var command = text.GetCommand(out _);
            var handler = _messageHandlersMap[MessageType.Text]
                          .OfType <TextCommandMessageHandler>()
                          .FirstOrDefault(x => x.Command.Equals(command, StringComparison.OrdinalIgnoreCase));

            if (handler == null)
            {
                await _messenger.SendMessageAsync(userMessageInfo, Resources.UnknownCommandType, true);

                return;
            }

            await handler.HandleAsync(userMessageInfo);
        }
Esempio n. 10
0
        public async Task HandleAsync(UserMessageInfo userMessageInfo, int amount, string caption)
        {
            BillingPeriod lastBillingPeriod = await _billingPeriodService.GetLastByGroupIdAsync(userMessageInfo.Group.Id);

            if (lastBillingPeriod == null)
            {
                await _messenger.SendMessageAsync(userMessageInfo, "В группе ещё не начат ни один расчётный период", true);

                return;
            }

            var newReceipt = await _receiptService.AddAsync(new Receipt
            {
                BillingPeriodId = lastBillingPeriod.Id,
                TotalAmount     = amount,
                Status          = ReceiptStatus.NewManual,
                Comment         = caption
            });

            IMenu menu = _menuProvider.GetMenu(userMessageInfo, new AddReceiptQueryData
            {
                MenuType            = MenuType.NewReceiptSelectCustomer,
                ReceiptId           = newReceipt.Id,
                SelectedCustomerId  = null,
                SelectedConsumerIds = new long[0],
                TargetId            = null,
                Version             = AddReceiptQueryData.ServerVersion,
            });
            await _messenger.SendMessageAsync(userMessageInfo, Resources.SelectCustomer, true, menu);
        }
Esempio n. 11
0
        private IMenu GetNewReceiptSelectCustomerMenu(UserMessageInfo userMessageInfo, AddReceiptQueryData data)
        {
            Builder builder = new Builder();

            for (int i = 0; i < userMessageInfo.Customers.Length; i++)
            {
                if (i % 3 == 0)
                {
                    builder.AddLine();
                }

                var    customer = userMessageInfo.Customers[i];
                string query    = _queryDataSerializer.EncodeBase64(new AddReceiptQueryData
                {
                    Version             = AddReceiptQueryData.ServerVersion,
                    ChatToken           = userMessageInfo.Group.ChatToken,
                    ReceiptId           = data.ReceiptId,
                    MenuType            = MenuType.NewReceiptSelectCustomer,
                    SelectedConsumerIds = data.SelectedConsumerIds,
                    SelectedCustomerId  = data.TargetId,
                    TargetId            = customer.Id,
                }, MenuType.NewReceiptSelectCustomer);

                builder.AddButton(customer.Caption + (customer.Id == data.TargetId ? " ☑" : ""), query);
            }

            builder.AddLine();

            if (data.TargetId.HasValue)
            {
                builder.AddButton("Применить", _queryDataSerializer.EncodeBase64(new AddReceiptQueryData
                {
                    Version             = AddReceiptQueryData.ServerVersion,
                    ChatToken           = userMessageInfo.Group.ChatToken,
                    ReceiptId           = data.ReceiptId,
                    MenuType            = MenuType.NewReceiptSelectConsumers,
                    SelectedConsumerIds = data.SelectedConsumerIds,
                    SelectedCustomerId  = data.SelectedCustomerId.Value,
                    TargetId            = null,
                }, MenuType.NewReceiptSelectCustomer));
            }

            builder.AddButton("Отменить", _queryDataSerializer.EncodeBase64(new AddReceiptQueryData
            {
                Version   = AddReceiptQueryData.ServerVersion,
                ChatToken = userMessageInfo.Group.ChatToken,
                ReceiptId = data.ReceiptId,
                MenuType  = MenuType.NewReceiptCancel
            }, MenuType.NewReceiptSelectCustomer));

            var markUp = builder.Build();

            return(new TelegramMenu
            {
                MenuType = MenuType.NewReceiptSelectCustomer,
                Markup = markUp,
            });
        }
Esempio n. 12
0
        /// <summary>
        /// 在线咨询
        /// </summary>
        protected void AskOnline()
        {
            string errorMsg    = string.Empty;
            int    messageType = 6;

            string name = StringHelper.SearchSafe(RequestHelper.GetForm <string>("Name"));

            string email    = StringHelper.SearchSafe(RequestHelper.GetForm <string>("Email"));
            string Tel      = StringHelper.SearchSafe(RequestHelper.GetForm <string>("Tel"));
            string Content  = StringHelper.SearchSafe(RequestHelper.GetForm <string>("Content"));
            string safeCode = StringHelper.SearchSafe(RequestHelper.GetForm <string>("SafeCode"));

            //检查验证码
            if (errorMsg == string.Empty)
            {
                if (safeCode.ToLower() != Cookies.Common.CheckCode.ToLower())
                {
                    errorMsg = "验证码错误";
                    Response.Write("error|" + errorMsg);
                    Response.End();
                }
            }
            if (errorMsg == string.Empty)
            {
                try
                {
                    UserMessageInfo userMessage = new UserMessageInfo();
                    userMessage.MessageClass      = messageType;
                    userMessage.UserIP            = ClientHelper.IP;
                    userMessage.PostDate          = RequestHelper.DateNow;
                    userMessage.IsHandler         = (int)BoolType.False;
                    userMessage.AdminReplyContent = string.Empty;;
                    userMessage.AdminReplyDate    = RequestHelper.DateNow;
                    userMessage.UserId            = 0;
                    userMessage.Title             = string.Empty;
                    userMessage.UserName          = name;
                    userMessage.Tel   = Tel;
                    userMessage.Email = email;

                    userMessage.Content = Content;

                    UserMessageBLL.Add(userMessage);
                    Response.Clear();
                    Response.Write("ok|提交成功");
                }
                catch (Exception ex)
                {
                    //Response.Write("error|" + StringHelper.Substring(ex.ToString(), 10));
                    Response.Clear();
                    Response.Write("error|" + "出错了,请稍后重试");
                }
                finally
                {
                    Response.End();
                }
            }
        }
Esempio n. 13
0
        /// <summary>
        /// 页面加载
        /// </summary>
        protected override void PageLoad()
        {
            base.PageLoad();
            int id = RequestHelper.GetQueryString <int>("ID");

            userMessage   = UserMessageBLL.Read(id, base.UserId);
            user          = UserBLL.ReadUserMore(base.UserId);
            userGradeName = UserGradeBLL.Read(base.GradeID).Name;
        }
Esempio n. 14
0
        public int Add(UserMessageInfo entity)
        {
            using (var conn = new SqlConnection(connectString))
            {
                string sql = @"INSERT INTO UsrMessage( MessageClass,Title,Content,UserIP,PostDate,IsHandler,AdminReplyContent,AdminReplyDate,UserId,UserName,[Tel],[Email],[Gender],[Birthday],[Birthplace],[LivePlace],[Address],[Servedays],[Servemode],[AddCol1],[AddCol2]) VALUES(@MessageClass,@Title,@Content,@UserIP,@PostDate,@IsHandler,@AdminReplyContent,@AdminReplyDate,@UserId,@UserName,@Tel,@Email,@Gender,@Birthday,@Birthplace,@LivePlace,@Address,@Servedays,@Servemode,@AddCol1,@AddCol2);
                            select SCOPE_IDENTITY()";

                return(conn.Query <int>(sql, entity).Single());
            }
        }
Esempio n. 15
0
        public void Update(UserMessageInfo entity)
        {
            using (var conn = new SqlConnection(connectString))
            {
                string sql = @"UPDATE UsrMessage SET MessageClass = @MessageClass, Title = @Title, Content = @Content, UserIP = @UserIP, PostDate = @PostDate, IsHandler = @IsHandler, AdminReplyContent = @AdminReplyContent, AdminReplyDate = @AdminReplyDate, UserId = @UserId, UserName = @UserName
                            where Id=@Id";

                conn.Execute(sql, entity);
            }
        }
Esempio n. 16
0
        public override async Task HandleAsync(UserMessageInfo userMessageInfo, string argument)
        {
            if (!string.IsNullOrEmpty(argument))
            {
                await _messenger.SendMessageAsync(userMessageInfo, Resources.CommandWrongArgsCount, true);

                return;
            }

            await HandleAsync(userMessageInfo);
        }
        public async Task HandleAsync(UserMessageInfo userMessageInfo)
        {
            if (userMessageInfo.Message.QueryData is TQueryData)
            {
                throw new ArgumentException($"параметр должен быть типа {typeof(TQueryData)}, а не {userMessageInfo.Message.QueryData.GetType()}",
                                            nameof(userMessageInfo.Message.QueryData));
            }

            // ReSharper disable once PossibleInvalidCastException
            await HandleAsync(userMessageInfo, (TQueryData)userMessageInfo.Message.QueryData);
        }
Esempio n. 18
0
        public async Task HandleAsync(UserMessageInfo userMessageInfo)
        {
            ReceiptMainInfo data = userMessageInfo.Message.ReceiptInfo;

            if (data == null)
            {
                await Messenger.SendMessageAsync(userMessageInfo, Resources.ParsePhotoError, true);

                Logger.Trace(Resources.ParsePhotoError);
                return;
            }

            BillingPeriod lastBillingPeriod = await _billingPeriodService.GetLastByGroupIdAsync(userMessageInfo.Group.Id);

            if (lastBillingPeriod == null)
            {
                await Messenger.SendMessageAsync(userMessageInfo, Resources.BillingPeriodNotCreated, true);

                return;
            }

            var receipt = new Receipt
            {
                BillingPeriodId = lastBillingPeriod.Id,
                TotalAmount     = data.TotalAmount,
                FiscalSign      = data.FiscalSign,
                FiscalDocument  = data.FiscalDocument,
                FiscalNumber    = data.FiscalNumber,
                PurchaseTime    = data.PurchaseTime,
                Status          = ReceiptStatus.New,
                Comment         = "Чек",
            };

            if (await ReceiptService.IsReceiptExists(receipt))
            {
                await Messenger.SendMessageAsync(userMessageInfo, Resources.ReceiptAlredyAdded, true);

                return;
            }

            var newReceipt = await ReceiptService.AddAsync(receipt);

            IMenu menu = MenuProvider.GetMenu(userMessageInfo, new AddReceiptQueryData
            {
                MenuType            = MenuType.NewReceiptSelectCustomer,
                ReceiptId           = newReceipt.Id,
                SelectedCustomerId  = null,
                SelectedConsumerIds = new long[0],
                TargetId            = null,
                Version             = AddReceiptQueryData.ServerVersion,
            });
            await Messenger.SendMessageAsync(userMessageInfo, Resources.SelectCustomer, true, menu);
        }
Esempio n. 19
0
        private async Task HandlePhotoMessageAsync(UserMessageInfo userMessageInfo)
        {
            // TODO Вынести проверку на верхний уровень.
            if (!_messageHandlersMap.ContainsKey(MessageType.QrCode))
            {
                _logger.Warning("Не зарегистрирован обработчик фото с QR кодом.");
                return;
            }

            var handler = _messageHandlersMap[MessageType.QrCode].Single();
            await handler.HandleAsync(userMessageInfo);
        }
Esempio n. 20
0
        public async Task SendMessageAsync(UserMessageInfo userMessageInfo, string text, bool isReply = false, IMenu menu = null)
        {
            var replyToMessageId = isReply ? int.Parse(userMessageInfo.Message.Token) : 0;

            if (menu != null && menu.GetType() != typeof(TelegramMenu))
            {
                throw new ArgumentException($"{GetType().Name} может работать только с {nameof(IMenu)} типа {nameof(TelegramMenu)}");
            }

            var telegramMenu = menu as TelegramMenu;
            await _client.SendTextMessageAsync(userMessageInfo.Group.ChatToken, text, replyToMessageId : replyToMessageId, replyMarkup : telegramMenu?.Markup);
        }
Esempio n. 21
0
        /// <summary>
        /// 添加留言
        /// </summary>
        protected void AddUserMessage()
        {
            string result             = string.Empty;
            int    messageClass       = RequestHelper.GetQueryString <int>("MessageClass");
            string title              = StringHelper.AddSafe(RequestHelper.GetQueryString <string>("Title"));
            string content            = StringHelper.AddSafe(RequestHelper.GetQueryString <string>("Content"));
            string userMessageCookies = CookiesHelper.ReadCookieValue("UserMessageCookies" + base.UserId.ToString());

            if (content == string.Empty || content == string.Empty)
            {
                result = "请填写标题和内容";
            }
            else
            {
                if (ShopConfig.ReadConfigInfo().CommentRestrictTime > 0 && !string.IsNullOrEmpty(userMessageCookies))
                {
                    string[] strArray = userMessageCookies.Split(new char[] { '|' });
                    string   _userId  = strArray[0];
                    string   _title   = strArray[1];
                    string   _content = strArray[2];
                    //如果该用户在限制时间内提交过相同title或content的内容,则不能再频繁提交
                    if (_userId == base.UserId.ToString() && (title == Server.UrlDecode(_title) || content == (Server.UrlDecode(_content))))
                    {
                        result = "请不要频繁提交相似留言";
                    }
                }
            }
            if (string.IsNullOrEmpty(result))
            {
                UserMessageInfo userMessage = new UserMessageInfo();
                userMessage.MessageClass      = messageClass;
                userMessage.Title             = title;
                userMessage.Content           = content;
                userMessage.UserIP            = ClientHelper.IP;
                userMessage.PostDate          = RequestHelper.DateNow;
                userMessage.IsHandler         = (int)BoolType.False;
                userMessage.AdminReplyContent = string.Empty;
                userMessage.AdminReplyDate    = RequestHelper.DateNow;
                userMessage.UserId            = base.UserId;
                userMessage.UserName          = base.UserName;
                UserMessageBLL.Add(userMessage);
                if (ShopConfig.ReadConfigInfo().CommentRestrictTime > 0)
                {
                    string cookieValue = base.UserId + "|" + Server.UrlEncode(title) + "|" + Server.UrlEncode(content);
                    CookiesHelper.AddCookie("UserMessageCookies" + base.UserId.ToString(), cookieValue, ShopConfig.ReadConfigInfo().CommentRestrictTime, TimeType.Second);
                }
            }

            ResponseHelper.Write(result);
            ResponseHelper.End();
        }
Esempio n. 22
0
 protected void Page_Load(object sender, EventArgs e)
 {
     styleid = RequestHelper.GetQueryString <int>("StryleID");
     if (!Page.IsPostBack)
     {
         int userMessageID = RequestHelper.GetQueryString <int>("ID");
         if (userMessageID != int.MinValue)
         {
             CheckAdminPower("ReadUserMessage", PowerCheckType.Single);
             userMessage            = UserMessageBLL.Read(userMessageID);
             AdminReplyContent.Text = userMessage.AdminReplyContent;
         }
     }
 }
Esempio n. 23
0
        private static void Prefix(ref Chat __instance, ref GameObject go, ref long senderID, ref Vector3 pos, ref Talker.Type type, ref string user, ref string text)
        {
            // Add the last received message of a specific user so that we can format the floating text later.
            var userInfo = new UserMessageInfo()
            {
                GameObject = go,
                Position   = pos,
                SenderID   = senderID,
                Type       = type,
                User       = user,
                Text       = text
            };

            VChatPlugin.ReceivedMessageInfo.AddOrUpdate(senderID, userInfo, (key, oldValue) => userInfo);
        }
Esempio n. 24
0
        public async Task HandleAsync(UserMessageInfo userMessageInfo)
        {
            var currentBilling = await _billingPeriodService.GetLastByGroupIdAsync(userMessageInfo.Group.Id);

            var debts = await _mainLogicService.CalculatePeriodCurrentDebts(currentBilling.Id);

            string[] debtsMessages = debts.Select(x =>
            {
                string from = userMessageInfo.Customers.First(c => c.Id == x.FromId).Caption;
                string to   = userMessageInfo.Customers.First(c => c.Id == x.ToId).Caption;
                return($"* {from} должен {to}: {(int) x.Amount}р.");
            }).ToArray();

            await _messenger.SendMessageAsync(userMessageInfo, $"Промежуточный итог долгов на период с {currentBilling.PeriodBegin}:\n{string.Join("\n", debtsMessages)}", true);
        }
Esempio n. 25
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!this.Page.IsPostBack)
     {
         int queryString = RequestHelper.GetQueryString <int>("ID");
         if (queryString != -2147483648)
         {
             base.CheckAdminPower("ReadUserMessage", PowerCheckType.Single);
             this.userMessage            = UserMessageBLL.ReadUserMessage(queryString, 0);
             this.IsHandler.Text         = this.userMessage.IsHandler.ToString();
             this.AdminReplyContent.Text = this.userMessage.AdminReplyContent;
             this.IsChecked.Text         = this.userMessage.IsChecked.ToString();
         }
     }
 }
Esempio n. 26
0
 public async Task HandleAsync(UserMessageInfo userMessageInfo, int amount, string caption)
 {
     IMenu menu = _menuProvider.GetMenu(userMessageInfo, new MoneyTransferQueryData
     {
         Version        = MoneyTransferQueryData.ServerVersion,
         Amount         = amount,
         Caption        = caption,
         ChatToken      = userMessageInfo.Group.ChatToken,
         CustomerFromId = null,
         CustomerToId   = null,
         MenuType       = MenuType.MoneyTransferSelectFrom,
         TargetId       = null
     });
     await _messenger.SendMessageAsync(userMessageInfo, Resources.MoneyTransferSelectFrom, true, menu);
 }
Esempio n. 27
0
 public void UpdateUserMessage(UserMessageInfo userMessage)
 {
     SqlParameter[] pt = new SqlParameter[] {
         new SqlParameter("@id", SqlDbType.Int),
         new SqlParameter("@isHandler", SqlDbType.Int),
         new SqlParameter("@adminReplyContent", SqlDbType.NText),
         new SqlParameter("@adminReplyDate", SqlDbType.DateTime),
         new SqlParameter("@isChecked", SqlDbType.Int)
     };
     pt[0].Value = userMessage.ID;
     pt[1].Value = userMessage.IsHandler;
     pt[2].Value = userMessage.AdminReplyContent;
     pt[3].Value = userMessage.AdminReplyDate;
     pt[4].Value = userMessage.IsChecked;
     ShopMssqlHelper.ExecuteNonQuery(ShopMssqlHelper.TablePrefix + "UpdateUserMessage", pt);
 }
Esempio n. 28
0
        public IMenu GetMenu(UserMessageInfo userMessageInfo, IQueryData data)
        {
            // Todo Проверка №2. Надо перенести в одно место.
            switch (data.MenuType)
            {
            case MenuType.NewReceiptSelectCustomer: return(GetNewReceiptSelectCustomerMenu(userMessageInfo, (AddReceiptQueryData)data));

            case MenuType.NewReceiptSelectConsumers: return(GetNewReceiptSelectConsumersMenu(userMessageInfo, (AddReceiptQueryData)data));

            case MenuType.MoneyTransferSelectFrom: return(GetMoneyTransferSelectFromMenu(userMessageInfo, (MoneyTransferQueryData)data));

            case MenuType.MoneyTransferSelectTo: return(GetMoneyTransferSelectToMenu(userMessageInfo, (MoneyTransferQueryData)data));
            }

            return(null);
        }
Esempio n. 29
0
        public async Task HandleAsync(UserMessageInfo userMessageInfo)
        {
            if (!userMessageInfo.IsAdmin())
            {
                await _messenger.SendMessageAsync(userMessageInfo, "Только создатель группы может создать новый расчётный период", true);

                return;
            }

            ClosingPeriodResult newPeriodResult = await _mainLogicService.CloseCurrentAndOpenNewPeriod(userMessageInfo.Group.Id);

            var namesMap = userMessageInfo.Customers.ToDictionary(x => x.Id, x => x.Caption);

            string debts = string.Join("\n", newPeriodResult.Debts
                                       .Select(x => $"* `{namesMap[x.CustomerFromId]}` должен отдать `{namesMap[x.CustomerToId]}` {x.Amount}р."));
            await _messenger.SendMessageAsync(userMessageInfo, $"Был начат новый период, долги за предыдущий составляют:\n{debts}", true);
        }
Esempio n. 30
0
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            UserMessageInfo userMessage = new UserMessageInfo();

            userMessage.Id = RequestHelper.GetQueryString <int>("ID");
            if (userMessage.Id > 0)
            {
                userMessage                   = UserMessageBLL.Read(userMessage.Id);
                userMessage.IsHandler         = RequestHelper.GetForm <int>("IsHandler");
                userMessage.AdminReplyContent = AdminReplyContent.Text;
                userMessage.AdminReplyDate    = RequestHelper.DateNow;

                CheckAdminPower("UpdateUserMessage", PowerCheckType.Single);
                UserMessageBLL.Update(userMessage);
                AdminLogBLL.Add(ShopLanguage.ReadLanguage("UpdateRecord"), ShopLanguage.ReadLanguage("UserMessage"), userMessage.Id);
            }
            ScriptHelper.Alert(ShopLanguage.ReadLanguage("OperateOK"), RequestHelper.RawUrl);
        }