public Form GetForm(TransferContext context) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var template = TemplateLoader.LoadSubmitFormTemplate(context.ExtensionManager, ExtensionCatalog.FinishProtection); var templateWrapper = new FinishProtectionFormTemplateWrapper(template); var currencyService = context.UnityContainer.Resolve <ICurrencyService>(); var currency = currencyService.ObtainCurrencyByAccountNumber(context.Transfer.TargetPurse); templateWrapper.Control4Amount.CurrencyName = currencyService.AddPrefix(currency); var transfer = context.Transfer; var incomeValuesWrapper = new FinishProtectionFormValuesWrapper { Control1SourcePurse = transfer.SourcePurse, Control2TargetPurse = transfer.TargetPurse, Control3Amount = transfer.Amount, Control4Description = transfer.Description }; var form = new SubmitForm(); ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, form); form.ApplyTemplate(template, incomeValuesWrapper.CollectIncomeValues()); form.ServiceCommand += (sender, args) => { if (!FinishProtectionFormValuesWrapper.Control1SourcePurseCommandFindIdentifier.Equals(args.Command)) { return; } var purseNumber = (string)args.Argument; IdentifierDisplayHelper.ShowFindIdentifierForm(form, context, purseNumber); }; form.WorkCallback = (step, list) => { var valuesWrapper = new FinishProtectionFormValuesWrapper(list); var transferService = context.UnityContainer.Resolve <ITransferService>(); transferService.FinishProtection(transfer.PrimaryId, valuesWrapper.Control6HoldingFeatureIsUsed ? string.Empty : valuesWrapper.Control5Code); return(new Dictionary <string, object>()); }; return(form); }
public Form GetForm(SessionContext context, long?identifier) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var incomeValuesWrapper = new SendMessageFormValuesWrapper(); if (null != identifier) { var formattingService = context.UnityContainer.Resolve <IFormattingService>(); incomeValuesWrapper.Control1Identifier = formattingService.FormatIdentifier(identifier.Value); } var form = SubmitFormDisplayHelper.LoadSubmitFormByExtensionId(context.ExtensionManager, ExtensionCatalog.SendMessage, incomeValuesWrapper.CollectIncomeValues()); form.ServiceCommand += (sender, args) => { if (!SendMessageFormValuesWrapper.Control1IdentifierCommandFindPassport .Equals(args.Command)) { return; } IdentifierDisplayHelper.ShowFindCertificateForm(form, context, (string)args.Argument); }; form.WorkCallback = (step, list) => { if (0 != step) { throw new InvalidOperationException("0 != step"); } var valuesWrapper = new SendMessageFormValuesWrapper(list); var messageService = context.UnityContainer.Resolve <IMessageService>(); messageService.SendMessage(long.Parse(valuesWrapper.Control1Identifier), valuesWrapper.Control2Subject, valuesWrapper.Control3Message, false); return(new Dictionary <string, object>()); }; return(form); }
public Form GetForm(SessionContext context) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var form = SubmitFormDisplayHelper.LoadSubmitFormByExtensionId(context.ExtensionManager, ExtensionCatalog.AddIdentifier); form.ServiceCommand += (sender, args) => { if (!AddIdentifierFormValuesWrapper.Control1WmidCommandFindPassport.Equals(args.Command)) { return; } var identifierValue = (string)args.Argument; IdentifierDisplayHelper.ShowFindCertificateForm(form, context, identifierValue); }; form.WorkCallback = (step, list) => { var valuesWrapper = new AddIdentifierFormValuesWrapper(list); var identifier = long.Parse(valuesWrapper.Control1Wmid); var alias = valuesWrapper.Control2Alias; var identifierService = context.UnityContainer.Resolve <IIdentifierService>(); if (identifierService.IsIdentifierExists(identifier)) { throw new DuplicateIdentifierException( string.Format(CultureInfo.InvariantCulture, Resources.AddIdentifierFormProvider_GetForm_WMID__0__already_registered_in_the_program, valuesWrapper.Control1Wmid)); } identifierService.AddSecondaryIdentifier(new IdentifierSummary(identifier, alias)); context.Session.CurrentIdentifier = identifier; return(new Dictionary <string, object>()); }; return(form); }
private void UpdateComboBox(long?identifierToSelect = null) { var identifiers = _identifierService.SelectIdentifiers(); identifierComboBox.BeginUpdate(); // BeginUpdate identifierComboBox.Items.Clear(); int index = 0; int selectedIndex = 0; foreach (var identifierInfo in identifiers) { var text = IdentifierDisplayHelper.FormatIdentifierWithAlias(_formattingService, identifierInfo.Identifier, identifierInfo.IsMaster ? null : identifierInfo.IdentifierAlias); identifierComboBox.Items.Add(new ComboBoxItem(text, identifierInfo)); if (null != identifierToSelect) { if (identifierToSelect.Value == identifierInfo.Identifier) { selectedIndex = index; } } else if (identifierInfo.IsMaster) { selectedIndex = index; } index++; } identifierComboBox.EndUpdate(); // EndUpdate if (identifierComboBox.Items.Count > 0) { identifierComboBox.SelectedIndex = selectedIndex; } }
public Form GetForm(SessionContext context) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var form = SubmitFormDisplayHelper.LoadSubmitFormByExtensionId(context.ExtensionManager, ExtensionCatalog.AddPurse); form.ServiceCommand += (sender, args) => { if (!AddPurseFormValuesWrapper.Control1PurseNumberCommandFindIdentifier.Equals(args.Command)) { return; } IdentifierDisplayHelper.ShowFindIdentifierForm(form, context, (string)args.Argument); }; form.WorkCallback = (step, list) => { var valuesWrapper = new AddPurseFormValuesWrapper(list); var purseService = context.UnityContainer.Resolve <IPurseService>(); purseService.AddPurse(valuesWrapper.Control1PurseNumber, valuesWrapper.Control2Alias); return(new Dictionary <string, object>()); }; form.FinalAction = objects => { EventBroker.OnPurseChanged(new DataChangedEventArgs { FreshDataRequired = false }); return(true); }; return(form); }
private Form GetForm(SessionContext context, long invoiceId, string targetPurse, RejectInvoiceFormValuesWrapper valuesWrapper) { var template = TemplateLoader.LoadSubmitFormTemplate(context.ExtensionManager, ExtensionCatalog.RejectInvoice); var templateWrapper = new RejectInvoiceFormTemplateWrapper(template); var currencyService = context.UnityContainer.Resolve <ICurrencyService>(); var currency = currencyService.ObtainCurrencyByAccountNumber(targetPurse); templateWrapper.Control4Amount.CurrencyName = currencyService.AddPrefix(currency); var form = new SubmitForm(); ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, form); form.ApplyTemplate(template, valuesWrapper.CollectIncomeValues()); form.ServiceCommand += (sender, args) => { if (!RejectInvoiceFormValuesWrapper.Control1TargetIdentifierCommandFindPassport.Equals(args.Command)) { return; } IdentifierDisplayHelper.ShowFindCertificateForm(form, context, (string)args.Argument); }; form.WorkCallback = (step, list) => { var invoiceService = context.UnityContainer.Resolve <IInvoiceService>(); invoiceService.RejectInvoice(invoiceId); return(new Dictionary <string, object>()); }; return(form); }
private Form GetForm(SessionContext context, string accountNumber) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var template = TemplateLoader.LoadSubmitFormTemplate(context.ExtensionManager, ExtensionCatalog.TakeTrust); var origin = new AccountDropDownListOrigin(context.UnityContainer) { Source = AccountSource.MasterIdentifier }; origin.FilterCriteria.CurrencyCapabilities = CurrencyCapabilities.Transfer; if (null != accountNumber) { origin.SelectedAccountNumber = accountNumber; } var itemTemplates = AccountDisplayHelper.BuildAccountDropDownListItemTemplates(origin); var step1TemplateWrapper = new TakeTrustFormTemplateWrapper.Step1(template); step1TemplateWrapper.Control1StorePurse.Items.Clear(); step1TemplateWrapper.Control1StorePurse.Items.AddRange(itemTemplates); var form = new SubmitForm(); ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, form); form.ApplyTemplate(template); form.ServiceCommand += (sender, args) => { if (TakeTrustFormValuesWrapper.Step1.Control7WMIDCommandFindPassport.Equals(args.Command)) { var identifierValue = (string)args.Argument; IdentifierDisplayHelper.ShowFindCertificateForm(form, context, identifierValue); return; } if (TakeTrustFormValuesWrapper.Step2.Control4SmsReferenceCommandGoTo.Equals(args.Command)) { Process.Start((string)args.Argument); } }; form.WorkCallback = (step, list) => { var trustService = context.UnityContainer.Resolve <ITrustService>(); switch (step) { case 0: var step1ValuesWrapper = new TakeTrustFormValuesWrapper.Step1(list); ExtendedIdentifier extendedIdentifier; switch (step1ValuesWrapper.Control5IdentifierType) { case TakePaymentFormValuesWrapper.Step1.Control3IdentifierTypeValueWmid: extendedIdentifier = new ExtendedIdentifier(ExtendedIdentifierType.WmId, step1ValuesWrapper.Control7WMID); break; case TakePaymentFormValuesWrapper.Step1.Control3IdentifierTypeValuePhone: extendedIdentifier = new ExtendedIdentifier(ExtendedIdentifierType.Phone, step1ValuesWrapper.Control6Phone); break; case TakePaymentFormValuesWrapper.Step1.Control3IdentifierTypeValueEmail: extendedIdentifier = new ExtendedIdentifier(ExtendedIdentifierType.Email, step1ValuesWrapper.Control8Email); break; default: throw new InvalidOperationException( "step1ValuesWrapper.Control5IdentifierType == " + step1ValuesWrapper.Control5IdentifierType); } var originalExpressTrust = new OriginalExpressTrust(step1ValuesWrapper.Control1StorePurse, extendedIdentifier); originalExpressTrust.DayLimit = step1ValuesWrapper.Control2DailyAmountLimit; originalExpressTrust.WeekLimit = step1ValuesWrapper.Control3WeeklyAmountLimit; originalExpressTrust.MonthLimit = step1ValuesWrapper.Control4MonthlyAmountLimit; var trustConfirmationInstruction = trustService.RequestTrust(originalExpressTrust); var step2IncomeValuesWrapper = new TakeTrustFormValuesWrapper.Step2 { Control1RequestNumber = trustConfirmationInstruction.Reference.ToString(), Control2Message = trustConfirmationInstruction.PublicMessage ?? string.Empty, Control4SmsReference = !string.IsNullOrEmpty(trustConfirmationInstruction.SmsReference) ? string.Format(CultureInfo.InvariantCulture, CheckSmsStateUrlTemplate, trustConfirmationInstruction.SmsReference) : string.Empty }; return(step2IncomeValuesWrapper.CollectIncomeValues()); case 1: var step2ValuesWrapper = new TakeTrustFormValuesWrapper.Step2(list); var trustConfirmation = new TrustConfirmation(int.Parse(step2ValuesWrapper.Control1RequestNumber), step2ValuesWrapper.Control5Code); trustService.ConfirmTrust(trustConfirmation); break; } return(new Dictionary <string, object>()); }; return(form); }
private void infoButton_Click(object sender, EventArgs e) { IdentifierDisplayHelper.ShowFindCertificateForm(this, _sessionContext, _formattingService.FormatIdentifier(_sessionContext.Session.CurrentIdentifier)); }
public Form GetForm(IncomingInvoiceContext context) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var invoice = context.Invoice; var currencyService = context.UnityContainer.Resolve <ICurrencyService>(); var currency = currencyService.ObtainCurrencyByAccountNumber(invoice.TargetPurse); var template = TemplateLoader.LoadSubmitFormTemplate(context.ExtensionManager, ExtensionCatalog.PayInvoice); var templateWrapper = new PayInvoiceFormTemplateWrapper(template); templateWrapper.Control4Amount.CurrencyName = currencyService.AddPrefix(currency); // Устанавливаем кошельки var origin = new AccountDropDownListOrigin(context.UnityContainer); // Оплата в долг не требует денег на кошельке, осуществляется с кредитного кошелька (WMC). if (currencyService.CheckCapabilities(currency, CurrencyCapabilities.Debit)) { currency = currencyService.SelectCurrencies(CurrencyCapabilities.Credit).First(); } else { origin.FilterCriteria.HasMoney = true; } origin.FilterCriteria.Currency = currency; origin.FilterCriteria.CurrencyCapabilities = CurrencyCapabilities.Actual | CurrencyCapabilities.TransferByInvoice; var itemTemplates = AccountDisplayHelper.BuildAccountDropDownListItemTemplates(origin); templateWrapper.Control11PayFrom.Items.Clear(); templateWrapper.Control11PayFrom.Items.AddRange(itemTemplates); // Запрещена оплата с протекцией if (null == invoice.ProtectionPeriod) { templateWrapper.Control12UsePaymentProtection.Enabled = false; } else { templateWrapper.Control14ProtectionPeriod.MaxValue = invoice.ProtectionPeriod.Value; } var formattingService = context.UnityContainer.Resolve <IFormattingService>(); var incomeValuesWrapper = new PayInvoiceFormValuesWrapper { Control1TargetIdentifier = formattingService.FormatIdentifier(invoice.TargetIdentifier), Control2TargetPurse = invoice.TargetPurse, Control3Amount = invoice.Amount, Control4Description = invoice.Description ?? string.Empty, Control5OrderId = invoice.OrderId.ToString(), Control6Address = invoice.Address ?? string.Empty, Control7PaymentPeriod = invoice.ExpirationPeriod.ToString(), Control9TransferId = context.Session.SettingsService.AllocateTransferId() }; if (null != invoice.ProtectionPeriod) { incomeValuesWrapper.Control8MaxProtectionPeriod = invoice.ProtectionPeriod.Value.ToString(); } var form = new SubmitForm(); ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, form); form.ApplyTemplate(template, incomeValuesWrapper.CollectIncomeValues()); form.ServiceCommand += (sender, args) => { if (!PayInvoiceFormValuesWrapper.Control1TargetIdentifierCommandFindPassport.Equals(args.Command)) { return; } IdentifierDisplayHelper.ShowFindCertificateForm(form, context, (string)args.Argument); }; form.WorkCallback = (step, list) => { var valuesWrapper = new PayInvoiceFormValuesWrapper(list); var transferService = context.UnityContainer.Resolve <ITransferService>(); var originalTransfer = new OriginalTransfer(valuesWrapper.Control9TransferId, valuesWrapper.Control10PayFrom, invoice.TargetPurse, invoice.Amount, invoice.Description) { InvoiceId = invoice.PrimaryId }; if (valuesWrapper.Control11UsePaymentProtection) { originalTransfer.ProtectionPeriod = valuesWrapper.Control12ProtectionPeriod; if (valuesWrapper.Control14ProtectionByTime) { originalTransfer.ProtectionCode = valuesWrapper.Control13ProtectionCode; } } transferService.CreateTransfer(originalTransfer); return(new Dictionary <string, object>()); }; return(form); }
public Form GetForm(PurseContext context) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var template = TemplateLoader.LoadSubmitFormTemplate(context.ExtensionManager, ExtensionCatalog.TakePayment); var origin = new AccountDropDownListOrigin(context.UnityContainer) { SelectedAccountNumber = context.Account.Number }; origin.FilterCriteria.CurrencyCapabilities = CurrencyCapabilities.Transfer; var itemTemplates = AccountDisplayHelper.BuildAccountDropDownListItemTemplates(origin); var step1TemplateWrapper = new TakePaymentFormTemplateWrapper.Step1(template); step1TemplateWrapper.Control2StorePurse.Items.Clear(); step1TemplateWrapper.Control2StorePurse.Items.AddRange(itemTemplates); var form = new SubmitForm(); ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, form); var incomeValuesWrapper = new TakePaymentFormValuesWrapper.Step1 { Control2OrderId = context.Session.SettingsService.AllocateOrderId() }; form.ApplyTemplate(template, incomeValuesWrapper.CollectIncomeValues()); form.ServiceCommand += (sender, args) => { if (!TakePaymentFormValuesWrapper.Step1.Control5WMIDCommandFindPassport.Equals(args.Command)) { return; } var identifierValue = (string)args.Argument; IdentifierDisplayHelper.ShowFindCertificateForm(form, context, identifierValue); }; long invoiceId = 0; string purse = ""; form.WorkCallback = (step, list) => { var paymentService = context.UnityContainer.Resolve <IPaymentService>(); switch (step) { case 0: var step1ValuesWrapper = new TakePaymentFormValuesWrapper.Step1(list); ExtendedIdentifier extendedIdentifier; switch (step1ValuesWrapper.Control3IdentifierType) { case TakePaymentFormValuesWrapper.Step1.Control3IdentifierTypeValueWmid: extendedIdentifier = new ExtendedIdentifier(ExtendedIdentifierType.WmId, step1ValuesWrapper.Control5WMID); break; case TakePaymentFormValuesWrapper.Step1.Control3IdentifierTypeValuePhone: extendedIdentifier = new ExtendedIdentifier(ExtendedIdentifierType.Phone, step1ValuesWrapper.Control4Phone); break; case TakePaymentFormValuesWrapper.Step1.Control3IdentifierTypeValueEmail: extendedIdentifier = new ExtendedIdentifier(ExtendedIdentifierType.Email, step1ValuesWrapper.Control6Email); break; default: throw new InvalidOperationException( "step1ValuesWrapper.Control3IdentifierType == " + step1ValuesWrapper.Control3IdentifierType); } var originalExpressPayment = new OriginalExpressPayment(step1ValuesWrapper.Control2OrderId, step1ValuesWrapper.Control1StorePurse, step1ValuesWrapper.Control7PaymentAmount, step1ValuesWrapper.Control9Description, extendedIdentifier); originalExpressPayment.ConfirmationType = (ConfirmationType)Enum.Parse(typeof(ConfirmationType), step1ValuesWrapper.Control8ConfirmationType); purse = originalExpressPayment.TargetPurse; var confirmationInstruction = paymentService.RequestPayment(originalExpressPayment); invoiceId = confirmationInstruction.InvoiceId; var step2IncomeValuesWrapper = new TakePaymentFormValuesWrapper.Step2(); step2IncomeValuesWrapper.Control1InvoiceId = confirmationInstruction.InvoiceId.ToString(); step2IncomeValuesWrapper.Control2Message = confirmationInstruction.PublicMessage ?? string.Empty; return(step2IncomeValuesWrapper.CollectIncomeValues()); case 1: var step2ValuesWrapper = new TakePaymentFormValuesWrapper.Step2(list); var paymentConfirmation = new PaymentConfirmation(purse, invoiceId) { ConfirmationCode = step2ValuesWrapper.Control4CancelInvoice ? "-1" : step2ValuesWrapper.Control3Code }; paymentService.ConfirmPayment(paymentConfirmation); break; default: throw new InvalidOperationException("step == " + step); } return(new Dictionary <string, object>()); }; return(form); }
public Form GetForm(SessionContext context, string sourceIdentifierValue, string targetAccountNumber) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var template = TemplateLoader.LoadSubmitFormTemplate(context.ExtensionManager, ExtensionCatalog.CreateOutgoingInvoice); var templateWrapper = new CreateOutgoingInvoiceFormTemplateWrapper(template); if (null != sourceIdentifierValue) { templateWrapper.Control2ReceiversWmid.DefaultValue = sourceIdentifierValue; } // Кошельки var origin = new AccountDropDownListOrigin(context.UnityContainer); if (null != targetAccountNumber) { origin.SelectedAccountNumber = targetAccountNumber; } origin.FilterCriteria.CurrencyCapabilities = CurrencyCapabilities.Invoice; var itemTemplates = AccountDisplayHelper.BuildAccountDropDownListItemTemplates(origin); templateWrapper.Control3PayTo.Items.Clear(); templateWrapper.Control3PayTo.Items.AddRange(itemTemplates); var form = new SubmitForm(); ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, form); var incomeValuesWrapper = new CreateOutgoingInvoiceFormValuesWrapper { Control1OrderId = context.Session.SettingsService.AllocateOrderId() }; form.ApplyTemplate(template, incomeValuesWrapper.CollectIncomeValues()); form.ServiceCommand += (sender, args) => { if (!CreateOutgoingInvoiceFormValuesWrapper.Control2ReceiversWmidCommandFindPassport .Equals(args.Command)) { return; } IdentifierDisplayHelper.ShowFindCertificateForm(form, context, (string)args.Argument); }; form.WorkCallback = (step, list) => { var valuesWrapper = new CreateOutgoingInvoiceFormValuesWrapper(list); var originalInvoice = new OriginalOutgoingInvoice(valuesWrapper.Control1OrderId, valuesWrapper.Control2ReceiversWmid, valuesWrapper.Control3PayTo, valuesWrapper.Control4Amount, valuesWrapper.Control5Description); if (valuesWrapper.Control6SpecifyAdditionalParameters) { originalInvoice.Address = valuesWrapper.Control7Address; if (valuesWrapper.Control8SpecifyPaymentPeriod) { originalInvoice.ExpirationPeriod = valuesWrapper.Control9PaymentPeriod; } if (valuesWrapper.Control10AllowPaymentWithProtection) { originalInvoice.ProtectionPeriod = valuesWrapper.Control11ProtectionPeriod; } } var invoiceService = context.UnityContainer.Resolve <IInvoiceService>(); invoiceService.CreateOutgoingInvoice(originalInvoice); return(new Dictionary <string, object>()); }; return(form); }
private Form GetForm(SessionContext context, string purseNumber) { var incomeValuesWrapper = new FindIdentifierFormValuesWrapper.Step1(); if (!string.IsNullOrEmpty(purseNumber)) { incomeValuesWrapper.Control1Purse = purseNumber; } var form = SubmitFormDisplayHelper.LoadSubmitFormByExtensionId(context.ExtensionManager, ExtensionCatalog.FindIdentifier, incomeValuesWrapper.CollectIncomeValues()); form.ServiceCommand += (sender, args) => { if (!FindIdentifierFormValuesWrapper.Step2.Control1WmIdCommandFindPassport.Equals(args.Command)) { return; } var identifierValue = (string)args.Argument; IdentifierDisplayHelper.ShowFindCertificateForm(form, context, identifierValue); }; form.WorkCallback = (step, list) => { switch (step) { case 0: var step1Wrapper = new FindIdentifierFormValuesWrapper.Step1(list); var identifierService = context.UnityContainer.Resolve <IIdentifierService>(); var identifier = identifierService.FindIdentifier(step1Wrapper.Control1Purse); if (null == identifier) { throw new PurseNotFoundException(string.Format(CultureInfo.InvariantCulture, Resources.FindIdentifierFormProvider_GetForm_Purse__0__not_found_, step1Wrapper.Control1Purse)); } var formattingService = context.UnityContainer.Resolve <IFormattingService>(); var step2Wrapper = new FindIdentifierFormValuesWrapper.Step2(list) { Control1WmId = formattingService.FormatIdentifier(identifier.Value) }; return(step2Wrapper.CollectIncomeValues()); case 1: return(new Dictionary <string, object>()); default: throw new InvalidOperationException("step == " + step); } }; if (!string.IsNullOrEmpty(purseNumber)) { form.Load += (sender, args) => { form.Submit(); } } ; return(form); } }
public void DisplayValue(ICertificate certificate) { if (null == certificate) { throw new ArgumentNullException(nameof(certificate)); } var imageKey = certificate.Degree.ToString(); if (certificate.Revoked) { imageKey = $"{imageKey}Revoked"; } mPictureBox.Image = certificateImageList.Images[imageKey]; // 1. Общая информация wmIdTextBox.Text = IdentifierDisplayHelper.FormatIdentifierWithAlias(_formattingService, certificate.Identifier, certificate.IdentifierAlias); certificateTextBox.Text = Translator.Instance.Translate(ExtensionCatalog.Certificate, certificate.Degree.ToString()); if (certificate.Revoked) { certificateTextBox.Font = new Font(certificateTextBox.Font, FontStyle.Strikeout); } if (null != certificate.Bl) { levelsTextBox.Text = $@"BL {certificate.Bl.Value}"; if (null != certificate.Tl) { levelsTextBox.Text += $@"; TL {certificate.Tl.Value}"; } } nameTextBox.Text = string.Format(CultureInfo.InvariantCulture, "{0} {1} {2}", certificate.FirstName, certificate.Surname, certificate.Patronymic); addressTextBox.Text = Combine(certificate.Country, certificate.Region, certificate.City, certificate.Address); contactsTextBox.Text = Combine(certificate.ContactPhone, certificate.Email, certificate.Icq, certificate.WebAddress); if (null != certificate.PositiveRating && null != certificate.NegativeRating) { var pos = Translator.Instance.Translate(ExtensionCatalog.Certificate, "POS"); var neg = Translator.Instance.Translate(ExtensionCatalog.Certificate, "NEG"); claimsTextBox.Text = $@"{pos} {certificate.PositiveRating ?? -1}; {neg} {certificate.NegativeRating ?? -1}"; } var certificateListItems = new List <ListItemContent> { // WMID ToListItemContent(Translator.Instance.Translate(ExtensionCatalog.Certificate, "WMID"), _formattingService.FormatIdentifier(certificate.Identifier), CertificateRecordAspects.Verified, GeneralInformationGroupName), // Название проекта, имя в сети ToListItemContent(Translator.Instance.Translate(ExtensionCatalog.Certificate, "Nickname"), certificate.IdentifierAlias, certificate.AliasAspects, GeneralInformationGroupName) }; // Дата регистрации в системе foreach (IAttachedIdentifierSummary identifierSummary in certificate.AttachedIdentifierSummaries) { if (identifierSummary.Identifier == certificate.Identifier) { certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Registration date"), _formattingService.FormatDateTime(identifierSummary.RegistrationDate), CertificateRecordAspects.Verified, GeneralInformationGroupName)); break; } } // 2. Аттестат // Тип аттестата var verificationStatus = certificate.Revoked ? Translator.Instance.Translate(ExtensionCatalog.Certificate, "Revoked") : Translator.Instance.Translate(ExtensionCatalog.Certificate, certificate.Degree.ToString()); certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Verification status"), verificationStatus, CertificateRecordAspects.Verified, CertificateGroupName)); // Дата получения аттестата certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Date of issue"), _formattingService.FormatDateTime(certificate.CreationTime), CertificateRecordAspects.Verified, CertificateGroupName)); // Кем выдан аттестат certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Issued by"), Combine(certificate.IssuerIdentifier.ToString("000000000000"), certificate.IssuerAlias), CertificateRecordAspects.Verified, CertificateGroupName)); // 3. Персональные данные владельца аттестата // Статус владельца var status = Translator.Instance.Translate(ExtensionCatalog.Certificate, certificate.Status.ToString()); certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Status"), status, CertificateRecordAspects.Verified, PersonalDataGroupName)); if (CertificateStatus.Entity == certificate.Status) { // На основании чего действует certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Based on"), certificate.Basis, certificate.BasisAspects, PersonalDataGroupName)); } // Фамилия certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Last name"), certificate.Surname, certificate.SurnameAspects, PersonalDataGroupName)); // Имя certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "First name"), certificate.FirstName, certificate.FirstNameAspects, PersonalDataGroupName)); // Отчество certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Middle name"), certificate.Patronymic, certificate.PatronymicAspects, PersonalDataGroupName)); // ИНН certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Tax ID"), certificate.OrganizationTaxId, certificate.OrganizationTaxIdAspects, PersonalDataGroupName)); // 4. Фактическое местонахождение владельца аттестата // Город/Страна certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Country"), certificate.Country, certificate.CountryAspects, ActualLocationGroupName)); certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Region"), certificate.Region, certificate.RegionAspects, ActualLocationGroupName)); certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "City"), certificate.City, certificate.CityAspects, ActualLocationGroupName)); // Почтовый индекс certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Postal code"), certificate.ZipCode, certificate.ZipCodeAspects, ActualLocationGroupName)); // Адрес certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Address"), certificate.Address, certificate.AddressAspects, ActualLocationGroupName)); // 5. Паспортные данные владельца аттестата // Номер паспорта certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Passport number"), certificate.PassportNumber, certificate.PassportNumberAspects, PassportDataGroupName)); // Когда выдан string dateOfIssue = null; if (null != certificate.PassportDate) { dateOfIssue = _formattingService.FormatDateTime(certificate.PassportDate.Value); } certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Date of issue"), dateOfIssue, certificate.PassportDateAspects, PassportDataGroupName)); // Где выдан - Город/Страна certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Issuing country"), certificate.PassportCountry, certificate.PassportCountryAspects, PassportDataGroupName)); certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Issuing city"), certificate.PassportCity, certificate.PassportCityAspects, PassportDataGroupName)); // Кем выдан certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Issued by (issuing authority)"), certificate.PassportIssuer, certificate.PassportIssuerAspects, PassportDataGroupName)); // Дата рождения certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Date of birth"), certificate.Birthday.ToString(), certificate.BirthdayAspects, PassportDataGroupName)); // Место рождения - Город/Страна certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Place of Birth"), certificate.Birthplace, certificate.BirthplaceAspects, PassportDataGroupName)); // Место постоянной регистрации - Город/Страна certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Country"), certificate.RegistrationCountry, certificate.RegistrationCountryAspects, PassportDataGroupName)); certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "City"), certificate.RegistrationCity, certificate.RegistrationCityAspects, PassportDataGroupName)); // Место постоянной регистрации - Адрес certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Address"), certificate.RegistrationAddress, certificate.RegistrationAddressAspects, PassportDataGroupName)); // 6. Контактная информация владельца аттестата // Контактный телефон certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Contact phone."), certificate.ContactPhone, certificate.ContactPhoneAspects, ContactDataGroupName)); // Факс certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Fax"), certificate.Fax, certificate.FaxAspects, ContactDataGroupName)); // Мобильный телефон certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Mobile phone"), certificate.CellPhone, certificate.CellPhoneAspects, ContactDataGroupName)); // Домашний телефон certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Home phone"), certificate.HomePhone, certificate.HomePhoneAspects, ContactDataGroupName)); // E-mail certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Email"), certificate.Email, certificate.EmailAspects, ContactDataGroupName)); // ICQ certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "ICQ UIN"), certificate.Icq, certificate.IcqAspects, ContactDataGroupName)); // Web-сайт certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Web site"), certificate.WebAddress, certificate.WebAddressAspects, ContactDataGroupName)); if (CertificateStatus.Entity == certificate.Status) { // 7. Информация об организации var appointment = Translator.Instance.Translate(ExtensionCatalog.Certificate, certificate.Appointment.ToString()); certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Appointment"), appointment, certificate.AppointmentAspects, OrganizationGroupName)); // Название организации certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Organization name"), certificate.OrganizationName, certificate.OrganizationNameAspects, OrganizationGroupName)); // ИНН certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Tax ID"), certificate.OrganizationTaxId, certificate.OrganizationTaxIdAspects, OrganizationGroupName)); // ОКПО certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Organization ID"), certificate.OrganizationId, certificate.OrganizationIdAspects, OrganizationGroupName)); // ОКВЭД certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Activity Number"), certificate.OrganizationActivityId, certificate.OrganizationActivityIdAspects, OrganizationGroupName)); // Директор (ФИО) certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Director"), certificate.OrganizationManager, certificate.OrganizationManagerAspects, OrganizationGroupName)); // Гл. бухгалтер (ФИО) certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Accountant"), certificate.OrganizationAccountant, certificate.OrganizationAccountantAspects, OrganizationGroupName)); // Юридический адрес - Город/Страна certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Country"), certificate.OrganizationCountry, certificate.OrganizationCountryAspects, OrganizationGroupName)); certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "City"), certificate.OrganizationCity, certificate.OrganizationCityAspects, OrganizationGroupName)); // Юридический адрес - Индекс certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Postal code"), certificate.OrganizationZipCode, certificate.OrganizationZipCodeAspects, OrganizationGroupName)); // Юридический адрес - Улица, дом certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Address"), certificate.OrganizationAddress, certificate.OrganizationAddressAspects, OrganizationGroupName)); // Банк certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Bank"), certificate.OrganizationBankName, certificate.OrganizationBankNameAspects, OrganizationGroupName)); // БИК certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Bank ID"), certificate.OrganizationBankId, certificate.OrganizationBankIdAspects, OrganizationGroupName)); // Корреспондентский счет certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Correspondent account"), certificate.OrganizationCorrAccount, certificate.OrganizationCorrAccountAspects, OrganizationGroupName)); // Расчетный счет certificateListItems.Add(ToListItemContent( Translator.Instance.Translate(ExtensionCatalog.Certificate, "Checking account"), certificate.OrganizationAccount, certificate.OrganizationAccountAspects, OrganizationGroupName)); } certificateTunableList.DisplayContent(certificateListItems); attachedIdentifierTunableList.DisplayContent(certificate.AttachedIdentifierSummaries .Select(ais => new ListItemContent(new AttachedIdentifierRecord(ais)) { ImageKey = imageKey }) .ToList()); }
public Form GetForm(PurseContext context) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var template = TemplateLoader.LoadSubmitFormTemplate(context.ExtensionManager, ExtensionCatalog.CreateTransfer); var origin = new AccountDropDownListOrigin(context.UnityContainer) { SelectedAccountNumber = context.Account.Number }; origin.FilterCriteria.HasMoney = true; origin.FilterCriteria.CurrencyCapabilities = CurrencyCapabilities.Transfer; var itemTemplates = AccountDisplayHelper.BuildAccountDropDownListItemTemplates(origin); var templateWrapper = new CreateTransferFormTemplateWrapper(template); templateWrapper.Control3FromPurse.Items.Clear(); templateWrapper.Control3FromPurse.Items.AddRange(itemTemplates); var form = new SubmitForm(); ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, form); var incomeValuesWrapper = new CreateTransferFormValuesWrapper { Control1TransferId = context.Session.SettingsService.AllocateTransferId() }; form.ApplyTemplate(template, incomeValuesWrapper.CollectIncomeValues()); form.ServiceCommand += (sender, args) => { if (!CreateTransferFormValuesWrapper.Control2ToPurseCommandFindIdentifier.Equals(args.Command)) { return; } IdentifierDisplayHelper.ShowFindIdentifierForm(form, context, (string)args.Argument); }; form.WorkCallback = (step, list) => { var valuesWrapper = new CreateTransferFormValuesWrapper(list); var transferService = context.UnityContainer.Resolve <ITransferService>(); var originalTransfer = new OriginalTransfer(valuesWrapper.Control1TransferId, valuesWrapper.Control3FromPurse, valuesWrapper.Control2ToPurse, valuesWrapper.Control4Amount, valuesWrapper.Control5Description); if (valuesWrapper.Control6UsePaymentProtection) { originalTransfer.ProtectionPeriod = valuesWrapper.Control7ProtectionPeriod; if (!valuesWrapper.Control9ProtectionByTime) { originalTransfer.ProtectionCode = valuesWrapper.Control8ProtectionCode; } } transferService.CreateTransfer(originalTransfer); return(new Dictionary <string, object>()); }; form.FinalAction = objects => { EventBroker.OnPurseChanged(new DataChangedEventArgs { FreshDataRequired = true }); return(true); }; return(form); }
public Form GetForm(SessionContext context) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var template = TemplateLoader.LoadTemplate <SubmitFormTemplate <WMColumnTemplate> >(context.ExtensionManager, ExtensionCatalog.VerifyClient); var step1TemplateWrapper = new VerifyClientFormTemplateWrapper.Step1(template); // Добавляем список валют var itemTemplates = AccountDisplayHelper.BuildCurrencyDropDownListItemTemplates(context.UnityContainer, CurrencyCapabilities.Invoice); step1TemplateWrapper.Control3PurseType.Items.Clear(); step1TemplateWrapper.Control3PurseType.Items.AddRange(itemTemplates); var form = new SubmitForm(); ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, form); form.ApplyTemplate(template); form.ServiceCommand += (sender, args) => { switch (args.Command) { case VerifyClientFormValuesWrapper.Step1.Control6WmidCommandFindPassport: var identifierValue = (string)args.Argument; IdentifierDisplayHelper.ShowFindCertificateForm(form, context, identifierValue); break; case "Copy": Clipboard.SetText(((ResultRecord)args.Argument).Value, TextDataFormat.UnicodeText); break; } }; form.WorkCallback = (step, list) => { switch (step) { case 0: { SuspectedClientInfo suspectedClientInfo; var step1Wrapper = new VerifyClientFormValuesWrapper.Step1(list); var exchangeType = (ExchangeType)Enum.Parse(typeof(ExchangeType), step1Wrapper.Control1Instrument); var currency = context.UnityContainer.Resolve <ICurrencyService>() .RemovePrefix(step1Wrapper.Control3PurseType); long identifier = long.Parse(step1Wrapper.Control6Wmid); switch (exchangeType) { case ExchangeType.Cash: suspectedClientInfo = SuspectedClientInfo.CreateCashPaymentVerification( currency, step1Wrapper.Control4Amount, identifier, step1Wrapper.Control9PassportNumber, step1Wrapper.Control7FirstName, step1Wrapper.Control8SecondName); break; case ExchangeType.OfflineSystem: suspectedClientInfo = SuspectedClientInfo.CreateOfflineSystemPaymentVerification( currency, step1Wrapper.Control4Amount, identifier, step1Wrapper.Control7FirstName, step1Wrapper.Control8SecondName); break; case ExchangeType.BankAccount: suspectedClientInfo = SuspectedClientInfo.CreateBankAccountPaymentVerification( currency, step1Wrapper.Control4Amount, identifier, step1Wrapper.Control7FirstName, step1Wrapper.Control8SecondName, step1Wrapper.Control10BankName, step1Wrapper.Control11BankAccount); break; case ExchangeType.Bankcard: suspectedClientInfo = SuspectedClientInfo.CreateBankCardPaymentVerification( currency, step1Wrapper.Control4Amount, identifier, step1Wrapper.Control7FirstName, step1Wrapper.Control8SecondName, step1Wrapper.Control10BankName, step1Wrapper.Control12CardNumber); break; case ExchangeType.InternetSystem: var paymentSystem = (PaymentSystem)Enum.Parse(typeof(PaymentSystem), step1Wrapper.Control13PaymentSystem); suspectedClientInfo = SuspectedClientInfo.CreateInternetSystemPaymentVerification( currency, step1Wrapper.Control4Amount, identifier, paymentSystem, step1Wrapper.Control14PaymentSystemClientId); break; case ExchangeType.Sms: suspectedClientInfo = SuspectedClientInfo.CreateSmsPaymentVerification( currency, step1Wrapper.Control4Amount, identifier, step1Wrapper.Control15Phone); break; case ExchangeType.Mobile: suspectedClientInfo = SuspectedClientInfo.CreateMobilePaymentVerification( currency, step1Wrapper.Control4Amount, identifier, step1Wrapper.Control15Phone); break; case ExchangeType.Blockchain: var cryptoCurrency = (CryptoCurrency)Enum.Parse(typeof(CryptoCurrency), step1Wrapper.Control16CryptoCurrency); suspectedClientInfo = SuspectedClientInfo.CreateBlockchainPaymentVerification( currency, step1Wrapper.Control4Amount, identifier, cryptoCurrency, step1Wrapper.Control17CryptoCurrencyAddress); break; default: throw new InvalidOperationException( "valuesWrapper.Control1Instrument == " + step1Wrapper.Control1Instrument); } suspectedClientInfo.Output = step1Wrapper.Control2Direction.Equals(VerifyClientFormValuesWrapper .Step1.Control2DirectionValueOutput); var verificationService = context.UnityContainer.Resolve <IVerificationService>(); var verificationReport = verificationService.VerifyClient(suspectedClientInfo); var listItems = new List <ListItemContent> { new ListItemContent(new ResultRecord("Client name", verificationReport.ClientName)), new ListItemContent(new ResultRecord("Client middle name", verificationReport.ClientMiddleName)), new ListItemContent(new ResultRecord("Reference", verificationReport.Reference)) }; var step2Wrapper = new VerifyClientFormValuesWrapper.Step2 { Control1Result = listItems }; return(step2Wrapper.CollectIncomeValues()); } case 1: return(new Dictionary <string, object>()); default: throw new InvalidOperationException("step == " + step); } }; return(form); }
public Form GetForm(TransferContext context) { if (null == context) { throw new ArgumentNullException(nameof(context)); } var transfer = context.Transfer; var template = TemplateLoader.LoadSubmitFormTemplate(context.ExtensionManager, TransferType.Protected == context.Transfer.Type ? ExtensionCatalog.RejectProtection : ExtensionCatalog.Moneyback); var templateWrapper = new MoneybackFormTemplateWrapper(template); var currencyService = context.UnityContainer.Resolve <ICurrencyService>(); templateWrapper.Control6ReturnAmount.CurrencyName = currencyService.AddPrefix(currencyService.ObtainCurrencyByAccountNumber(transfer.SourcePurse)); templateWrapper.Control6ReturnAmount.AvailableAmount = transfer.Amount; templateWrapper.Control6ReturnAmount.DefaultValue = transfer.Amount; var form = new SubmitForm(); ErrorFormDisplayHelper.ApplyErrorAction(context.ExtensionManager, form); var formattingService = context.UnityContainer.Resolve <IFormattingService>(); var incomeValuesWrapper = new MoneybackFormValuesWrapper { Control1SourcePurse = transfer.SourcePurse, Control2TargetPurse = transfer.TargetPurse, Control3Amount = formattingService.FormatAmount(transfer.Amount), Control4Description = transfer.Description }; form.ApplyTemplate(template, incomeValuesWrapper.CollectIncomeValues()); form.ServiceCommand += (sender, args) => { if (!MoneybackFormValuesWrapper.Control1SourcePurseCommandFindIdentifier.Equals(args.Command)) { return; } var purseNumber = (string)args.Argument; IdentifierDisplayHelper.ShowFindIdentifierForm(form, context, purseNumber); }; form.WorkCallback = (step, list) => { var valuesWrapper = new MoneybackFormValuesWrapper(list); var transferService = context.UnityContainer.Resolve <ITransferService>(); if (TransferType.Protected == context.Transfer.Type) { transferService.RejectProtection(transfer.PrimaryId); } else { transferService.Moneyback(transfer.PrimaryId, valuesWrapper.Control5ReturnAmount); } return(new Dictionary <string, object>()); }; return(form); }