Пример #1
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,
            });
        }
Пример #2
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,
            });
        }
Пример #3
0
        private IMenu GetNewReceiptSelectConsumersMenu(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];

                // Не отображаем того, кто покупал.
                if (customer.Id == data.SelectedCustomerId)
                {
                    continue;
                }

                string query = _queryDataSerializer.EncodeBase64(new AddReceiptQueryData
                {
                    Version             = AddReceiptQueryData.ServerVersion,
                    ChatToken           = userMessageInfo.Group.ChatToken,
                    ReceiptId           = data.ReceiptId,
                    MenuType            = data.MenuType,
                    SelectedConsumerIds = data.SelectedConsumerIds.ToArray(),
                    SelectedCustomerId  = data.SelectedCustomerId,
                    TargetId            = customer.Id,
                }, MenuType.NewReceiptSelectConsumers);

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

            builder.AddLine();

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

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

            var markUp = builder.Build();

            return(new TelegramMenu
            {
                MenuType = MenuType.NewReceiptSelectCustomer,
                Markup = markUp,
            });
        }