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())); }
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); }
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); }
/// <summary> /// назад к сообещнию с отзывом к заказу /// </summary> /// <returns></returns> private async Task <IActionResult> BackToFeedBackView() { //у пользователя было сообщение с добавлением отзыва к товару, //он нажал назад и вернулся на сообщение с отображением отзыва ко всему заказу //проверяем добавил ли он уже оценку к товару из этого заказа. Если добавил, //то удаляем if (Argumetns.Count == 2) { FeedbackFunction.RemoveFeedBack(Argumetns[1]); } return(await SendFeedBackMyOrder(Argumetns[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); }
/// <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); }