示例#1
0
        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);
        }
示例#2
0
        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;
        }
示例#3
0
        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));
            }
        }