public SMSResult SendSMS(Models.SmsRequest smsRequest) { //TODO: use HttpResponseMessage for returning Bogus.Faker faker = new Bogus.Faker(); SMSResult result = new SMSResult() { Id = Guid.NewGuid(), ExternalId = smsRequest.messageExternalId }; //try //{ ApplyDelay(); // simulate a random result behaviour // 50% to be ok if (faker.Random.Number(100) < 10) { result.Status = MessageStatus.OK; } else { // exclude ok result.Status = faker.Random.Enum(MessageStatus.OK); } switch (result.Status) { case MessageStatus.Error: result.ReturnedMessage = faker.System.Exception().Message; break; case MessageStatus.InvalidCredentials: result.ReturnedMessage = "Your credentials are invalid!"; break; case MessageStatus.InvalidNumber: result.ReturnedMessage = "This mobile number is invalid!"; break; case MessageStatus.MessageTooLong: result.ReturnedMessage = "This message is too long!"; break; case MessageStatus.NotEnoughCredits: result.ReturnedMessage = "NotEnoughCredits"; break; case MessageStatus.OK: DecreaseCredit(); break; case MessageStatus.Pending: result.ReturnedMessage = "Pending...."; break; } result.TimeStamp = DateTime.Now; return(result); //} //catch (Exception ex) //{ // return InternalServerError(ex); //} }
public SMSResult ReSendSMS(Models.SmsRequest smsRequest) { // Suppose the SMS message is retrieved from the providers DB return(SendSMS(smsRequest)); }