public static Exception MessageDataValidation(this SMSDataModel data) { if (data == null) { return(new ArgumentNullException("data")); } if (string.IsNullOrEmpty(data.PhoneNumber)) { return(new ArgumentException("Phone number cannot be null", "PhoneNumber")); } if (data.MessageType != CORE.Enums.MessageType.StatusUpdate && string.IsNullOrEmpty(data.MessageContent)) { return(new ArgumentException("Message content cannot be null", "MessageContent")); } if (data.MessageType == CORE.Enums.MessageType.StatusUpdate) { if (data.OrderInfo == null) { return(new ArgumentNullException("OrderInfo")); } else { if (string.IsNullOrEmpty(data.OrderInfo.OrderNumber)) { return(new ArgumentException("Order number cannot be null", "OrderNumber")); } if (string.IsNullOrEmpty(data.OrderInfo.StatusCode)) { return(new ArgumentException("Status code cannot be null", "StatusCode")); } } } return(null); }
public async Task <bool> SendSMS(SMSDataModel data) { var exception = data.MessageDataValidation(); if (exception == null) { switch (data.MessageType) { case MessageType.StatusUpdate: string messageContent = GetMessageTemplateByStatus(data.OrderInfo); return(await smsRepository.StoreSMSToORC(messageContent, data.PhoneNumber.FormatPhoneNumber_vi(), GetRecipient(data.Source))); case MessageType.OTP: //OTP must using recipient = 'KENV' return(await smsRepository.StoreSMSToORC(data.MessageContent, data.PhoneNumber.FormatPhoneNumber_vi(), GetRecipient(KEVNSource.KEVN))); case MessageType.Other: return(await smsRepository.StoreSMSToORC(data.MessageContent, data.PhoneNumber.FormatPhoneNumber_vi(), GetRecipient(data.Source))); default: return(false); } } throw exception; }
public async Task <IActionResult> SendSMS(SMSDataModel data) { try { var userId = GetDataFromClaim(ApiClaimTypes.UserId); var result = await smsService.SendSMS(data); return(await ResponseData(true, result, ApiResponseMessage.SuccessMessage)); } catch (Exception ex) { logger.Error(ex.Message.ToString()); return(await ResponseData(false, ex.Message, ApiResponseMessage.ErrorMessage)); } }