public async Task Create(SMSSendLogCreateDto model) { //Map and create log var log = _mapper.Map <SMSSendLog>(model); log.CreatedAt = DateTime.Now; log.CreatedBy = "42cde713-2368-41fa-b158-a452fc2cfda6"; _dbContext.SMSSendLogs.Add(log); await _dbContext.SaveChangesAsync(); }
public async Task <bool> SendMessage(string phoneNumber, string message) { // Получаем конфигурацию СМС шлюза. var settings = await _smsSettingService.GetFirstActive(); if (settings == null) { return(false); } // Подготавливаем СМС шлюз. SmsService sender = new OsonSmsService(new Uri(settings.BaseUrl), settings.Sender, settings.Login, settings.PassHash); // Отправляем сообщение через СМС шлюз. var response = await sender.SendMessage(phoneNumber, message); // Просто получаем код ответа запроса. // TODO: Что если выдала ошибку? var statusCode = 0; if (response != null) { statusCode = 200; if (response["error"]?["code"] != null) { statusCode = int.Parse(response["error"]["code"].ToString()); _logger.Error($"SmsService : Service returned exception code {statusCode} for {phoneNumber}"); } else { _logger.Information($"SmsService : Message for {phoneNumber} accepted by service"); } } // Записываем данные в лог с указанием статуса отправки. var log = new SMSSendLogCreateDto { Message = message, PhoneNumber = phoneNumber, SMSSettingId = settings.Id, Status = statusCode, HandlerId = (int)SMSHandlers.HermesDevlieryAPI_Undefined, SenderIp = HttpContext.Current.Request.UserHostAddress }; await _smsSendLogService.Create(log); return(true); }