This commit is contained in:
Frede Hundewadt 2022-11-28 10:37:59 +01:00
parent 232b61949a
commit f4d96ec774
6 changed files with 71 additions and 76 deletions

View file

@ -1,4 +1,5 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/UserDictionary/Words/=Affero/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Bestilling/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=Bestilling/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=kontrolleres/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=kontrolleres/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Venligst/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=Venligst/@EntryIndexedValue">True</s:Boolean>

View file

@ -27,7 +27,7 @@
<text>Checker autorisation ...</text> <text>Checker autorisation ...</text>
</Authorizing> </Authorizing>
</AuthorizeRouteView> </AuthorizeRouteView>
<FocusOnNavigate RouteData="@routeData" Selector="h1"/> <FocusOnNavigate RouteData="@routeData" Selector="h2"/>
</Found> </Found>
<NotFound> <NotFound>
<LayoutView Layout="@typeof(MainLayout)"> <LayoutView Layout="@typeof(MainLayout)">

View file

@ -36,12 +36,12 @@ builder.RootComponents.Add<HeadOutlet>("head::after");
builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging"));
builder.Services.AddScoped(sp => builder.Services.AddScoped(sp =>
sp.GetService<IHttpClientFactory>().CreateClient("InnoAPI")); sp.GetService<IHttpClientFactory>().CreateClient("backend"));
builder.Services.AddHttpClient("InnoAPI", (sp, cl) => builder.Services.AddHttpClient("backend", (sp, cl) =>
{ {
var apiConfig = sp.GetRequiredService<IOptions<ApiConfig>>(); var apiConfig = sp.GetRequiredService<IOptions<ApiConfig>>();
cl.BaseAddress = new Uri(apiConfig.Value.ApiBaseUrl); cl.BaseAddress = new Uri(apiConfig.Value.BaseUrl);
cl.DefaultRequestHeaders.CacheControl = CacheControlHeaderValue.Parse("no-cache, no-store, must-revalidate"); cl.DefaultRequestHeaders.CacheControl = CacheControlHeaderValue.Parse("no-cache, no-store, must-revalidate");
cl.DefaultRequestHeaders.Add("Pragma", "no-cache"); cl.DefaultRequestHeaders.Add("Pragma", "no-cache");
cl.EnableIntercept(sp); cl.EnableIntercept(sp);
@ -49,37 +49,45 @@ builder.Services.AddHttpClient("InnoAPI", (sp, cl) =>
builder.Services.AddBlazoredToast(); builder.Services.AddBlazoredToast();
builder.Services.AddHttpClientInterceptor(); builder.Services.AddHttpClientInterceptor();
// api config object
builder.Services.Configure<ApiConfig>(builder.Configuration.GetSection("ApiConfig")); builder.Services.Configure<ApiConfig>(builder.Configuration.GetSection("ApiConfig"));
// app info object
builder.Services.Configure<AppInfo>(builder.Configuration.GetSection("AppInfo")); builder.Services.Configure<AppInfo>(builder.Configuration.GetSection("AppInfo"));
// crm repositories
builder.Services.AddScoped<ICatalogHttpRepository, CatalogHttpRepository>();
builder.Services.AddScoped<ICrmCompanyHttpRepository, CrmCompanyHttpRepository>();
builder.Services.AddScoped<ICrmActivityHttpRepository, CrmActivityHttpRepository>(); builder.Services.AddScoped<ICrmActivityHttpRepository, CrmActivityHttpRepository>();
builder.Services.AddScoped<ICrmCompanyHttpRepository, CrmCompanyHttpRepository>();
builder.Services.AddScoped<ICrmContactHttpRepository, CrmContactHttpRepository>();
builder.Services.AddScoped<ICrmHistoryHttpRepository, CrmHistoryHttpRepository>();
builder.Services.AddScoped<ICrmReportHttpRepository, CrmReportHttpRepository>(); builder.Services.AddScoped<ICrmReportHttpRepository, CrmReportHttpRepository>();
builder.Services.AddScoped<ICrmTaskItemHttpRepository, CrmTaskItemHttpRepository>(); builder.Services.AddScoped<ICrmTaskItemHttpRepository, CrmTaskItemHttpRepository>();
builder.Services.AddScoped<ICrmHistoryHttpRepository, CrmHistoryHttpRepository>();
builder.Services.AddScoped<ICrmWorkplaceHttpRepository, CrmWorkplaceHttpRepository>(); builder.Services.AddScoped<ICrmWorkplaceHttpRepository, CrmWorkplaceHttpRepository>();
builder.Services.AddScoped<ICrmContactHttpRepository, CrmContactHttpRepository>(); // administrative repositories
builder.Services.AddScoped<IOfficeUserHttpRepository, OfficeUserHttpRepository>(); builder.Services.AddScoped<IOfficeUserHttpRepository, OfficeUserHttpRepository>();
builder.Services.AddScoped<IOfficeReportHttpRepository, OfficeReportHttpRepository>(); builder.Services.AddScoped<IOfficeReportHttpRepository, OfficeReportHttpRepository>();
builder.Services.AddScoped<IOfficeCustomerHttpRepository, OfficeCustomerHttpRepository>(); builder.Services.AddScoped<IOfficeCustomerHttpRepository, OfficeCustomerHttpRepository>();
// warehouse repository
builder.Services.AddScoped<IWarehouseHttpRepository, WarehouseHttpRepository>(); builder.Services.AddScoped<IWarehouseHttpRepository, WarehouseHttpRepository>();
// catalog repository
builder.Services.AddScoped<ICatalogHttpRepository, CatalogHttpRepository>();
// mail service
builder.Services.AddScoped<ISendMailService, SendMailService>(); builder.Services.AddScoped<ISendMailService, SendMailService>();
// interceptor
builder.Services.AddScoped<HttpInterceptorService>(); builder.Services.AddScoped<HttpInterceptorService>();
// storage
builder.Services.AddBlazoredLocalStorage(); builder.Services.AddBlazoredLocalStorage();
// authorization
builder.Services.AddAuthorizationCore(); builder.Services.AddAuthorizationCore();
// authentication state provider
builder.Services.AddScoped<AuthenticationStateProvider, AuthStateProvider>(); builder.Services.AddScoped<AuthenticationStateProvider, AuthStateProvider>();
// authentication service
builder.Services.AddScoped<IAuthenticationService, AuthenticationService>(); builder.Services.AddScoped<IAuthenticationService, AuthenticationService>();
// refresh token service
builder.Services.AddScoped<RefreshTokenService>(); builder.Services.AddScoped<RefreshTokenService>();
// vat registry service
builder.Services.AddScoped<VatInfoLookupService>(); builder.Services.AddScoped<VatInfoLookupService>();
// preference service
builder.Services.AddScoped<PreferenceService>(); builder.Services.AddScoped<PreferenceService>();
// activity draft service
builder.Services.AddScoped<OrderDraftService>(); builder.Services.AddScoped<OrderDraftService>();

View file

@ -56,7 +56,7 @@ namespace Wonky.Client.Services
}; };
var response = await _client var response = await _client
.PostAsync(_apiConfig.Value.Token, new FormUrlEncodedContent(credForm)); .PostAsync(_apiConfig.Value.ServicesAuth, new FormUrlEncodedContent(credForm));
var resContent = await response.Content.ReadAsStringAsync(); var resContent = await response.Content.ReadAsStringAsync();
@ -91,7 +91,7 @@ namespace Wonky.Client.Services
["grant_type"] = "refresh_token", ["grant_type"] = "refresh_token",
["refresh_token"] = refreshToken ["refresh_token"] = refreshToken
}; };
var response = await _client.PostAsync(_apiConfig.Value.Token, new FormUrlEncodedContent(credentials)); var response = await _client.PostAsync(_apiConfig.Value.ServicesAuth, new FormUrlEncodedContent(credentials));
if (!response.IsSuccessStatusCode) if (!response.IsSuccessStatusCode)
return string.Empty; return string.Empty;

View file

@ -1,13 +1,13 @@
{ {
"appInfo": { "appInfo": {
"name": "Wonky Client", "name": "Wonky Client",
"version": "0.53.2", "version": "0.60.1",
"rc": true, "rc": true,
"sandBox": false, "sandBox": true,
"image": "grumpy-coder.png" "image": "grumpy-coder.png"
}, },
"apiConfig": { "apiConfig": {
"apiBaseUrl": "https://zeta.innotec.dk", "baseUrl": "https://dev.innotec.dk",
"catalog": "api/v2/catalog", "catalog": "api/v2/catalog",
"crmCustomers": "api/v2/crm/companies", "crmCustomers": "api/v2/crm/companies",
"crmInventoryExt": "history/inventory", "crmInventoryExt": "history/inventory",
@ -15,7 +15,7 @@
"crmReports": "api/v2/crm/advisors/reports", "crmReports": "api/v2/crm/advisors/reports",
"crmActivities": "api/v2/crm/advisors/activities", "crmActivities": "api/v2/crm/advisors/activities",
"crmRpcSyncExt": "invoices/sync", "crmRpcSyncExt": "invoices/sync",
"crmBaseTasks": "api/v2/crm/advisors/tasks", "crmTasks": "api/v2/crm/advisors/tasks",
"crmWorkplaceExt": "workplaces", "crmWorkplaceExt": "workplaces",
"officeAdvisors": "api/v2/office/users/advisors", "officeAdvisors": "api/v2/office/users/advisors",
"officeCustomers": "api/v2/office/customers", "officeCustomers": "api/v2/office/customers",
@ -28,7 +28,7 @@
"servicesVatDk": "api/v2/services/virk", "servicesVatDk": "api/v2/services/virk",
"serviceVatEu": "api/v2/services/vies", "serviceVatEu": "api/v2/services/vies",
"servicesVatNo": "api/v2/services/brReg", "servicesVatNo": "api/v2/services/brReg",
"token": "token", "servicesAuth": "token",
"userInfo": "api/auth/userinfo", "userInfo": "api/auth/userinfo",
"warehouse": "api/v2/warehouse/packages" "warehouse": "api/v2/warehouse/packages"
}, },

View file

@ -19,42 +19,7 @@ public class ApiConfig
/// <summary> /// <summary>
/// Application base url /// Application base url
/// </summary> /// </summary>
public string ApiBaseUrl { get; set; } = ""; public string BaseUrl { get; set; } = "";
/// <summary>
/// GLS tracking url
/// </summary>
public string ServicesGlsTrackUrl { get; set; } = "";
/// <summary>
/// GLS customer entity
/// </summary>
public string ServicesGlsId { get; set; } = "";
/// <summary>
/// VAT registrar url Denmark
/// </summary>
public string ServicesVatDk { get; set; } = "";
/// <summary>
/// VAT registrar url Norway
/// </summary>
public string ServicesVatNo { get; set; } = "";
/// <summary>
/// VAT registrar url EU
/// </summary>
public string ServicesVatEu { get; set; } = "";
/// <summary>
/// Application uri for token request
/// </summary>
public string Token { get; set; } = "";
/// <summary>
/// Application uri for user information request
/// </summary>
public string UserInfo { get; set; } = "";
/// <summary> /// <summary>
/// Application uri for product catalog request /// Application uri for product catalog request
@ -127,27 +92,48 @@ public class ApiConfig
public string OfficeReports { get; set; } = ""; public string OfficeReports { get; set; } = "";
/// <summary> /// <summary>
/// Uri for warehouse requests /// Application uri for token request
/// </summary> /// </summary>
public string Warehouse { get; set; } = ""; public string ServicesAuth { get; set; } = "";
/// <summary>
/// GLS tracking url
/// </summary>
public string ServicesGlsTrackUrl { get; set; } = "";
/// <summary>
/// GLS customer entity
/// </summary>
public string ServicesGlsId { get; set; } = "";
/// <summary> /// <summary>
/// url for sending mail message /// url for sending mail message
/// </summary> /// </summary>
public string ServicesMail { get; set; } = ""; public string ServicesMail { get; set; } = "";
// /// <summary>
// /// Application uri for reading salesReports /// <summary>
// /// </summary> /// VAT registrar url Denmark
// public string AdminReport { get; set; } = ""; /// </summary>
// public string ServicesVatDk { get; set; } = "";
// /// <summary>
// /// Application uri for handling external customer login /// <summary>
// /// </summary> /// VAT registrar url Norway
// public string AdminCompany { get; set; } = ""; /// </summary>
public string ServicesVatNo { get; set; } = "";
// public string KrvVariantsUri { get; set; } = "";
// public string KrvProductsUri { get; set; } = ""; /// <summary>
// public string ImageUploadUri { get; set; } = ""; /// VAT registrar url EU
// public string UserRegistrationUri { get; set; } = ""; /// </summary>
public string ServicesVatEu { get; set; } = "";
/// <summary>
/// Application uri for user information request
/// </summary>
public string UserInfo { get; set; } = "";
/// <summary>
/// Uri for warehouse requests
/// </summary>
public string Warehouse { get; set; } = "";
} }