/// <summary> /// Добавить комментарий к заказу. БД /// </summary> /// <returns></returns> private async Task <IActionResult> AddCommentToOrderTmp() { OrderFunction = new OrderFunction(); OrderFunction.AddCommentToOrderTmp(FollowerId, BotInfo.Id, Update.Message.Text); OrderFunction.Dispose(); BotMessage = new OrderTempMessage(FollowerId, BotInfo.Id); await SendMessage(BotMessage.BuildMsg()); return(base.OkResult); }
/// <summary> /// Пользователь выбрал адрес доставки. Сохраняем и предлагаем выбрать способ оплаты /// </summary> /// <param name="AddressId"></param> /// <returns></returns> private async Task <IActionResult> SelectAddressDelivery(int AddressId) { OrderFunction = new OrderFunction(); if (OrderFunction.AddAddressToOrderTmp(FollowerId, BotInfo.Id, AddressId) != null) { OrderFunction.Dispose(); return(await SendPaymentMethodsList()); } else { await AnswerCallback("Произошла ошибка при выборе адреса доставки", true); } return(OkResult); }
/// <summary> /// Пользователь выбрал пункт самовывоза. Сохраняем /// </summary> /// <param name="PickupPointId"></param> /// <returns></returns> private async Task <IActionResult> SelectPickupPoint(int PickupPointId) { OrderFunction = new OrderFunction(); if (OrderFunction.AddPickUpPointToOrderTmp(FollowerId, BotInfo.Id, PickupPointId) != null) { OrderFunction.Dispose(); return(await SendPaymentMethodsList()); } else { await AnswerCallback("Произошла ошибка при выборе пункта самовывозы", true); } return(OkResult); }
/// <summary> /// Сохрнанить заказ. Перенести все данные из корзины. /// </summary> /// <returns></returns> private async Task <IActionResult> OrderSave() { Orders new_order = null; bool blocked = false; OrderFunction = new OrderFunction(); ConfigurationBot = base.GetConfigurationBot(BotInfo.Id); blocked = FollowerFunction.IsBlocked(FollowerId); if (blocked) { await AnswerCallback("Вы заблокированы администратором системы!", true); } // если в настройках бота указано время работы магазина, то проверяем подходит ли текщее время //под это правило. Если подходит то офрмляем заказ if (!blocked && ConfigurationBot.StartTime != null && ConfigurationBot.EndTime != null && ConfigurationBot.StartTime.Value.Hours <= DateTime.Now.Hour && ConfigurationBot.StartTime.Value <= DateTime.Now.TimeOfDay && ConfigurationBot.EndTime.Value > DateTime.Now.TimeOfDay) { new_order = OrderFunction.CreateOrder(FollowerId, BotInfo); } //Время работы магазина не указано. else if (!blocked && ConfigurationBot.EndTime == null && ConfigurationBot.StartTime == null) { new_order = OrderFunction.CreateOrder(FollowerId, BotInfo); } else { await AnswerCallback("Мы обрабатываем заказы только в период с " + ConfigurationBot.StartTime.ToString() + " и по " + ConfigurationBot.EndTime.ToString(), true); } if (new_order != null && new_order.Invoice != null) { BotMessage = new InvoiceViewMessage(new_order.Invoice, new_order.Id); await EditMessage(BotMessage.BuildMsg()); } if (new_order != null && new_order.Invoice == null) { BotMessage = new OrderViewMessage(new_order); await EditMessage(BotMessage.BuildMsg()); } //то отправляем уведомление о новом заказке Админам if (new_order != null) { BotMessage = new AdminOrderMessage(new_order); var message = BotMessage.BuildMsg(); await SendMessageAllBotEmployeess(message); } OrderFunction.Dispose(); return(OkResult); }
/// <summary> /// Пользователь выбрал методо оплаты /// </summary> /// <returns></returns> private async Task <IActionResult> SelectPaymentMethod() { OrderFunction = new OrderFunction(); int PaymentTypeId = 0; bool TestConnection = false; bool ExistUserName = false; bool ExistTelephone = false; OrderTemp orderTemp = null; ConfigurationBot = GetConfigurationBot(BotInfo.Id); if (Argumetns.Count > 0) { PaymentTypeId = Argumetns[0]; TestConnection = OrderFunction.PaymentTypeTestConnection(PaymentTypeId); } if (TestConnection == false) { await AnswerCallback("Ошибка. Данный способ оплаты недоступен!", true); OrderFunction.Dispose(); return(OkResult); } if (TestConnection) { orderTemp = OrderFunction.AddPaymentMethodToOrderTmp(FollowerId, BotInfo.Id, PaymentTypeId); OrderFunction.Dispose(); } //Данные о выбраном способоне оплаты успешно занесены в БД. //Если в настройках бота включена верификация по номеру телефона, то проверяем указан ли номер телефона у этого пользователя //Если не указан то просим указать ExistTelephone = FollowerFunction.ExistTelephone(FollowerId); if (orderTemp != null && ConfigurationBot != null && ConfigurationBot.VerifyTelephone && !ExistTelephone) { BotMessage = new RequestPhoneNumberMessage(); await SendMessage(BotMessage.BuildMsg()); } //телефон указан if (orderTemp != null && ConfigurationBot != null && ConfigurationBot.VerifyTelephone && ExistTelephone) { return(await SendOrderTemp()); } //Данные о выбраном способоне оплаты успешно занесены в БД. //Если в настройках бота верификация по телефону отключена, проверяем указан ли у пользователя UserName ExistUserName = FollowerFunction.ExistUserName(FollowerId); if (orderTemp != null && ConfigurationBot != null && !ConfigurationBot.VerifyTelephone && !ExistUserName) { return(await SendUserNameAddedFaq()); } //UserName указан if (orderTemp != null && ConfigurationBot != null && !ConfigurationBot.VerifyTelephone && ExistUserName) { return(await SendOrderTemp()); } return(OkResult); }