コード例 #1
0
        public override Stream BuildReport()
        {
            FeedBackWorksheet = Excel.Workbook.Worksheets.Add("Список Отзывов");

            FeedBackList = FeedbackFunction.GetAllFeedBack();

            // шапка
            FeedBackWorksheet.Cells[1, 1].Value = "Номер отзыва";
            FeedBackWorksheet.Cells[1, 2].Value = "Дата";
            FeedBackWorksheet.Cells[1, 3].Value = "Номер заказа";
            FeedBackWorksheet.Cells[1, 4].Value = "Название товара";
            FeedBackWorksheet.Cells[1, 5].Value = "Оценка";
            FeedBackWorksheet.Cells[1, 6].Value = "Комментарий";

            int row = 2;

            foreach (var feedback in FeedBackList)
            {
                FeedBackWorksheet.Cells[row, 1].Value = feedback.Id;

                FeedBackWorksheet.Cells[row, 2].Value = feedback.DateAdd.ToString();

                FeedBackWorksheet.Cells[row, 3].Value = feedback.Order.Number;

                FeedBackWorksheet.Cells[row, 4].Value = feedback.Product.Name;

                FeedBackWorksheet.Cells[row, 5].Value = feedback.RaitingValue;

                FeedBackWorksheet.Cells[row, 6].Value = feedback.Text;

                row++;
            }

            return(new MemoryStream(Excel.GetAsByteArray()));
        }
コード例 #2
0
        public override BotMessage BuildMsg()
        {
            if (FeedBack == null && FeedBackId > 0)
            {
                FeedBack = FeedbackFunction.GetFeedBack(FeedBackId);
            }

            if (FeedBack != null && FeedBack.Id > 0) // отзыв уже сохранен в базе
            {
                Product          = FeedBack.Product;
                BackBtn          = BuildInlineBtn("Назад", BuildCallData(Bot.OrderBot.CmdBackFeedBackView, Bot.OrderBot.ModuleName, Convert.ToInt32(FeedBack.OrderId), FeedBackId));
                SaveBtn          = BuildInlineBtn("Сохранить", BuildCallData(Bot.OrderBot.CmdSaveFeedBack, Bot.OrderBot.ModuleName, Convert.ToInt32(FeedBack.OrderId), FeedBack.Id), base.DoneEmodji);
                AddCommentBtn    = BuildInlineBtn("Добавить комментарий", BuildCallData(Bot.OrderBot.CmdAddCommentFeedBack, Bot.OrderBot.ModuleName, Convert.ToInt32(FeedBack.OrderId), FeedBack.Id), base.PenEmodji);
                base.TextMessage = base.BlueRhombus + "Название товара:" + Product.Name + NewLine() +
                                   Bold("Оценка:") + FeedBack.RaitingValue + NewLine() +
                                   Bold("Время:") + FeedBack.DateAdd.ToString() + NewLine() +
                                   Bold("Комментарий:") + FeedBack.Text + NewLine();

                base.MessageReplyMarkup = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(
                    new[] {
                    new[]
                    {
                        AddCommentBtn, SaveBtn
                    },
                    new[]
                    {
                        BackBtn
                    },
                });
            }

            if (FeedBack == null && OrderId > 0 && ProductId > 0) //отзыва еще нет
            {
                db          = new MarketBotDbContext();
                Product     = db.Product.Find(ProductId);
                BackBtn     = BuildInlineBtn("Назад", BuildCallData(Bot.OrderBot.CmdBackFeedBackView, Bot.OrderBot.ModuleName, OrderId));
                RaitingBtns = new InlineKeyboardCallbackButton[5];

                RaitingBtns[0] = BuildInlineBtn("1", BuildCallData(Bot.OrderBot.CmdFeedBackRaiting, Bot.OrderBot.ModuleName, OrderId, ProductId, 1), base.StartEmodji);
                RaitingBtns[1] = BuildInlineBtn("2", BuildCallData(Bot.OrderBot.CmdFeedBackRaiting, Bot.OrderBot.ModuleName, OrderId, ProductId, 2), base.StartEmodji);
                RaitingBtns[2] = BuildInlineBtn("3", BuildCallData(Bot.OrderBot.CmdFeedBackRaiting, Bot.OrderBot.ModuleName, OrderId, ProductId, 3), base.StartEmodji);
                RaitingBtns[3] = BuildInlineBtn("4", BuildCallData(Bot.OrderBot.CmdFeedBackRaiting, Bot.OrderBot.ModuleName, OrderId, ProductId, 4), base.StartEmodji);
                RaitingBtns[4] = BuildInlineBtn("5", BuildCallData(Bot.OrderBot.CmdFeedBackRaiting, Bot.OrderBot.ModuleName, OrderId, ProductId, 5), base.StartEmodji);

                base.TextMessage = base.BlueRhombus + "Название товара:" + Product.Name + NewLine() + NewLine()
                                   + Italic("Поставьте оценку от 1 до 5");

                base.MessageReplyMarkup = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(
                    new[] {
                    RaitingBtns,
                    new[]
                    {
                        BackBtn
                    },
                });
                db.Dispose();
            }

            return(this);
        }
コード例 #3
0
        public override BotMessage BuildMsg()
        {
            FeedBackList = FeedbackFunction.GetFeedBackByOrderId(OrderId);

            if (FeedBackList.Count > 0)
            {
                BackBtn = BuildInlineBtn("К заказу", BuildCallData(OrderProccesingBot.CmdBackToOrder, OrderProccesingBot.ModuleName, OrderId), base.Previuos2Emodji);

                int i = 1;

                foreach (var feed in FeedBackList)
                {
                    base.TextMessage += i.ToString() + ") " + feed.Product.Name + NewLine() +
                                        Bold("Оценка:") + feed.RaitingValue.ToString() + NewLine() +
                                        Bold("Комментарий:") + feed.Text + NewLine() +
                                        Bold("Время:") + feed.DateAdd.ToString() + NewLine()
                                        + NewLine();

                    i++;
                }

                base.MessageReplyMarkup = new InlineKeyboardMarkup(new[]
                {
                    new[]
                    {
                        BackBtn
                    }
                });

                return(this);
            }

            return(null);
        }
コード例 #4
0
        /// <summary>
        /// назад к сообещнию с отзывом к заказу
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> BackToFeedBackView()
        {
            //у пользователя было сообщение с добавлением отзыва к товару,
            //он нажал назад и вернулся на сообщение с отображением отзыва ко всему заказу
            //проверяем добавил ли он уже оценку к товару из этого заказа. Если добавил,
            //то удаляем
            if (Argumetns.Count == 2)
            {
                FeedbackFunction.RemoveFeedBack(Argumetns[1]);
            }

            return(await SendFeedBackMyOrder(Argumetns[0]));
        }
コード例 #5
0
        /// <summary>
        /// Добавить отзыв в таблицу после нажатия на кнопку с оценкой
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> InsertFeedBack()
        {
            if (Argumetns.Count == 3)
            {
                int OrderId   = Argumetns[0];
                int ProductId = Argumetns[1];
                int Raiting   = Argumetns[2];

                var feedBack = FeedbackFunction.InsertFeedBack(Raiting, ProductId, OrderId);

                BotMessage = new FeedBackToProductEditorMessage(feedBack);
                await EditMessage(BotMessage.BuildMsg());
            }

            return(OkResult);
        }
コード例 #6
0
        /// <summary>
        /// Сохранить отзыв и отправить его все операторам и владельцу
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> SaveFeedback()
        {
            if (Argumetns.Count > 0)
            {
                int FeedBackId = Argumetns[1];

                var feedbak = FeedbackFunction.EnableFeedback(FeedBackId);

                BotMessage = new FeedBackOfferMessage(Convert.ToInt32(feedbak.OrderId));

                await EditMessage(BotMessage.BuildMsg());

                await SendMessageAllBotEmployeess(
                    new BotMessage
                {
                    TextMessage = "Добавлен новый отзыв к заказу " +
                                  Order.Number.ToString() +
                                  " /order" + Order.Number.ToString()
                });
            }

            return(OkResult);
        }