private static IEnumerable <SmsSendRecord> CreateSendRecords(Notification notification, string sendingNumber, IEntity mobilePhoneField, IEnumerable <IEntity> people) { using (Profiler.Measure("TwilioRouter.CreateSendRecords")) { var sendRecords = people.Select(p => { var sendRecord = Entity.Create <SmsSendRecord>(); sendRecord.SendToNotification = notification; sendRecord.SsrFrom = PhoneNumberHelper.CleanNumber(sendingNumber); sendRecord.SrToPerson = p?.Cast <Person>(); var toNumber = p.GetField <string>(mobilePhoneField); if (toNumber != null) { sendRecord.SsrTo = PhoneNumberHelper.CleanNumber(toNumber); } else { sendRecord.SrErrorMessage = MissingPhoneNumberMessage; } return(sendRecord); }); return(sendRecords); } }
public List <PhoneContact> GetRegisteredUsers(ContactsRequest contactsRequest) { /*if (contactsRequest.RequestorId.ToUpper() == "EBCEEBA3-A557-476D-BA21-61AFF9D73B15") * { * UserAccountRepository uac = new UserAccountRepository(this.Context); * uac.SaveFeedback(new UserFeedback() {Feedback = string.Join(",",contactsRequest.ContactList.ToArray()),UserEmailId="ajaycm90",CreatedOn=DateTime.UtcNow, FeedbackCategory="Debug",RequestorId=new Guid(contactsRequest.RequestorId )} * ); * }*/ List <PhoneContact> registeredContactList = new List <PhoneContact>(); var resCode = Context.GetUserCountryCode(new Guid(contactsRequest.RequestorId)); string initiatorCountryCode = resCode.FirstOrDefault().ToString(); contactsRequest.ContactListFormatted = contactsRequest.ContactList.Select(c => { return(PhoneNumberHelper.FormatMobileNumberAndCountryCode(initiatorCountryCode, new PhoneContact() { MobileNumber = c, MobileNumberStoredInRequestorPhone = c }, this.countryCodes)); }).ToList(); contactsRequest.ContactList.Clear(); string req = Serializer.Serialize(contactsRequest); var res = Context.GetRegisteredContacts(req).FirstOrDefault(); if (!string.IsNullOrEmpty(res)) { registeredContactList = Serializer.DeserializeFromXml <List <PhoneContact> >(res.ToString()).ToList(); registeredContactList = registeredContactList.Where(x => x.UserId.ToString().ToLower() != contactsRequest.RequestorId.ToString().ToLower()).ToList(); } return(registeredContactList); }
public void CreateSubscriberNumber_FromOriginalWithText() { string testNumber = "07887 495880 - Liam"; string actualSubscriberNumber = PhoneNumberHelper.CreateSubscriberNumber(testNumber); Assert.IsTrue(actualSubscriberNumber == _expectedSubscriberNumber); }
public void CreateSubscriberNumber_FromOriginalWithPlusSign() { string testNumber = "+447887495880"; string actualSubscriberNumber = PhoneNumberHelper.CreateSubscriberNumber(testNumber); Assert.IsTrue(actualSubscriberNumber == _expectedSubscriberNumber); }
public Task <ViewModel> Handle(Query request, CancellationToken cancellationToken) { var state = _formFlowInstance.State; var addressParts = new[] { state.AddressLine1, state.AddressLine2, state.Town, state.County, state.Postcode }.Where(part => !string.IsNullOrWhiteSpace(part)).ToArray(); var vm = new ViewModel() { AddressParts = addressParts, Email = state.Email, LocationName = state.Name, PhoneNumber = !string.IsNullOrEmpty(state.PhoneNumber) ? PhoneNumberHelper.FormatPhoneNumber(state.PhoneNumber) : null, VenueId = request.VenueId, Website = state.Website, NewAddressIsOutsideOfEngland = state.NewAddressIsOutsideOfEngland }; return(Task.FromResult(vm)); }
public void should_display_UK_for_region_GB() { IList <KeyValuePair <string, string> > codeMap = PhoneNumberHelper.GetCountryCodeMap(); string displayedRegionCode = codeMap.Single(c => c.Key == "GB").Value; Assert.Equal("UK (+44)", displayedRegionCode); }
protected override string?PlatformGetPhoneNumber() { var telephony = XEPlatform.AppContext.GetSystemService <TelephonyManager>(Context.TelephonyService); var value = telephony.Line1Number; return(PhoneNumberHelper.GetChineseMainlandPhoneNumber11(value)); }
public void GetPhoneNumberWhenNotValid_ShouldReturnEmptyString() { string phoneNumber = "0761234567"; phoneNumber = PhoneNumberHelper.Validate(phoneNumber); Assert.Empty(phoneNumber); }
public void GetPhoneNumberWhenNull_ShouldReturnEmptyString() { string phoneNumber = null; phoneNumber = PhoneNumberHelper.Validate(phoneNumber); Assert.Empty(phoneNumber); }
public void GetPhoneNumberWhenWrongCountryCode_ShouldReturnEmptyString() { var phoneNumber = "+46 123 12 123"; phoneNumber = PhoneNumberHelper.Validate(phoneNumber); Assert.Empty(phoneNumber); }
public string Format([FromBody] string phoneNumber) { if (!PhoneNumberHelper.IsUKExtension(phoneNumber)) { return(phoneNumber); } return(PhoneNumberHelper.FormatNumber(PhoneNumberHelper.RemoveUKExtension(phoneNumber))); }
public void should_ignore_wildcard_characters_when_parsing(string nationalPhoneNumber, string expectation) { string serialized = PhoneNumberHelper.ToParsableString( new PhoneNumberImpl { CountryCode = "CN", Number = nationalPhoneNumber }); Assert.Equal(expectation, serialized); }
public void GetPhoneNumberWhenCorrect_ShouldReturnPhoneNumber() { var phoneNumber = "12312123"; var expected = "12312123"; phoneNumber = PhoneNumberHelper.Validate(phoneNumber); Assert.Equal(expected, phoneNumber); }
public void GetPhoneNumberWhenCountryCodeStartsWith00_ShouldReturnPhoneNumber() { var phoneNumber = "0047 123 12 123"; var expected = "12312123"; phoneNumber = PhoneNumberHelper.Validate(phoneNumber); Assert.Equal(expected, phoneNumber); }
public void should_parse_malformed_number( string phoneNumber, string region, string nationalNumber) { var parsed = PhoneNumberHelper.ParsePhoneNumber <PhoneNumberImpl>(phoneNumber); Assert.Equal(region, parsed.CountryCode); Assert.Equal(nationalNumber, parsed.Number); }
public void should_throw_when_convert_invalid_phone_number(string countryCode, string number) { IPhoneNumber phoneNumber = new PhoneNumberImpl { CountryCode = countryCode, Number = number }; AssertHelper.Throws( () => PhoneNumberHelper.ToRegionE164PhoneNumber(phoneNumber)); }
public void CreateSubscriberNumber_DoesntErrorWithEmptyPhoneNumber() { string testNumber = ""; string actualSubsciberNumber = null; try { actualSubsciberNumber = PhoneNumberHelper.CreateSubscriberNumber(testNumber); } catch (Exception ex) { Assert.Fail(ex.Message); } Assert.IsTrue(actualSubsciberNumber == string.Empty); }
public void should_get_number_if_is_legacy(string countryCode, string number) { IPhoneNumber phoneNumber = new PhoneNumberImpl { CountryCode = countryCode, Number = number }; ValidationResult errorResult; Assert.Equal(number, PhoneNumberHelper.TryConvertToE164PhoneNumber(phoneNumber, out errorResult)); }
public void should_get_empty_if_is_empty() { IPhoneNumber phoneNumber = new PhoneNumberImpl { CountryCode = "", Number = "" }; ValidationResult errorResult; Assert.Empty(PhoneNumberHelper.TryConvertToE164PhoneNumber(phoneNumber, out errorResult)); }
public SMSConfig GetSMSConfigForRecipient(string recipient) { var recipientCountryCode = new PhoneNumberHelper().GetCountryCode(recipient); var defaultSmsConfig = _smsConfigs.FirstOrDefault(sms => sms.IsDefault); var smsConfig = _smsConfigs.FirstOrDefault(sms => sms.CountryCode == recipientCountryCode); if (smsConfig == null) { return(defaultSmsConfig); } return(smsConfig); }
public void should_get_e164_phone_nubmer_with_country_code() { IPhoneNumber phoneNumber = new PhoneNumberImpl { CountryCode = "CN", Number = "13801231234" }; ValidationResult errorResult; string number = PhoneNumberHelper.TryConvertToE164PhoneNumber(phoneNumber, out errorResult); Assert.Equal("+8613801231234", number); }
public void should_get_success_when_phone_number_is_empty() { IPhoneNumber phoneNumber = new PhoneNumberImpl { CountryCode = "", Number = "" }; PhoneNumberHelper.ToRegionE164PhoneNumber(phoneNumber); Assert.DoesNotThrow(() => PhoneNumberHelper.ToRegionE164PhoneNumber(phoneNumber)); Assert.Equal(string.Empty, PhoneNumberHelper.ToRegionE164PhoneNumber(phoneNumber)); }
public MethodResult InviteContact(ContactsRequest contactRequest) { this.countryCodes = GetCountryCodes(); String contactNumber = contactRequest.ContactNumberForInvite; var resCode = Context.GetUserCountryCode(new Guid(contactRequest.RequestorId)); string initiatorCountryCode = resCode.FirstOrDefault().ToString(); EventParticipant ep = PhoneNumberHelper.FormatMobileNumberAndCountryCode(initiatorCountryCode, new EventParticipant() { MobileNumber = contactNumber, MobileNumberStoredInRequestorPhone = contactNumber }, this.countryCodes); return(SMSHelper.sendSMSGeneric(ep.CountryCode, ep.MobileNumber, 0, "", contactRequest.RequestorName, "")); }
public bool IsPhoneLocked(string phoneNumber) { try { return(_contactService.IsPhoneLocked(PhoneNumberHelper.GetNumberWithCountryCode(phoneNumber))); } catch (ArgumentException ex) { throw new BookingDomainValidationException(ErrorCodesConst.INVALID_PHONE_NUMBER, Messages_RU.INVALID_PHONE_NUMBER, ex); } catch (ApplicationException ex) { throw new ApplicationException("IsPhoneLocked exception in Contact Service", ex); } }
private string GetPhoneNumberFromBillingAddress(IOrderAddress billingAddress) { return(!string.IsNullOrEmpty(billingAddress.DaytimePhoneNumber) ? PhoneNumberHelper.Validate(billingAddress.DaytimePhoneNumber) : PhoneNumberHelper.Validate(billingAddress.EveningPhoneNumber)); }
public void FirstValidPhoneNumberIsValid() { Assert.AreEqual(true, PhoneNumberHelper.IsValidPhoneNumber(ValidPhoneNumber)); }
public void SecondValidBankAccountNumberIsValid() { Assert.AreEqual(true, PhoneNumberHelper.IsValidPhoneNumber(SecondValidPhoneNumber)); }
private Event ParseUserList(Event evnt, ref List <EventParticipant> UnregisteredUserList, ref List <EventParticipant> additionalRegisteredUsers, ref List <EventParticipant> RegisteredTempUserList) { //List<EventParticipant> additionalRegisteredUsers; additionalRegisteredUsers = new List <EventParticipant>(); ContactsRequest cr = new ContactsRequest(); cr.RequestorId = evnt.RequestorId.ToString(); var resCode = Context.GetUserCountryCode(evnt.RequestorId); string initiatorCountryCode = resCode.FirstOrDefault().ToString(); List <EventParticipant> UserList = evnt.UserList; //send only registered users to db while creating event. remaining users will need evnt.UserList = UserList.Where(x => !string.IsNullOrEmpty(x.UserId)).ToList(); //Get Unregistered User list or Event Participant where user id is not present UnregisteredUserList = UserList.Where(x => string.IsNullOrEmpty(x.UserId) && !string.IsNullOrEmpty(x.MobileNumber)).ToList(); //Properly Format the Country code and Mobile number UnregisteredUserList = UnregisteredUserList.Select(c => { return(PhoneNumberHelper.FormatMobileNumberAndCountryCode(initiatorCountryCode, c, this.countryCodes)); }).ToList(); if (UnregisteredUserList.Count > 0) { //Find registered users from the mobile numbers for users whose userid is not provided cr.ContactList = UnregisteredUserList.Select(x => x.MobileNumber).ToList <string>(); cr.ContactListFormatted = cr.ContactList.Select(c => { return(PhoneNumberHelper.FormatMobileNumberAndCountryCode(initiatorCountryCode, new PhoneContact() { MobileNumber = c, MobileNumberStoredInRequestorPhone = c }, this.countryCodes)); }).ToList(); //Amongst the UserList if there are users (without userid) but the mobilenumber+country code is already regstered //Such users will be identified as Additional Registered users //These users id are however not present in Initiator phone var res = Context.GetRegisteredContacts(Serializer.Serialize(cr)); //var abc = res.FirstOrDefault(); if (res != null) { var sRes = res.FirstOrDefault().ToString(); List <PhoneContact> pcl = Serializer.DeserializeFromXml <List <PhoneContact> >(sRes).ToList(); if (pcl.Count > 0) { additionalRegisteredUsers = pcl.Select(item => new EventParticipant() { CountryCode = item.CountryCode, MobileNumber = item.MobileNumber, UserId = item.UserId, MobileNumberStoredInRequestorPhone = item.MobileNumberStoredInRequestorPhone }).ToList(); //Format Country code and mobile number additionalRegisteredUsers = additionalRegisteredUsers.Select(c => { return(PhoneNumberHelper.FormatMobileNumberAndCountryCode(initiatorCountryCode, c, this.countryCodes)); }).ToList(); //Remove the additional registered users from Unregistered list //Use an extra varible since ref variables are not allowed in lamda List <EventParticipant> additionalRegisteredUsers1 = additionalRegisteredUsers; UnregisteredUserList = UnregisteredUserList.Where(p => !additionalRegisteredUsers1.Any(x => x.MobileNumber == p.MobileNumber && x.CountryCode == p.CountryCode)).ToList(); } } //Update the UserList with additional registered users found from mobile numbers evnt.UserList.AddRange(additionalRegisteredUsers); //additionalRegisteredUsers1 = additionalRegisteredUsers; if (UnregisteredUserList.Count > 0) { RegisteredTempUserList = RegisterTempUsers(UnregisteredUserList); evnt.UserList.AddRange(RegisteredTempUserList); } } return(evnt); }
public OrderDTO PushOrder(PushOrderCommandDTO pushOrderCommandDTO) { if (pushOrderCommandDTO == null) { throw new ArgumentNullException(nameof(pushOrderCommandDTO)); } OrderDTO createdOrder; var pushOrderCommand = new PushOrderCommand(PhoneNumberHelper.GetNumberWithCountryCode(pushOrderCommandDTO.PhoneNumber), DateTimeHelper.GetAsApplicationTime(pushOrderCommandDTO.TargetStartTime, _configService.GetClientTimeShiftMinutes()), DateTimeHelper.GetAsApplicationTime(pushOrderCommandDTO.TargetEndTime, _configService.GetClientTimeShiftMinutes()), pushOrderCommandDTO.MenuItemsNames); try { createdOrder = _orderService.PushOrder(pushOrderCommand); } catch (PhoneIsLockedException ex) { throw new BookingDomainValidationException(ErrorCodesConst.PHONE_NUMBER_LOCKED, Messages_RU.PHONE_NUMBER_LOCKED, ex); } catch (IncorrectPhoneNumberException ex) { throw new BookingDomainValidationException(ErrorCodesConst.INVALID_PHONE_NUMBER, Messages_RU.INVALID_PHONE_NUMBER, ex); } catch (MaximumValueExceededException ex) { throw new BookingDomainValidationException(ErrorCodesConst.ORDER_MAXIMUM_PRICE_EXCEEDED, Messages_RU.ORDER_MAXIMUM_PRICE_EXCEEDED, ex); } catch (TimeMapTrayFullException ex) { throw new BookingDomainValidationException(ErrorCodesConst.TARGET_TIME_MAP_TRAY_IS_FULL, Messages_RU.TARGET_TIME_MAP_TRAY_IS_FULL, ex); } catch (ApplicationException ex) { throw new ApplicationException("Order not been created.", ex); } try { _messageService.Send(createdOrder.CustomerPhoneNumber, _config.SmsSettings.Sender, String.Format(_config.SmsSettings.TextTemplate, createdOrder.CustomerSecretCode)); } catch (LowBalanceException) { _orderService.InvalidateOrder(createdOrder.OrderID); FatalErrorNotifier.NotifyOnError(Messages_RU.SMS_LOW_BALANCE); throw new ApplicationException("Error while sending sms. Low balance. The order was canceled."); } catch (ClientConfigurationException ex) { _orderService.InvalidateOrder(createdOrder.OrderID); FatalErrorNotifier.NotifyOnError(string.Format(Messages_RU.SMS_INVALID_CONFIGURATION_PARAMETER, ex.InvalidConfigurationParameterName)); throw new ApplicationException(string.Format("Error while sending sms. Invalid client configuration parameter: {0}. The order was canceled.", ex.InvalidConfigurationParameterName)); } catch (IncorrectDestinationNumberException) { _orderService.InvalidateOrder(createdOrder.OrderID); throw new ApplicationException("Error while sending sms. Incorrect destination phone number. The order was canceled."); } catch (OtherServiceException) { _orderService.InvalidateOrder(createdOrder.OrderID); throw new ApplicationException("Error while sending sms. Other exception. The order was canceled."); } catch (ApplicationException ex) { _orderService.InvalidateOrder(createdOrder.OrderID); throw new ApplicationException("Error while sending sms. The order was canceled.", ex); } createdOrder.CustomerSecretCode = null; //Because a secret return(createdOrder); }
public void CleanNumber(string dirty, string expected) { Assert.That(PhoneNumberHelper.CleanNumber(countryCode, dirty), Is.EqualTo(expected)); }