public async Task ShowOffersCallBack(CallbackQueryEventArgs callback) { long chatid = callback.CallbackQuery.Message.Chat.Id; ShowOrdersDTO order = await provider.showOrderService.CurrentProduct(chatid); int currProductId = order.CurrentProductId; BuisnessTaskDTO task = await provider.buisnessTaskService.FindTaskByTaskId(currProductId); if (task == null) { throw new System.Exception("task cannot be null"); } List <UserDTO> offers = await provider.offerService.GetUsersOffer(currProductId); if (offers.Count == 0) { await client.SendTextMessageAsync(chatid, "No tasks"); return; } offers.ForEach(async(item) => { string message = $"ChatId user: {item.ChatId}\n " + $"Tel:{item.FIO}"; await client.SendTextMessageAsync(chatid, message, 0, false, false, 0, KeyboardHandler.InviteUserToDialog()); }); }
public async Task SendRequest(CallbackQueryEventArgs callback) { long chatid = callback.CallbackQuery.Message.Chat.Id; ShowOrdersDTO order = await provider.showOrderService.CurrentProduct(chatid); List <int> idProducts = await provider.showOrderService.GetIdTasksForUser(chatid); if (idProducts.Contains(order.CurrentProductId)) { await client.SendTextMessageAsync(chatid, "It's your order"); return; } BuisnessTaskDTO task = await provider.buisnessTaskService.FindTaskByTaskId(order.CurrentProductId); OfferDTO offer = new OfferDTO { ChatId = chatid, TaskId = task.Id }; await provider.offerService.Create(chatid, offer); await client.SendTextMessageAsync(chatid, "Created"); }
private async ValueTask <int?> NextProduct(long chatid, int MessageId, bool isBuisnessman = false) { ShowOrdersDTO order = await showOrdersRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid);; int currIdProduct; BuisnessTaskDTO result; int maxId; ShowOrdersDTO _order; if (isBuisnessman) { if (order == null) { _order = new ShowOrdersDTO { ChatId = chatid, CurrentProductId = await ProductWhithMinId(chatid, true), MessageId = MessageId }; await showOrdersRepository.Create(_order); return(_order.CurrentProductId); } currIdProduct = order.CurrentProductId; maxId = await buisnessTaskRepository.MaxId(chatid); if (currIdProduct == maxId) { return(null); } result = await buisnessTaskRepository.Get().FirstOrDefaultAsync(i => i.Id > currIdProduct && i.ChatId == chatid); return(result.Id); } if (order == null) { _order = new ShowOrdersDTO { ChatId = chatid, CurrentProductId = await ProductWhithMinId(chatid, false), MessageId = MessageId }; await showOrdersRepository.Create(_order); return(_order.CurrentProductId); } currIdProduct = order.CurrentProductId; maxId = await buisnessTaskRepository.MaxId(); if (currIdProduct == maxId) { return(null); } result = await buisnessTaskRepository.Get().FirstOrDefaultAsync(i => i.Id > currIdProduct); return(result.Id); }
public async ValueTask <int> GetMessageId(long chatid) { ShowOrdersDTO order = await showOrdersRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid); if (order == null) { order = new ShowOrdersDTO() { ChatId = chatid }; await showOrdersRepository.Create(order); } return(order.MessageId); }
public async Task SendRequest(CallbackQueryEventArgs callback) { long chatid = callback.CallbackQuery.Message.Chat.Id; ShowOrdersDTO order = await provider.showOrderService.CurrentProduct(chatid); List <int> idProducts = await provider.showOrderService.GetIdTasksForUser(chatid); if (idProducts.Contains(order.CurrentProductId)) { await client.SendTextMessageAsync(chatid, "Нельзя брать заказ у самого себя"); return; } BuisnessTaskDTO task = await provider.buisnessTaskService.FindTaskByTaskId(order.CurrentProductId); if (task.ChatIdPerformer.HasValue) { await client.SendTextMessageAsync(chatid, "К сожалению,этот заказ уже выполняется другим пилотом"); return; } OfferDTO offer = new OfferDTO { ChatId = chatid, TaskId = task.Id }; UserDTO user = await provider.userService.FindById(chatid); await provider.offerService.Create(chatid, offer); string message = $"Пилот {user.FIO} хочет выполнить ваш заказ. " + $"Данные по заказу:\n " + $"Id заказа:{task.Id} \n " + $"Описание заказа:{task.Description} \n " + $"Сумма заказа:{task.Sum} \n " + $"Подробнее можете посмотреть в разделе просмотра своих заявок"; await client.SendTextMessageAsync(task.ChatId, message); await client.SendTextMessageAsync(chatid, "Заявка успеешно создана"); }
public async Task ChangeMessageId(long chatid, int messageId) { ShowOrdersDTO order = await showOrdersRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid); if (order == null) { order = new ShowOrdersDTO(); order.ChatId = chatid; order.MessageId = messageId; order.CurrentProductId = 1; await showOrdersRepository.Create(order); return; } order.MessageId = messageId; await showOrdersRepository.Update(order); }
public async Task SetDefaultProduct(long chatid, bool isBuisnessMan = false) { ShowOrdersDTO order; if (isBuisnessMan) { order = await showOrdersRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid); if (order == null) { throw new System.Exception("order cannot be null"); } order.CurrentProductId = await buisnessTaskRepository.MinId(chatid); await showOrdersRepository.Update(order); return; } order = await showOrdersRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid); if (order == null) { throw new Exception("order cannot be null"); } { order = new ShowOrdersDTO(); order.ChatId = chatid; order.CurrentProductId = await buisnessTaskRepository.MinId(); await showOrdersRepository.Create(order); } order.CurrentProductId = await buisnessTaskRepository.MinId(); await showOrdersRepository.Update(order); }
private async ValueTask <int?> PreviousProduct(long chatid, int MessageId, bool isBuisnessman = false) { int min; ShowOrdersDTO order; int currIdProduct; BuisnessTaskDTO result; if (isBuisnessman) { min = await buisnessTaskRepository.MinId(chatid); order = await showOrdersRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid); if (order == null) { ShowOrdersDTO newOrder = new ShowOrdersDTO { ChatId = chatid, CurrentProductId = min, MessageId = MessageId }; await showOrdersRepository.Create(newOrder); return(null); } if (min == order.Id) { return(null); } currIdProduct = order.Id; result = await buisnessTaskRepository.Get().LastOrDefaultAsync(i => i.Id < currIdProduct && i.ChatId == chatid); return(result.Id); } min = await buisnessTaskRepository.MinId(); order = await showOrdersRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid); if (order == null) { ShowOrdersDTO _order = new ShowOrdersDTO { ChatId = chatid, CurrentProductId = min, MessageId = MessageId, }; await showOrdersRepository.Create(_order); return(null); } currIdProduct = order.CurrentProductId; if (min == currIdProduct) { return(null); } currIdProduct = order.CurrentProductId; result = await buisnessTaskRepository.Get().LastOrDefaultAsync(i => i.Id < currIdProduct); return(result.Id); }
public async ValueTask <BuisnessTaskDTO> GetCurrentTask(long chatid) { ShowOrdersDTO order = await showOrdersRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid); return(await buisnessTaskRepository.Get().FirstOrDefaultAsync(i => i.Id == order.CurrentProductId)); }