/// <summary> /// Восстановить заказ /// </summary> /// <returns></returns> private async Task <IActionResult> OrderRecovery() { using (MarketBotDbContext db = new MarketBotDbContext()) { try { var deleted = db.OrderDeleted.Where(o => o.OrderId == OrderId); if (deleted != null && deleted.Count() > 0) { foreach (var value in deleted) { db.OrderDeleted.Remove(value); } db.SaveChanges(); } OrderAdminMsg = new AdminOrderMessage(OrderId, FollowerId); await EditMessage(OrderAdminMsg.BuildMessage()); string notify = "Заказ №" + Order.Number.ToString() + " восстановлен. Пользователь " + GeneralFunction.FollowerFullName(FollowerId); await Processing.NotifyChanges(notify, Order.Id); return(base.OkResult); } catch (Exception e) { return(base.NotFoundResult); } } }
/// <summary> /// Удалить заказ /// </summary> /// <returns></returns> private async Task <IActionResult> OrderDelete() { int number = 0; int id = 0; try { number = Convert.ToInt32(base.OriginalMessage.Substring(ForceReplyOrderDelete.Length)); using (MarketBotDbContext db = new MarketBotDbContext()) { Order = db.Orders.Where(o => o.Number == number).Include(o => o.OrderDeleted).Include(o => o.OrdersInWork).FirstOrDefault(); string text = base.ReplyToMessageText; if (Order != null && Order.OrderDeleted != null && Order.OrderDeleted.Count == 0 && await Processing.CheckInWork(Order) && !await Processing.CheckIsDone(Order)) { id = Order.Id; OrderDeleted orderDeleted = new OrderDeleted { DateAdd = DateTime.Now, Deleted = true, FollowerId = FollowerId, OrderId = id, Text = text }; db.OrderDeleted.Add(orderDeleted); db.SaveChanges(); } } OrderAdminMsg = new AdminOrderMessage(id, FollowerId); var message = OrderAdminMsg.BuildMessage(); await SendMessage(message); //Уведомляем других сотрудников об изменениях string notify = "Заказ №" + Order.Number.ToString() + " Удален. Пользователь " + GeneralFunction.FollowerFullName(FollowerId); await Processing.NotifyChanges(notify, Order.Id); return(base.OkResult); } catch { return(OkResult); } }
private async Task <IActionResult> TakeOrder() { try { using (MarketBotDbContext db = new MarketBotDbContext()) { OrdersInWork inWork = new OrdersInWork { FollowerId = FollowerId, Timestamp = DateTime.Now, OrderId = Order.Id, InWork = true }; db.OrdersInWork.Add(inWork); var InWorkNow = Order.OrdersInWork.OrderByDescending(o => o.Id).FirstOrDefault(); //заказ не находится ни у кого в обработке if (Order != null && InWorkNow == null && db.SaveChanges() > 0 || Order != null && InWorkNow != null && InWorkNow.InWork == false && db.SaveChanges() > 0) { Order.OrdersInWork.Add(inWork); OrderAdminMsg = new AdminOrderMessage(Order, FollowerId); await EditMessage(OrderAdminMsg.BuildMessage()); string notify = "Заказ №" + this.Order.Number.ToString() + " взят в работу. Пользователь " + GeneralFunction.FollowerFullName(base.FollowerId); await Processing.NotifyChanges(notify, this.Order.Id); } //заказ уже кем то обрабатывается if (InWorkNow != null && InWorkNow.FollowerId != FollowerId && InWorkNow.InWork == true) { await SendMessage(new BotMessage { TextMessage = "Заявка в обработке у " + GeneralFunction.FollowerFullName(InWorkNow.FollowerId) }); } //заявка уже в обработке у пользователя if (InWorkNow != null && InWorkNow.FollowerId == FollowerId && InWorkNow.InWork == true) { OrderAdminMsg = new AdminOrderMessage(Order, FollowerId); await EditMessage(OrderAdminMsg.BuildMessage()); } return(OkResult); } } catch { return(NotFoundResult); } }
/// <summary> /// Согласовать заказ /// </summary> /// <returns></returns> private async Task <IActionResult> OrderConfirm() { try { int number = Convert.ToInt32(base.OriginalMessage.Substring(ForceReplyOrderConfirm.Length)); int id = 0; using (MarketBotDbContext db = new MarketBotDbContext()) { Order = db.Orders.Where(o => o.Number == number).Include(o => o.OrderConfirm).Include(o => o.OrdersInWork).FirstOrDefault(); if (Order != null && Order.OrderConfirm != null && Order.OrderConfirm.Count == 0 && await Processing.CheckInWork(Order) && await Processing.CheckIsDone(Order) == false) // Если уже есть записи о том что заказ соглосован, то больще записей не делаем { string text = base.ReplyToMessageText; id = Order.Id; OrderConfirm orderConfirm = new OrderConfirm { DateAdd = DateTime.Now, Confirmed = true, FollowerId = FollowerId, OrderId = id, Text = text }; db.OrderConfirm.Add(orderConfirm); db.SaveChanges(); } } OrderAdminMsg = new AdminOrderMessage(id, FollowerId); var message = OrderAdminMsg.BuildMessage(); await SendMessage(message); string notify = "Заказ №" + this.Order.Number.ToString() + " согласован. Пользователь " + GeneralFunction.FollowerFullName(base.FollowerId); await Processing.NotifyChanges(notify, this.Order.Id); return(base.OkResult); } catch (Exception exp) { return(base.NotFoundResult); } }
/// <summary> /// Освободить заказ. /// </summary> /// <returns></returns> private async Task <IActionResult> FreeOrder() { try { if (Order != null && await Processing.CheckInWork(Order)) { using (MarketBotDbContext db = new MarketBotDbContext()) { OrdersInWork ordersInWork = new OrdersInWork { Timestamp = DateTime.Now, InWork = false, OrderId = Order.Id, FollowerId = FollowerId }; db.OrdersInWork.Add(ordersInWork); if (db.SaveChanges() > 0) { Order.OrdersInWork.Add(ordersInWork); OrderAdminMsg = new AdminOrderMessage(Order, FollowerId); await base.EditMessage(OrderAdminMsg.BuildMessage()); await Processing.NotifyChanges("Пользователь " + GeneralFunction.FollowerFullName(FollowerId) + " освободил заказ №" + Order.Number.ToString(), Order.Id); } return(OkResult); } } else { return(OkResult); } } catch { return(OkResult); } }
private async Task <IActionResult> GetOrder() { using (MarketBotDbContext db = new MarketBotDbContext()) { try { int number = Convert.ToInt32(base.CommandName.Substring(GetOrderCmd.Length)); int id = db.Orders.Where(o => o.Number == number).FirstOrDefault().Id; OrderAdminMsg = new AdminOrderMessage(id); await SendMessage(OrderAdminMsg.BuildMessage()); return(OkResult); } catch { return(OkResult); } } }
/// <summary> /// Назад /// </summary> /// <returns></returns> private async Task <IActionResult> BackToOrder() { if (OrderAdminMsg != null && await EditMessage(OrderAdminMsg.BuildMessage()) != null) { return(base.OkResult); } if (OrderAdminMsg == null && this.OrderId > 0) { OrderAdminMsg = new AdminOrderMessage(this.OrderId); await EditMessage(OrderAdminMsg.BuildMessage()); return(OkResult); } else { OrderId = Argumetns[0]; OrderAdminMsg = new AdminOrderMessage(this.OrderId); await EditMessage(OrderAdminMsg.BuildMessage()); return(OkResult); } }