private ChangeState ComparePhone(string fieldValue, string newValue, ChangeType rowChange) { newValue = phoneFormatter.FormatString(newValue); var changeType = String.Equals(fieldValue, newValue, StringComparison.InvariantCultureIgnoreCase) ? ChangeType.NotChanged : rowChange; if (newValue.Length != phoneFormatter.MaxStringLength) { changeType = ChangeType.ParseError; } return(changeType == ChangeType.ChangeValue ? new ChangeState(changeType, fieldValue) : new ChangeState(changeType)); }
public void RussiaOnlyHyphenated_CursorOnEndTest() { var phoneFormatter = new PhoneFormatter(PhoneFormat.RussiaOnlyHyphenated); int pos = 1; phoneFormatter.FormatString("8", ref pos); Assert.That(pos, Is.EqualTo(4)); pos = 5; phoneFormatter.FormatString("+7812", ref pos); Assert.That(pos, Is.EqualTo(6)); pos = 7; phoneFormatter.FormatString("+7-8123", ref pos); Assert.That(pos, Is.EqualTo(8)); }
public void RussiaOnlyHyphenated_ConvertFromAnotherFormatsTest(string insertPhone) { var phoneFormatter = new PhoneFormatter(PhoneFormat.RussiaOnlyHyphenated); var result = phoneFormatter.FormatString(insertPhone); Assert.That(result, Is.EqualTo("+7-812-309-80-89")); }
public void RussiaOnlyHyphenated_RemoveExtraDigitsTest() { var phoneFormatter = new PhoneFormatter(PhoneFormat.RussiaOnlyHyphenated); var result = phoneFormatter.FormatString("+700011122334455"); Assert.That(result, Is.EqualTo("+7-000-111-22-33")); }
public void RussiaOnlyShort_ConvertFromAnotherFormatsTest(string insertPhone) { var phoneFormatter = new PhoneFormatter(PhoneFormat.RussiaOnlyShort); var result = phoneFormatter.FormatString(insertPhone); Assert.That(result, Is.EqualTo("+78123098089")); }
public void BracketWithWhitespaceLastTen_ConvertFromAnotherFormatsTest1(string insertPhone, string result) { var phoneFormatter = new PhoneFormatter(PhoneFormat.BracketWithWhitespaceLastTen); var _result = phoneFormatter.FormatString(insertPhone); Assert.That(_result, Is.EqualTo(result)); }
public void BracketWithWhitespaceLastTen_ConvertFromAnotherFormatsTest(string insertPhone) { var phoneFormatter = new PhoneFormatter(PhoneFormat.BracketWithWhitespaceLastTen); var result = phoneFormatter.FormatString(insertPhone); Assert.That(result, Is.EqualTo("(812) 309 - 80 - 89")); }
public void RussiaOnlyHyphenated_CursorKeepLocation3Test() { var phoneFormatter = new PhoneFormatter(PhoneFormat.RussiaOnlyHyphenated); //Курсор //df r881230|98089 int pos = 10; phoneFormatter.FormatString("df r88123098089", ref pos); //+7-812-30|9-80-89 Assert.That(pos, Is.EqualTo(9)); }
public void RussiaOnlyHyphenated_CursorKeepLocation1Test() { var phoneFormatter = new PhoneFormatter(PhoneFormat.RussiaOnlyHyphenated); //Курсор //+78123098|089 int pos = 9; phoneFormatter.FormatString("+78123098089", ref pos); //+7-812-309-8|0-89 Assert.That(pos, Is.EqualTo(12)); }
private void OnSendSmsButtonPressed(object btn, EventArgs args) { if (_order.Id == 0) { _interactiveService.ShowMessage(ImportanceLevel.Error, "Перед отправкой SMS необходимо сохранить заказ", "Не удалось отправить SMS"); return; } if (string.IsNullOrWhiteSpace(validatedPhoneEntry.Text)) { _interactiveService.ShowMessage(ImportanceLevel.Error, "Вы забыли выбрать номер.", "Не удалось отправить SMS"); return; } var alreadySentSms = _smsPaymentRepository.GetSmsPaymentsForOrder( InfoProvider.UoW, _order.Id, _excludeSmsPaymentStatuses ); var paidSmsPayments = alreadySentSms.Where(x => x.SmsPaymentStatus == SmsPaymentStatus.Paid).ToList(); var waitingSmsPayments = alreadySentSms.Where(x => x.SmsPaymentStatus == SmsPaymentStatus.WaitingForPayment && DateTime.Now.Subtract(x.CreationDate).TotalMinutes < 60 ).ToList(); if (paidSmsPayments.Any()) { var paidStringBuilder = new StringBuilder(); foreach (var payment in paidSmsPayments) { paidStringBuilder.AppendLine($"\tКод платежа: {payment.Id}"); paidStringBuilder.AppendLine($"\tТелефон: +7 {_phoneFormatter.FormatString(payment.PhoneNumber)}"); paidStringBuilder.AppendLine($"\tДата создания: {payment.CreationDate}"); paidStringBuilder.AppendLine($"\tДата оплаты: {payment.PaidDate}"); paidStringBuilder.AppendLine($"\tНомер оплаты: {payment.ExternalId}"); paidStringBuilder.AppendLine(); } var sendPayment = _interactiveService.Question("Для заказа уже есть ранее оплаченные платежи по SMS:\n\n" + $"{paidStringBuilder}" + "Вы уверены что хотите отправить ещё одну SMS?"); if (!sendPayment) { return; } } else if (waitingSmsPayments.Any()) { var waitingStringBuilder = new StringBuilder(); foreach (var payment in waitingSmsPayments) { waitingStringBuilder.AppendLine($"\tКод платежа: {payment.Id}"); waitingStringBuilder.AppendLine($"\tТелефон: +7 {_phoneFormatter.FormatString(payment.PhoneNumber)}"); waitingStringBuilder.AppendLine($"\tДата создания: {payment.CreationDate}"); waitingStringBuilder.AppendLine(); } var sendPayment = _interactiveService.Question("Для заказа найдены SMS, ожидающие оплату клиента:\n\n" + $"{waitingStringBuilder}" + "Вы уверены что хотите отправить ещё одну SMS?"); if (!sendPayment) { return; } } btnSendFastPaymentPayByQrUrlBySms.Sensitive = btnSendFastPaymentPayByCardUrlBySms.Sensitive = ySendSmsButton.Sensitive = false; GLib.Timeout.Add(10000, () => { btnSendFastPaymentPayByQrUrlBySms.Sensitive = true; btnSendFastPaymentPayByCardUrlBySms.Sensitive = _canSendSmsForPayFromSbpByCard; ySendSmsButton.Sensitive = _canSendSmsForPayFromYookassa; return(false); }); var smsSender = new SmsPaymentSender(); PaymentResult result; try { result = smsSender.SendSmsPaymentToNumber(_order.Id, validatedPhoneEntry.Text); } catch (TimeoutException) { _interactiveService.ShowMessage(ImportanceLevel.Warning, "Превышено время ожидания ответа от сервиса оплаты по SMS.\nЕсли SMS не была отправлена, произведите повторную отправку"); return; } switch (result.Status) { case PaymentResult.MessageStatus.Ok: _interactiveService.ShowMessage(ImportanceLevel.Info, "SMS отправлена успешно"); break; case PaymentResult.MessageStatus.Error: _interactiveService.ShowMessage(ImportanceLevel.Error, result.ErrorDescription, "Не удалось отправить SMS"); break; default: throw new ArgumentOutOfRangeException(); } }
void PhoneUpdate(XSSFWorkbook workbook, IList <WorkOrder> orders) { progressbar1.Adjustment.Value = 1; var sheet = workbook.CreateSheet("Телефоны"); //Заголовок var headerStyle = workbook.CreateCellStyle(); var headerFont = workbook.CreateFont(); headerFont.FontName = "Calibri"; headerFont.FontHeightInPoints = 11; headerFont.IsBold = true; headerStyle.SetFont(headerFont); var newDataFormat = workbook.CreateDataFormat(); var dateCellStyle = workbook.CreateCellStyle(); dateCellStyle.DataFormat = newDataFormat.GetFormat("dd.MM.yyyy"); //Ширина измеряется в количестве симвовлов * 256 sheet.SetColumnWidth(0, 20 * 256); sheet.SetColumnWidth(1, 20 * 256); sheet.SetColumnWidth(2, 20 * 256); #region параметры экспорта string[] columnTiles = new string[] { "Старый", "Новый", "Действие", }; #endregion var headerRow = sheet.CreateRow(0); for (var i = 0; i < columnTiles.Length; i++) { var cell = headerRow.CreateCell(i); cell.SetCellValue(columnTiles[i]); cell.CellStyle = headerStyle; } var PhoneFormatter = new PhoneFormatter(PhoneFormat.RussiaOnlyHyphenated); for (var row = 1; row <= orders.Count; row++) { progressbar1.Text = $"Телефон {row} из {orders.Count}"; progressbar1.Adjustment.Value++; GtkHelper.WaitRedraw(); var order = orders[row - 1]; var dataRow = sheet.CreateRow(row); var cellOld = dataRow.CreateCell(0); var cellNew = dataRow.CreateCell(1); var cellAction = dataRow.CreateCell(2); cellOld.SetCellValue(order.Phone); var formated = order.Phone != null?PhoneFormatter.FormatString(order.Phone) : order.Phone; if (formated == order.Phone) { cellAction.SetCellValue("Без изменений"); } else if (formated.Length == 16) { cellAction.SetCellValue("Отформатирован"); order.Phone = formated; UoW.Save(order); } else { cellAction.SetCellValue("Пропущен"); } cellNew.SetCellValue(order.Phone); logger.Debug($"{row} - {order.Id}"); } logger.Debug("Комит в базу"); UoW.Commit(); }