public ResponseAccount GetAccountByPhoneNumber(PhoneNumberRequest req) { ResponseAccount retVal = new ResponseAccount(); retVal.Account = SQLGetAccount(config.getAccountByPhoneNumber.Replace("%1", req.PhoneNumber)); return(retVal); }
public async Task <PhoneNumberRequest> GetPhoneNumber(CountryCode countryCode = CountryCode.RU, ServiceCode serviceCode = ServiceCode.MailRu) { Log.Debug($"Call {nameof(GetPhoneNumber)}"); //if (!_countries.ContainsKey(countryCode)) //{ // Log.Error($"{nameof(GetSmsOnlineApi)} not available for country {Enum.GetName(typeof(CountryCode), countryCode)}"); // return null; //} if (!_services.ContainsKey(serviceCode)) { Log.Error($"{nameof(GetSmsOnlineApi)} not available for service {Enum.GetName(typeof(ServiceCode), serviceCode)}"); return(null); } var service = _services[serviceCode]; var getNumberResult = await GetNumber(service, Enum.GetName(typeof(CountryCode), countryCode)?.ToLower()); var getNumberResponse = getNumberResult.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (getNumberResponse.Length < 3) { return(null); } //"ACCESS_NUMBER:58668155:79771317953" var activeSeconds = 900; var phoneNumberRequest = new PhoneNumberRequest { Id = getNumberResponse[1], Phone = getNumberResponse[2], Created = DateTime.UtcNow, ActiveSeconds = activeSeconds, RemainSeconds = activeSeconds }; await SetStatus(phoneNumberRequest.Id, "1"); return(phoneNumberRequest); }
public ResponseAccount GetAccountByPhoneNumber(PhoneNumberRequest req) { ResponseAccount retVal = new ResponseAccount(); String phoneNumber = req.PhoneNumber; var acc = from account in accounts where HasPhoneNumber(account.PhoneNumbers.PhoneNumber, phoneNumber) select account; if (acc.Count() < 1) { throw new WebFaultException(HttpStatusCode.NoContent); } else if (acc.Count() > 1) { throw new WebFaultException(HttpStatusCode.Conflict); } Account retAccount = new Account(acc.FirstOrDefault()); if (retAccount != null && req.CustomAttribute != null && req.CustomAttribute.Equals("overwrite")) { retAccount.CustomAttribute = "overwritten custom attribute"; } retVal.Account = retAccount; return(retVal); }
public ResponseContact GetContactByPhoneNumber(PhoneNumberRequest req) { ResponseContact rc = new ResponseContact(); rc.Contact = SQLGetContact(config.getContactByPhoneNumber.Replace("%1", req.PhoneNumber)); return(rc); }
public string AddPhoneNumber(PhoneNumberRequest request) { try { //map var dbPhone = new PhoneNumber(); if (request != null) { dbPhone.customerId = request.customerId; dbPhone.customerName = request.customerName; dbPhone.customerPhoneNumber = request.customerPhoneNumber; dbPhone.active = request.active; } var phoneid = db.phoneNumbers.Max(d => d.ID); dbPhone.ID = phoneid + 1; var allPhoneNumbers = db.phoneNumbers.Add(dbPhone); db.SaveChanges(); return("success"); } catch (Exception) { //If any exception occurs Internal Server Error i.e. Status Code 500 will be returned return("failed"); } }
public async Task <ActionResult> GetCode([FromBody] PhoneNumberRequest request, [FromServices] IPhoneConfirmationService phoneConfirmation) { var canSendCode = await phoneConfirmation.SendConfirmationCodeAsync(request.PhoneNumber); return(Json(ApiResponse.Success(canSendCode))); }
protected async Task <string> SmsServiceInit(CountryCode countryCode) { _data.PhoneCountryCode = Enum.GetName(typeof(CountryCode), countryCode)?.ToUpper(); Log.Debug($"Registration data: {JsonConvert.SerializeObject(_data)}"); if (_smsService == null) { _data.Phone = PhoneServiceStore.GetRandomPhoneNumber(countryCode); return(_data.ErrMsg);; } PhoneNumberRequest phoneNumberRequest = null; phoneNumberRequest = await _smsService.GetPhoneNumber(countryCode, GetServiceCode()); //phoneNumberRequest = new PhoneNumberRequest { Id = "444", Phone = "79163848169" }; if (phoneNumberRequest == null) { _data.ErrMsg = BotMessages.NoPhoneNumberMessage; return(_data.ErrMsg); } Log.Debug($"phoneNumberRequest: {JsonConvert.SerializeObject(phoneNumberRequest)}"); _requestId = phoneNumberRequest.Id; _data.Phone = phoneNumberRequest.Phone.Trim(); if (!_data.Phone.StartsWith("+")) { _data.Phone = $"+{_data.Phone}"; } //_data.Phone = _data.Phone.Substring(PhoneServiceStore.CountryPrefixes[countryCode].Length + 1); return(_data.ErrMsg); }
public ResponseContact GetContactByPhoneNumber(PhoneNumberRequest req) { string phoneNumber = req.PhoneNumber; ResponseContact rc = new ResponseContact(); var ct = from contact in contacts where HasPhoneNumber(contact.PhoneNumbers.PhoneNumber, phoneNumber) select contact; if (ct.Count() < 1) { throw new WebFaultException(HttpStatusCode.NoContent); } else if (ct.Count() > 1) { throw new WebFaultException(HttpStatusCode.Conflict); } Contact retContact = new Contact(ct.FirstOrDefault()); if ((retContact != null) && (req.CustomAttribute != null)) { if (req.CustomAttribute.Equals("overwrite")) { retContact.CustomAttribute = "overwritten custom attribute"; } else if (req.CustomAttribute.Equals("error_never_return")) { Thread.Sleep(System.Threading.Timeout.Infinite); } else if (req.CustomAttribute.Equals("error_internal_server")) { throw new WebFaultException <string>("Thrown because error_internal_server was the custom attribute", HttpStatusCode.InternalServerError); } else if (req.CustomAttribute.Equals("sleep10")) { Thread.Sleep(10000); //sleep 10 seconds } } rc.Contact = retContact; return(rc); }
public IActionResult SendSMSVerificationCodeByRegistrationToken([FromBody] PhoneNumberRequest request, [FromHeader(Name = "RegistrationToken")] string registrationToken) { if (ModelState.IsValid) { var response = new Response(); var data = new RegistrationCustomerData() { RegistrationToken = registrationToken, PhoneNumber = request.PhoneNumber }; var result = _registrationManager.ContinueRegistrationProcess(data, RegistrationProcessSteps.SendSMSVerificationCodeByRegistrationToken); response.ResultCode = ResultCodeFormatter.FromCustomerRegistrationProcess(result.ResultCode); response.Description = result.Description; return(ResponseExtensions.ToHttpResponse(response)); } else { return(ValidationError.GetValidationErrorResponse(ModelState)); } }
public async Task <PhoneNumberRequest> GetPhoneNumber(CountryCode countryCode, ServiceCode serviceCode) { Log.Debug($"Call {nameof(GetPhoneNumber)}"); //if (!_countries.ContainsKey(countryCode)) //{ // Log.Error($"{nameof(SimSmsOrgApi)} not available for country {Enum.GetName(typeof(CountryCode), countryCode)}"); // return null; //} if (!_services.ContainsKey(serviceCode)) { Log.Error($"{nameof(SimSmsOrgApi)} not available for service {Enum.GetName(typeof(ServiceCode), serviceCode)}"); return(null); } if (!CountryParams.ContainsKey(countryCode)) { Log.Error($"{nameof(SimSmsOrgApi)} not available for country {Enum.GetName(typeof(CountryCode), countryCode)}"); return(null); //var random = new Random(); //var values = CountryParams.Keys.ToList(); //var size = CountryParams.Count; //countryCode = values[random.Next(size)]; } var getNumberResult = await GetNumber(_services[serviceCode], CountryParams[countryCode]); var getNumberResponse = getNumberResult.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (getNumberResponse.Length < 3) { return(null); } //"ACCESS_NUMBER:58668155:79771317953" var activeSeconds = 900; var phoneNumberRequest = new PhoneNumberRequest { Id = getNumberResponse[1], Phone = getNumberResponse[2], Created = DateTime.UtcNow, ActiveSeconds = activeSeconds, RemainSeconds = activeSeconds }; await SetStatus(phoneNumberRequest.Id, "1"); return(phoneNumberRequest); }
public async Task <IActionResult> SetUserPhoneNumberAsync( [FromBody] PhoneNumberRequest model, CancellationToken token) { if (User.Identity.IsAuthenticated) { _logger.Error("Set User Phone number User is already sign in"); return(Unauthorized()); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { _logger.Error("Set User Phone number We can't identify the user"); return(Unauthorized()); } if (!user.EmailConfirmed || user.PhoneNumberConfirmed) { return(Unauthorized()); } var retVal = await _userManager.SetPhoneNumberAndCountryAsync(user, model.PhoneNumber, model.CountryCode.ToString(), token); //Ram: I disable this - we have an issue that sometime we get the wrong ip look at id //3DCDBF98-6545-473A-8EAA-A9DF00787C70 of UserLocation table in dev sql //if (country != null) //{ // if (!string.Equals(user.Country, country, StringComparison.OrdinalIgnoreCase)) // { // var command2 = new AddUserLocationCommand(user, country, HttpContext.Connection.GetIpAddress()); // var t1 = _commandBus.DispatchAsync(command2, token); // await _userManager.SetLockoutEndDateAsync(user, DateTimeOffset.MaxValue); // ModelState.AddModelError(nameof(model.PhoneNumber), _smsLocalizer["PhoneNumberNotSameCountry"]); // var t2 = _signInManager.SignOutAsync(); // await Task.WhenAll(t1, t2); // return BadRequest(ModelState); // } //} if (retVal.Succeeded) { TempData[SmsTime] = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture); TempData[PhoneCallTime] = DateTime.UtcNow.AddMinutes(-2).ToString(CultureInfo.InvariantCulture); await _client.SendSmsAsync(user, token); return(Ok()); } if (retVal.Errors.Any(a => a.Code == "InvalidPhoneNumber")) { ModelState.AddModelError(nameof(model.PhoneNumber), _localizer["InvalidPhoneNumber"]); } if (retVal.Errors.Any(a => a.Code == "Duplicate")) { _logger.Warning("phone number is duplicate"); ModelState.AddModelError(nameof(model.PhoneNumber), _smsLocalizer["DuplicatePhoneNumber"]); } else { _logger.Warning("Some other error" + retVal.Errors.FirstOrDefault()?.Description); ModelState.AddIdentityModelError(retVal); } return(BadRequest(ModelState)); }