/// <summary> /// Добавить новый статус заказа /// </summary> /// <param name="NewStatusId"></param> /// <returns></returns> private async Task <IActionResult> InsertOrderStatus(int NewStatusId) { var Order = OrderFunction.GetOrder(OrderId); if (Order != null) { var orderStatus = OrderFunction.InsertOrderStarus(OrderId, NewStatusId, FollowerId, false); BotMessage = new OrderStatusConfirmMessage(Order, orderStatus); await EditMessage(BotMessage.BuildMsg()); } return(OkResult); }
private async Task <IActionResult> TakeOrder() { var Order = OrderFunction.GetOrder(OrderId); //Заказ ни кем не обрабатывается if (Order != null && Order.OrdersInWork.Count == 0 || Order != null && Order.OrdersInWork.Count > 0 && Order.OrdersInWork.LastOrDefault().InWork == false) { Order.OrdersInWork.Add(OrderFunction.InsertOrderInWork(OrderId, FollowerId)); BotMessage = new AdminOrderMessage(Order, FollowerId); await EditMessage(BotMessage.BuildMsg()); //уведомляем всех о том что кто-то взял заказ работу BotMessage = new OrderActionNotifiMessage(Order, Order.OrdersInWork.LastOrDefault()); await SendMessageAllBotEmployeess(BotMessage.BuildMsg()); return(OkResult); } //заявка в обработке у тек. пользователя if (Order != null && Order.OrdersInWork.Count > 0 && Order.OrdersInWork.LastOrDefault().InWork == true && Order.OrdersInWork.LastOrDefault().FollowerId == FollowerId) { BotMessage = new AdminOrderMessage(Order, FollowerId); await EditMessage(BotMessage.BuildMsg()); return(OkResult); } //заказ в обработке у кого то другого. Отправляем сообщение с вопрос о переназначении исполнителя if (Order != null && Order.OrdersInWork.Count > 0 && Order.OrdersInWork.LastOrDefault().InWork == true && Order.OrdersInWork.LastOrDefault().FollowerId != FollowerId) { BotMessage = new OverridePerformerConfirmMessage(Order, Order.OrdersInWork.LastOrDefault()); var mess = BotMessage.BuildMsg(); await EditMessage(mess); return(OkResult); } else { return(OkResult); } }
/// <summary> /// Отправить сообщения с кнопками статусов заказа (1. Согласован 2. Отменен 3. Удален и тд) /// </summary> /// <returns></returns> private async Task <IActionResult> SendStatusEditor() { var Order = OrderFunction.GetOrder(OrderId); if (Order != null) { BotMessage = new OrderStatusEditorMessage(Order); await EditMessage(BotMessage.BuildMsg()); return(OkResult); } else { return(OkResult); } }
/// <summary> /// Сохраняем новый статус заказа и уведомляем пользователей /// </summary> /// <returns></returns> private async Task <IActionResult> ConfirmNewStatus() { try { if (Argumetns != null && Argumetns.Count == 2) { var status = OrderFunction.ConfirmOrderStatus(Argumetns[1]); //меняем текущее сообщение на сообщение с описание заказа await GetOrderAdmin(base.MessageId); var Order = OrderFunction.GetOrder(OrderId); //уведомляем всех о новом статусе заказа BotMessage = new OrderActionNotifiMessage(Order, status); await SendMessageAllBotEmployeess(BotMessage.BuildMsg()); ///Если поставили статус "Выполено" то пользователю оформившему данные заказ приходил сообщение с просьбой ///оставить отзыв. Остатки на скалде пересчитываются и операторам приходит уведомление об изменениях в остатках if (status != null && status.StatusId == Core.ConstantVariable.OrderStatusVariable.Completed) { var stock = Order.UpdateStock(); BotMessage = new FeedBackOfferMessage(Order); await SendMessage(Order.Follower.ChatId, BotMessage.BuildMsg()); BotMessage = new StockChangesMessage(stock, Order.Id); await SendMessageAllBotEmployeess(BotMessage.BuildMsg()); } return(OkResult); } else { return(OkResult); } } catch { return(OkResult); } }
/// <summary> /// Освободить заказ. /// </summary> /// <returns></returns> private async Task <IActionResult> FreeOrder() { if (OrderId > 0) { var Inwork = OrderFunction.InsertOrderInWork(OrderId, FollowerId, false); var Order = OrderFunction.GetOrder(OrderId); BotMessage = new AdminOrderMessage(Order, FollowerId); await base.EditMessage(BotMessage.BuildMsg()); string notify = "Пользователь " + GeneralFunction.FollowerFullName(FollowerId) + " освободил заказ №" + Order.Number.ToString(); BotMessage = new OrderMiniViewMessage(notify, Order.Id); await SendMessageAllBotEmployeess(BotMessage.BuildMsg()); } return(OkResult); }
/// <summary> /// Подтверждение того что пользователь назначает исполнителем себя вместо кого-то /// </summary> /// <returns></returns> private async Task <IActionResult> ConfirmOverridePerformer() { var Order = OrderFunction.GetOrder(OrderId); var Inwork = OrderFunction.InsertOrderInWork(OrderId, FollowerId); Order.OrdersInWork.Add(Inwork); BotMessage = new AdminOrderMessage(Order, FollowerId); await EditMessage(BotMessage.BuildMsg()); //уведомляем всех о том что кто то взял заказ в обработку string notify = "Заказ №" + Order.Number.ToString() + " взят в работу. Пользователь " + GeneralFunction.FollowerFullName(base.FollowerId); BotMessage = new OrderMiniViewMessage(notify, Order.Id); await SendMessageAllBotEmployeess(BotMessage.BuildMsg()); return(OkResult); }
/// <summary> /// Добавить комментраий к новому статусу /// </summary> /// <returns></returns> private async Task <IActionResult> AddCommentToStatus() { int OrderStatusId = 0; try { OrderStatusId = Convert.ToInt32(base.OriginalMessage.Substring(ForceReplyAddCommentToStatus.Length)); var orderStatus = OrderFunction.AddCommentToStatus(OrderStatusId, ReplyToMessageText); var Order = OrderFunction.GetOrder(Convert.ToInt32(orderStatus.OrderId)); BotMessage = new OrderStatusConfirmMessage(Order, orderStatus); await SendMessage(BotMessage.BuildMsg()); return(OkResult); } catch { return(OkResult); } }
/// <summary> /// Показать номер телефона покупателя /// </summary> /// <returns></returns> private async Task <IActionResult> SendContactUser() { var order = OrderFunction.GetOrder(OrderId); if (order != null && order.Follower != null && order.Follower.Telephone != null && order.Follower.Telephone != "") { Contact contact = new Contact { FirstName = order.Follower.FirstName, PhoneNumber = order.Follower.Telephone, UserId = order.Follower.ChatId }; await SendContact(contact); } if (order != null && order.Follower != null && order.Follower.UserName != null && order.Follower.UserName != "") { await SendUrl("https://t.me/" + order.Follower.UserName); } return(OkResult); }