123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- using System;
- using System.Collections.Generic;
- using System.Diagnostics.CodeAnalysis;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Windows.Data;
- using InABox.Clients;
- using InABox.Configuration;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.WPF;
- using PRS.Shared;
- using Stripe;
- namespace PRSServer.Forms.DatabaseLicense;
- public class LicenseRegistrationGrid : DynamicGrid<LicenseRegistrationDetails>
- {
- public override void LoadEditorButtons(LicenseRegistrationDetails item, DynamicEditorButtons buttons)
- {
- base.LoadEditorButtons(item, buttons);
- buttons.Add("Get Info", null, null, (sender, o) => LoadCompanyInfo(sender));
- }
- protected override void Reload(Filters<LicenseRegistrationDetails> criteria, Columns<LicenseRegistrationDetails> columns, ref SortOrder<LicenseRegistrationDetails>? sort, Action<CoreTable, Exception> action)
- {
- }
-
- protected override LicenseRegistrationDetails LoadItem(CoreRow row)
- {
- return new LicenseRegistrationDetails();
- }
-
- protected override void DoValidate(LicenseRegistrationDetails[] items, List<string> errors)
- {
- base.DoValidate(items, errors);
- var validates = new Dictionary<String,Func<LicenseRegistrationDetails,String>>()
- {
- // { nameof(LicenseRegistrationDetails.Company.CompanyName), x=>x.Company.CompanyName },
- // { nameof(LicenseRegistrationDetails.Company.ABN), x=>x.Company.ABN },
- // { nameof(LicenseRegistrationDetails.Company.Email), x=>x.Company.Email },
- // { nameof(LicenseRegistrationDetails.Company.Telephone), x=>x.Company.Telephone },
- // { nameof(LicenseRegistrationDetails.Company.PostalAddress.Street), x=>x.Company.PostalAddress.Street },
- // { nameof(LicenseRegistrationDetails.Company.PostalAddress.City), x=>x.Company.PostalAddress.City },
- // { nameof(LicenseRegistrationDetails.Company.PostalAddress.State), x=>x.Company.PostalAddress.State },
- // { nameof(LicenseRegistrationDetails.Company.PostalAddress.PostCode), x=>x.Company.PostalAddress.PostCode },
- // { nameof(LicenseRegistrationDetails.Card.CardNumber), x=>x.Card.CardNumber },
- // { nameof(LicenseRegistrationDetails.Card.Month), x=>x.Card.Month },
- // { nameof(LicenseRegistrationDetails.Card.Year), x=>x.Card.Year },
- // { nameof(LicenseRegistrationDetails.Card.Cvv), x=>x.Card.Cvv },
- };
-
- foreach (var key in validates.Keys)
- {
- if (items.Any(x => string.IsNullOrWhiteSpace(validates[key](x))))
- errors.Add($"{key.SplitCamelCase()} may not be blank!");
- }
- }
- public override void SaveItem(LicenseRegistrationDetails item)
- {
-
- }
- protected override void DeleteItems(params CoreRow[] rows)
- {
-
- }
- protected override void Init()
- {
-
- }
- protected override void DoReconfigure(FluentList<DynamicGridOption> options)
- {
-
- }
-
- public void LoadCompanyInfo(object sender)
- {
-
-
- if (sender is EmbeddedDynamicEditorForm form)
- {
-
- var info = new Client<CompanyInformation>().Query().Rows.FirstOrDefault()?.ToObject<CompanyInformation>() ??
- new CompanyInformation();
-
- void UpdateEditor(Expression<Func<LicenseRegistrationDetails,String>> property, String value)
- {
- var editor = form.FindEditor(CoreUtils.GetFullPropertyName(property,"."));
- editor.SetValue("Value",value);
- }
-
- UpdateEditor(x=>x.Company.CompanyName, info.CompanyName);
- UpdateEditor(x=>x.Company.ABN, info.ABN);
- UpdateEditor(x=>x.Company.Telephone, info.Telephone);
- UpdateEditor(x=>x.Company.Email, info.Email);
- UpdateEditor(x=>x.Company.PostalAddress.Street, info.PostalAddress.Street);
- UpdateEditor(x=>x.Company.PostalAddress.City, info.PostalAddress.City);
- UpdateEditor(x=>x.Company.PostalAddress.State, info.PostalAddress.State);
- UpdateEditor(x=>x.Company.PostalAddress.PostCode, info.PostalAddress.PostCode);
- UpdateEditor(x=>x.Company.DeliveryAddress.Street, info.DeliveryAddress.Street);
- UpdateEditor(x=>x.Company.DeliveryAddress.City, info.DeliveryAddress.City);
- UpdateEditor(x=>x.Company.DeliveryAddress.State, info.DeliveryAddress.State);
- UpdateEditor(x=>x.Company.DeliveryAddress.PostCode, info.DeliveryAddress.PostCode);
- }
- }
- }
|