Beispiel #1
0
        public async Task <HttpResponseMessage> Hook(Update update)
        {
            try
            {
                await WriteUpdate(update);

                HttpResponseMessage message = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
                Employee            employee;
                if (update.Message.Contact != null)
                {
                    employee = await this._employeeProvider.SetPhoneAndGetEmployee(update.Message.Contact.UserId, update.Message.Contact.PhoneNumber);

                    if (employee == null)
                    {
                        SendMessageRequest req = new SendMessageRequest(update.Message.From.Id,
                                                                        "Вы не являетесь зарегистрированным участником проекта Чаевые-24. Проект Чаевые-24 позволяет работникам сферы услуг получать безналичные чаевые. Для подключения Вашего заведения позвоните на горячую линию отдела подключения +7 (812) 2-12-85-07.");
                        message.Content = req.ToHttpContent();
                        return(message);
                    }
                }
                else
                {
                    employee = await this._employeeProvider.GetEmployeeByTelegramUserIdAsync(update.Message.From.Id);

                    if (employee == null)
                    {
                        SendMessageRequest req = new SendMessageRequest(update.Message.From.Id,
                                                                        "Для авторизации в проекте Чаевые-24 отправьте, пожалуйста, свой номер телефона");
                        req.ReplyMarkup = this.GetPhoneKeyboardMarkup();

                        message.Content = req.ToHttpContent();
                        return(message);
                    }
                }

                SendMessageRequest responseMessage = this.ProcessCommand(update, employee);
                message.Content = responseMessage.ToHttpContent();
                return(message);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Ошибка");
                throw;
            }
        }