Supervisor functionality

This commit is contained in:
Frede Hundewadt 2023-03-18 16:01:22 +01:00
parent defb654022
commit a03af89686
136 changed files with 994 additions and 436 deletions

View file

@ -13,6 +13,7 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] // along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
*@ *@
@using Wonky.Client.Pages
<CascadingAuthenticationState> <CascadingAuthenticationState>
<DraftStateProvider> <DraftStateProvider>
@ -30,7 +31,7 @@
</Found> </Found>
<NotFound> <NotFound>
<LayoutView Layout="@typeof(MainLayout)"> <LayoutView Layout="@typeof(MainLayout)">
<Page404/> <ErrorPage404 />
</LayoutView> </LayoutView>
</NotFound> </NotFound>
</Router> </Router>

View file

@ -29,7 +29,7 @@ namespace Wonky.Client.Components;
public partial class AdvisorCustomerListComponent public partial class AdvisorCustomerListComponent
{ {
[Parameter] public List<CompanyDto> CompanyList { get; set; } = new(); [Parameter] public List<CompanyModel> CompanyList { get; set; } = new();
[Parameter] public EventCallback<string> OnDelete { get; set; } [Parameter] public EventCallback<string> OnDelete { get; set; }
[Parameter] public EventCallback<string> OnSelect { get; set; } [Parameter] public EventCallback<string> OnSelect { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }

View file

@ -87,6 +87,6 @@
@code{ @code{
[Parameter] [Parameter]
public ReportFiguresDto ReportData { get; set; } = new(); public ReportFiguresModel ReportData { get; set; } = new();
} }

View file

@ -32,7 +32,7 @@ public partial class CatalogGroupComponent
private async Task OnSelectionChanged(ChangeEventArgs e) private async Task OnSelectionChanged(ChangeEventArgs e)
{ {
var val = e.Value.ToString(); var val = e.Value!.ToString();
if (val == "-1") return; if (val == "-1") return;
await OnChanged.InvokeAsync(val); await OnChanged.InvokeAsync(val);
} }

View file

@ -15,10 +15,11 @@
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
using Wonky.Entity.DTO; using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.Components; namespace Wonky.Client.Components;
public partial class OfficeCountryAdvisorListComponent public partial class OfficeCountryAdvisorListComponent
{ {
[Parameter] public List<UserManagerListView> UserList { get; set; } = new(); [Parameter] public List<UserInfoListView> UserList { get; set; } = new();
} }

View file

@ -34,7 +34,7 @@ public partial class OfficeCountryCustomerListComponent
// ****************************************************** // ******************************************************
// parameters // parameters
[Parameter] public string CountryCode { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = "";
[Parameter] public List<CompanyDto> CompanyList { get; set; } = new(); [Parameter] public List<CompanyModel> CompanyList { get; set; } = new();
// [Parameter] public EventCallback<DraftItem> OnOrderItem { get; set; } // [Parameter] public EventCallback<DraftItem> OnOrderItem { get; set; }
[CascadingParameter] public DraftStateProvider DraftProvider { get; set; } [CascadingParameter] public DraftStateProvider DraftProvider { get; set; }
@ -54,7 +54,7 @@ public partial class OfficeCountryCustomerListComponent
private InvoiceListView InvoiceList { get; set; } = new(); private InvoiceListView InvoiceList { get; set; } = new();
private List<ReportItemView> ActivityList { get; set; } = new(); private List<ReportItemView> ActivityList { get; set; } = new();
private List<ProductInventoryView> ProductList { get; set; } = new(); private List<ProductInventoryView> ProductList { get; set; } = new();
private CompanyDto SelectedCompany { get; set; } = new(); private CompanyModel SelectedCompany { get; set; } = new();
// ****************************************************** // ******************************************************
// functions // functions

View file

@ -15,7 +15,7 @@
@using Wonky.Client.Helpers @using Wonky.Client.Helpers
@using Wonky.Client.Helpers
@if (ActivityList.Any()) @if (ActivityList.Any())
{ {
<table class="table table-sm table-bordered d-print-table table-striped"> <table class="table table-sm table-bordered d-print-table table-striped">

View file

@ -21,7 +21,7 @@
<thead> <thead>
<tr class="bg-dark text-white opacity-75 border-bottom"> <tr class="bg-dark text-white opacity-75 border-bottom">
<th></th> <th></th>
<th class="text-center" colspan="2" scope="col">Dagens Demo @(ReportData.NewDemoCount + ReportData.RecallDemoCount)</th> <th class="text-center" colspan="2" scope="col">Dagens Demo @(ReportDataView.NewDemoCount + ReportDataView.RecallDemoCount)</th>
<th class="text-center border-end" colspan="2" scope="col">Dagens Resultat</th> <th class="text-center border-end" colspan="2" scope="col">Dagens Resultat</th>
<th class="text-center" colspan="4" scope="col">Måneds Resultat</th> <th class="text-center" colspan="4" scope="col">Måneds Resultat</th>
</tr> </tr>
@ -40,47 +40,47 @@
</tr> </tr>
<tr> <tr>
<th scope="row">N</th> <th scope="row">N</th>
<td class="text-end">@ReportData.NewVisitCount</td> <td class="text-end">@ReportDataView.NewVisitCount</td>
<td class="text-end">@ReportData.NewDemoCount</td> <td class="text-end">@ReportDataView.NewDemoCount</td>
<td class="text-end">@ReportData.NewSaleCount</td> <td class="text-end">@ReportDataView.NewSaleCount</td>
<td class="text-end border-end">@ReportData.NewTurnover</td> <td class="text-end border-end">@ReportDataView.NewTurnover</td>
<td class="text-end">@ReportData.NewVisitCountMonth</td> <td class="text-end">@ReportDataView.NewVisitCountMonth</td>
<td class="text-end">@ReportData.NewDemoCountMonth</td> <td class="text-end">@ReportDataView.NewDemoCountMonth</td>
<td class="text-end">@ReportData.NewSaleCountMonth</td> <td class="text-end">@ReportDataView.NewSaleCountMonth</td>
<td class="text-end">@ReportData.NewTurnoverMonth</td> <td class="text-end">@ReportDataView.NewTurnoverMonth</td>
</tr> </tr>
<tr> <tr>
<th scope="row">R</th> <th scope="row">R</th>
<td class="text-end">@ReportData.RecallVisitCount</td> <td class="text-end">@ReportDataView.RecallVisitCount</td>
<td class="text-end">@ReportData.RecallDemoCount</td> <td class="text-end">@ReportDataView.RecallDemoCount</td>
<td class="text-end">@ReportData.RecallSaleCount</td> <td class="text-end">@ReportDataView.RecallSaleCount</td>
<td class="text-end border-end">@ReportData.RecallTurnover</td> <td class="text-end border-end">@ReportDataView.RecallTurnover</td>
<td class="text-end">@ReportData.RecallVisitCountMonth</td> <td class="text-end">@ReportDataView.RecallVisitCountMonth</td>
<td class="text-end">@ReportData.RecallDemoCountMonth</td> <td class="text-end">@ReportDataView.RecallDemoCountMonth</td>
<td class="text-end">@ReportData.RecallSaleCountMonth</td> <td class="text-end">@ReportDataView.RecallSaleCountMonth</td>
<td class="text-end">@ReportData.RecallTurnoverMonth</td> <td class="text-end">@ReportDataView.RecallTurnoverMonth</td>
</tr> </tr>
<tr> <tr>
<th scope="row">SAS</th> <th scope="row">SAS</th>
<td class="bg-light"></td> <td class="bg-light"></td>
<td class="bg-light"></td> <td class="bg-light"></td>
<td class="text-end">@ReportData.SasCount</td> <td class="text-end">@ReportDataView.SasCount</td>
<td class="text-end border-end">@ReportData.SasTurnover</td> <td class="text-end border-end">@ReportDataView.SasTurnover</td>
<td class="bg-light"></td> <td class="bg-light"></td>
<td class="bg-light"></td> <td class="bg-light"></td>
<td class="text-end">@ReportData.SasCountMonth</td> <td class="text-end">@ReportDataView.SasCountMonth</td>
<td class="text-end">@ReportData.SasTurnoverMonth</td> <td class="text-end">@ReportDataView.SasTurnoverMonth</td>
</tr> </tr>
<tr> <tr>
<th scope="row">TOTAL</th> <th scope="row">TOTAL</th>
<td class="text-end">@ReportData.TotalVisitCount</td> <td class="text-end">@ReportDataView.TotalVisitCount</td>
<td class="text-end">@ReportData.TotalDemoCount</td> <td class="text-end">@ReportDataView.TotalDemoCount</td>
<td class="text-end">@ReportData.TotalSaleCount</td> <td class="text-end">@ReportDataView.TotalSaleCount</td>
<td class="text-end border-end">@ReportData.TotalTurnover</td> <td class="text-end border-end">@ReportDataView.TotalTurnover</td>
<td class="text-end">@ReportData.TotalVisitCountMonth</td> <td class="text-end">@ReportDataView.TotalVisitCountMonth</td>
<td class="text-end">@ReportData.TotalDemoCountMonth</td> <td class="text-end">@ReportDataView.TotalDemoCountMonth</td>
<td class="text-end">@ReportData.TotalSaleCountMonth</td> <td class="text-end">@ReportDataView.TotalSaleCountMonth</td>
<td class="text-end">@ReportData.TotalTurnoverMonth</td> <td class="text-end">@ReportDataView.TotalTurnoverMonth</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -88,5 +88,5 @@
</div> </div>
@code{ @code{
[Parameter] public ReportData ReportData { get; set; } = new(); [Parameter] public ReportDataView ReportDataView { get; set; } = new();
} }

View file

@ -26,27 +26,27 @@
<tbody> <tbody>
<tr> <tr>
<th scope="row">Aften</th> <th scope="row">Aften</th>
<td class="text-end">@ReportData.KmEvening</td> <td class="text-end">@ReportDataView.KmEvening</td>
</tr> </tr>
<tr> <tr>
<th scope="row">Morgen</th> <th scope="row">Morgen</th>
<td class="text-end">@ReportData.KmMorning</td> <td class="text-end">@ReportDataView.KmMorning</td>
</tr> </tr>
<tr> <tr>
<th scope="row">Kørt Dag</th> <th scope="row">Kørt Dag</th>
<td class="text-end">@ReportData.Distance</td> <td class="text-end">@ReportDataView.Distance</td>
</tr> </tr>
<tr> <tr>
<th scope="row">Kørt Md.</th> <th scope="row">Kørt Md.</th>
<td class="text-end">@ReportData.DistanceMonth</td> <td class="text-end">@ReportDataView.DistanceMonth</td>
</tr> </tr>
<tr> <tr>
<th scope="row">Privat</th> <th scope="row">Privat</th>
<td class="text-end">@ReportData.DistancePrivate</td> <td class="text-end">@ReportDataView.DistancePrivate</td>
</tr> </tr>
<tr> <tr>
<th scope="row">Privat Md.</th> <th scope="row">Privat Md.</th>
<td class="text-end">@ReportData.DistancePrivateMonth</td> <td class="text-end">@ReportDataView.DistancePrivateMonth</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View file

@ -20,6 +20,6 @@ namespace Wonky.Client.Components;
public partial class ReportDistanceLedgerComponent public partial class ReportDistanceLedgerComponent
{ {
[Parameter] public ReportData ReportData { get; set; } = new(); [Parameter] public ReportDataView ReportDataView { get; set; } = new();
} }

View file

@ -24,20 +24,20 @@
<tbody> <tbody>
<tr> <tr>
<th scope="row">Beskrivelse</th> <th scope="row">Beskrivelse</th>
<td colspan="2">@ReportData.Description</td> <td colspan="2">@ReportDataView.Description</td>
</tr> </tr>
<tr> <tr>
<th scope="row">Supervisor</th> <th scope="row">Supervisor</th>
<td colspan="2">@ReportData.SupervisedBy</td> <td colspan="2">@ReportDataView.SupervisedBy</td>
</tr> </tr>
<tr> <tr>
<th scope="row">Dækkende</th> <th scope="row">Dækkende</th>
<td colspan="2"> <td colspan="2">
@{ @{
switch (ReportData.DayTypeEnum) switch (ReportDataView.DayTypeEnum)
{ {
case "Sales": case "Sales":
<span>Salgsdag @ReportData.SalesDayNumber</span> <span>Salgsdag @ReportDataView.SalesDayNumber</span>
break; break;
case "SickLeave": case "SickLeave":
<span>Sygefravær</span> <span>Sygefravær</span>
@ -65,16 +65,16 @@
<th scope="row">Periode</th> <th scope="row">Periode</th>
<td> <td>
@{ @{
switch (ReportData.DayTypeEnum) switch (ReportDataView.DayTypeEnum)
{ {
case "Sales": case "Sales":
<span>@(ReportData.FromDateTime.Split(" ")[1])</span> <span>@(ReportDataView.FromDateTime.Split(" ")[1])</span>
break; break;
case "SickLeave": case "SickLeave":
<span>@(ReportData.FromDateTime.Split(" ")[0])</span> <span>@(ReportDataView.FromDateTime.Split(" ")[0])</span>
break; break;
case "Leave": case "Leave":
<span>@(ReportData.FromDateTime.Split(" ")[0])</span> <span>@(ReportDataView.FromDateTime.Split(" ")[0])</span>
break; break;
case "Office": case "Office":
<span></span> <span></span>
@ -90,16 +90,16 @@
</td> </td>
<td> <td>
@{ @{
switch (ReportData.DayTypeEnum) switch (ReportDataView.DayTypeEnum)
{ {
case "Sales": case "Sales":
<span>@(ReportData.ToDateTime.Split(" ")[1])</span> <span>@(ReportDataView.ToDateTime.Split(" ")[1])</span>
break; break;
case "SickLeave": case "SickLeave":
<span>@(ReportData.ToDateTime.Split(" ")[0])</span> <span>@(ReportDataView.ToDateTime.Split(" ")[0])</span>
break; break;
case "Leave": case "Leave":
<span>@(ReportData.ToDateTime.Split(" ")[0])</span> <span>@(ReportDataView.ToDateTime.Split(" ")[0])</span>
break; break;
case "Office": case "Office":
<span></span> <span></span>

View file

@ -21,6 +21,6 @@ namespace Wonky.Client.Components;
public partial class ReportSummaryComponent public partial class ReportSummaryComponent
{ {
[Parameter] public ReportData ReportData { get; set; } = new(); [Parameter] public ReportDataView ReportDataView { get; set; } = new();
} }

View file

@ -24,7 +24,7 @@ namespace Wonky.Client.Components;
public partial class TaskItemTableComponent public partial class TaskItemTableComponent
{ {
[Parameter] public List<TaskItemDto> TaskItemList { get; set; } = new(); [Parameter] public List<TaskItemModel> TaskItemList { get; set; } = new();
[Parameter] public EventCallback<string> OnDeleteTask { get; set; } [Parameter] public EventCallback<string> OnDeleteTask { get; set; }
[Parameter] public EventCallback<string> OnCompleteTask { get; set; } [Parameter] public EventCallback<string> OnCompleteTask { get; set; }
[Parameter] public EventCallback<string> OnTaskCompleted { get; set; } [Parameter] public EventCallback<string> OnTaskCompleted { get; set; }

View file

@ -22,9 +22,9 @@ internal interface IValidator<in T>
bool Validate(T t); bool Validate(T t);
} }
public class CustomerValidator : IValidator<CompanyDto> public class CustomerValidator : IValidator<CompanyModel>
{ {
public bool Validate(CompanyDto t) public bool Validate(CompanyModel t)
{ {
if (string.IsNullOrWhiteSpace(t.Name) if (string.IsNullOrWhiteSpace(t.Name)
|| string.IsNullOrWhiteSpace(t.ZipCode) || string.IsNullOrWhiteSpace(t.ZipCode)

View file

@ -50,7 +50,7 @@ public class HttpInterceptorService
public void RegisterEvent() public void RegisterEvent()
{ {
_interceptor.AfterSend += AfterSend; _interceptor.AfterSend += AfterSend!;
} }
public void RegisterBeforeSendEvent() public void RegisterBeforeSendEvent()
@ -60,7 +60,7 @@ public class HttpInterceptorService
public void DisposeEvent() public void DisposeEvent()
{ {
_interceptor.AfterSend -= AfterSend; _interceptor.AfterSend -= AfterSend!;
_interceptor.BeforeSendAsync -= InterceptBeforeSend; _interceptor.BeforeSendAsync -= InterceptBeforeSend;
} }

View file

@ -82,7 +82,7 @@ public class AdvisorActivityRepository : IAdvisorActivityRepository
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ApiResponseView> CreateActivity(ActivityDto model) public async Task<ApiResponseView> CreateActivity(ActivityModel model)
{ {
var response = await _client.PostAsJsonAsync($"{_api.CrmActivities}", model, _options); var response = await _client.PostAsJsonAsync($"{_api.CrmActivities}", model, _options);
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
@ -115,11 +115,11 @@ public class AdvisorActivityRepository : IAdvisorActivityRepository
/// </summary> /// </summary>
/// <param name="activityId"></param> /// <param name="activityId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ActivityDto> GetActivity(string activityId) public async Task<ActivityModel> GetActivity(string activityId)
{ {
var salesItem = await _client var salesItem = await _client
.GetFromJsonAsync<ActivityDto>($"{_api.CrmActivities}/{activityId}"); .GetFromJsonAsync<ActivityModel>($"{_api.CrmActivities}/{activityId}");
return salesItem ?? new ActivityDto(); return salesItem ?? new ActivityModel();
} }
/// <summary> /// <summary>
@ -173,7 +173,7 @@ public class AdvisorActivityRepository : IAdvisorActivityRepository
/// Update office note for activity /// Update office note for activity
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
public async Task UpdateOfficeNote(ActivityOfficeNote model) public async Task UpdateOfficeNote(ActivityOfficeNoteModel model)
{ {
await _client.PutAsJsonAsync($"{_api.CrmActivities}/note/{model.ActivityId}", model, _options); await _client.PutAsJsonAsync($"{_api.CrmActivities}/note/{model.ActivityId}", model, _options);
} }

View file

@ -50,7 +50,7 @@ public class AdvisorContactRepository : IAdvisorContactRepository
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
public async Task<string> CreateContact(ContactDto model) public async Task<string> CreateContact(ContactModel model)
{ {
var response = await _client.PostAsJsonAsync( var response = await _client.PostAsJsonAsync(
$"{_conf.CrmCustomers}/{model.CompanyId}/contacts", model, _options); $"{_conf.CrmCustomers}/{model.CompanyId}/contacts", model, _options);
@ -63,9 +63,9 @@ public class AdvisorContactRepository : IAdvisorContactRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="contactId"></param> /// <param name="contactId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ContactDto> GetContact(string companyId, string contactId) public async Task<ContactModel> GetContact(string companyId, string contactId)
{ {
return await _client.GetFromJsonAsync<ContactDto>( return await _client.GetFromJsonAsync<ContactModel>(
$"{_conf.CrmCustomers}/{companyId}/contacts/{contactId}"); $"{_conf.CrmCustomers}/{companyId}/contacts/{contactId}");
} }
@ -74,14 +74,14 @@ public class AdvisorContactRepository : IAdvisorContactRepository
/// </summary> /// </summary>
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<List<ContactDto>> GetContacts(string companyId) public async Task<List<ContactModel>> GetContacts(string companyId)
{ {
var response = await _client.GetAsync( var response = await _client.GetAsync(
$"{_conf.CrmCustomers}/{companyId}/contacts"); $"{_conf.CrmCustomers}/{companyId}/contacts");
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
return string.IsNullOrWhiteSpace(content) return string.IsNullOrWhiteSpace(content)
? new List<ContactDto>() ? new List<ContactModel>()
: JsonSerializer.Deserialize<List<ContactDto>>(content, _options); : JsonSerializer.Deserialize<List<ContactModel>>(content, _options);
} }
/// <summary> /// <summary>
/// Delete Contact /// Delete Contact
@ -100,7 +100,7 @@ public class AdvisorContactRepository : IAdvisorContactRepository
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
public async Task UpdateContact(ContactDto model) public async Task UpdateContact(ContactModel model)
{ {
await _client.PutAsJsonAsync( await _client.PutAsJsonAsync(
$"{_conf.CrmCustomers}/{model.CompanyId}/contacts/{model.ContactId}", model, _options); $"{_conf.CrmCustomers}/{model.CompanyId}/contacts/{model.ContactId}", model, _options);

View file

@ -55,7 +55,7 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
/// </summary> /// </summary>
/// <param name="pagingParameters"></param> /// <param name="pagingParameters"></param>
/// <returns>A paged response defined by pagingParameters</returns> /// <returns>A paged response defined by pagingParameters</returns>
public async Task<PagingResponse<CompanyDto>> GetCompanies(CustomerPaging pagingParameters) public async Task<PagingResponse<CompanyModel>> GetCompanies(CustomerPaging pagingParameters)
{ {
var queryString = new Dictionary<string, string> var queryString = new Dictionary<string, string>
{ {
@ -71,18 +71,18 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
if (!response.IsSuccessStatusCode) if (!response.IsSuccessStatusCode)
{ {
return new PagingResponse<CompanyDto> return new PagingResponse<CompanyModel>
{ {
Items = new List<CompanyDto>(), Items = new List<CompanyModel>(),
MetaData = new MetaData() MetaData = new MetaData()
}; };
} }
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
var pagingResponse = new PagingResponse<CompanyDto> var pagingResponse = new PagingResponse<CompanyModel>
{ {
Items = JsonSerializer.Deserialize<List<CompanyDto>>(content, _options), Items = JsonSerializer.Deserialize<List<CompanyModel>>(content, _options),
MetaData = JsonSerializer.Deserialize<MetaData>(response.Headers.GetValues("X-Pagination").First(), MetaData = JsonSerializer.Deserialize<MetaData>(response.Headers.GetValues("X-Pagination").First(),
_options) _options)
}; };
@ -94,9 +94,9 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
/// </summary> /// </summary>
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <returns>A CRM Company entity</returns> /// <returns>A CRM Company entity</returns>
public async Task<CompanyDto> GetCompanyById(string companyId) public async Task<CompanyModel> GetCompanyById(string companyId)
{ {
return await _client.GetFromJsonAsync<CompanyDto>($"{_conf.CrmCustomers}/{companyId}", _options); return await _client.GetFromJsonAsync<CompanyModel>($"{_conf.CrmCustomers}/{companyId}", _options);
} }
/// <summary> /// <summary>
@ -104,11 +104,11 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns>The Id of the entity</returns> /// <returns>The Id of the entity</returns>
public async Task<string> CreateCompany(CompanyDto model) public async Task<string> CreateCompany(CompanyModel model)
{ {
var response = await _client.PostAsJsonAsync($"{_conf.CrmCustomers}", model, _options); var response = await _client.PostAsJsonAsync($"{_conf.CrmCustomers}", model, _options);
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
var result = JsonSerializer.Deserialize<CompanyDto>(content, _options); var result = JsonSerializer.Deserialize<CompanyModel>(content, _options);
return result.CompanyId; return result.CompanyId;
} }
@ -129,9 +129,9 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns>A CRM Company entity</returns> /// <returns>A CRM Company entity</returns>
public async Task<CompanyDto> UpdateCrmData(string companyId, CompanyDto model) public async Task<CompanyModel> UpdateCrmData(string companyId, CompanyModel model)
{ {
var updateModel = new UpdateCrmDto var updateModel = new UpdateCrmModel
{ {
Interval = model.Interval, Interval = model.Interval,
Note = model.Note, Note = model.Note,
@ -142,7 +142,7 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
}; };
var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/crmData", updateModel, _options); var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/crmData", updateModel, _options);
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<CompanyDto>(content); return JsonSerializer.Deserialize<CompanyModel>(content);
} }
/// <summary> /// <summary>
@ -151,9 +151,9 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns>A CRM Company entity</returns> /// <returns>A CRM Company entity</returns>
public async Task<CompanyDto> UpdateErpData(string companyId, CompanyDto model) public async Task<CompanyModel> UpdateErpData(string companyId, CompanyModel model)
{ {
var updateModel = new UpdateErpDto var updateModel = new UpdateErpModel
{ {
Address1 = model.Address1, Address1 = model.Address1,
Address2 = model.Address2, Address2 = model.Address2,
@ -168,7 +168,7 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/erpData", updateModel, _options); var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/erpData", updateModel, _options);
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<CompanyDto>(content); return JsonSerializer.Deserialize<CompanyModel>(content);
} }
/// <summary> /// <summary>
@ -177,7 +177,7 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="vatNumber"></param> /// <param name="vatNumber"></param>
/// <returns>A CRM Company entity</returns> /// <returns>A CRM Company entity</returns>
public async Task<CompanyDto> UpdateCompanyVat(string companyId, string vatNumber) public async Task<CompanyModel> UpdateCompanyVat(string companyId, string vatNumber)
{ {
var model = new Dictionary<string, string> var model = new Dictionary<string, string>
{ {
@ -185,10 +185,10 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository
}; };
var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/vat", model, _options); var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/vat", model, _options);
if (!response.IsSuccessStatusCode) if (!response.IsSuccessStatusCode)
return new CompanyDto(); return new CompanyModel();
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<CompanyDto>(content) return JsonSerializer.Deserialize<CompanyModel>(content)
?? new CompanyDto { Name = "ERROR", VatNumber = vatNumber, CrmNotes = $"FEJL: {content}" }; ?? new CompanyModel { Name = "ERROR", VatNumber = vatNumber, CrmNotes = $"FEJL: {content}" };
} }
// public async Task<bool> ToggleVisibility(string companyId, bool hide) // public async Task<bool> ToggleVisibility(string companyId, bool hide)

View file

@ -85,23 +85,23 @@ public class AdvisorReportRepository : IAdvisorReportRepository
/// </summary> /// </summary>
/// <param name="workDate"></param> /// <param name="workDate"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ReportInitDto> InitializeReportData(string workDate) public async Task<ReportInitModel> InitializeReportData(string workDate)
{ {
var initData = await _client var initData = await _client
.GetFromJsonAsync<ReportInitDto>($"{_api.CrmReports}/init/{workDate}"); .GetFromJsonAsync<ReportInitModel>($"{_api.CrmReports}/init/{workDate}");
return initData ?? new ReportInitDto(); return initData ?? new ReportInitModel();
} }
/// <summary> /// <summary>
/// Create Report for given data - using reportData /// Create Report for given data - using reportData
/// </summary> /// </summary>
/// <param name="workDate"></param> /// <param name="workDate"></param>
/// <param name="reportDto"></param> /// <param name="reportModel"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ApiResponseView> CreateReport(string workDate, ReportDto reportDto) public async Task<ApiResponseView> CreateReport(string workDate, ReportModel reportModel)
{ {
var response = await _client var response = await _client
.PostAsJsonAsync($"{_api.CrmReports}/{workDate}", reportDto, _options); .PostAsJsonAsync($"{_api.CrmReports}/{workDate}", reportModel, _options);
if (!response.IsSuccessStatusCode) if (!response.IsSuccessStatusCode)
return new ApiResponseView return new ApiResponseView
{ {

View file

@ -49,9 +49,9 @@ public class AdvisorTaskItemRepository : IAdvisorTaskItemRepository
/// Get Task List (SalesRep) /// Get Task List (SalesRep)
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public async Task<List<TaskItemDto>?> GetTaskList() public async Task<List<TaskItemModel>> GetTaskList()
{ {
return await _client.GetFromJsonAsync<List<TaskItemDto>>($"{_apiConfig.CrmTasks}", _options); return await _client.GetFromJsonAsync<List<TaskItemModel>>($"{_apiConfig.CrmTasks}", _options);
} }
/// <summary> /// <summary>
@ -59,9 +59,9 @@ public class AdvisorTaskItemRepository : IAdvisorTaskItemRepository
/// </summary> /// </summary>
/// <param name="workDate"></param> /// <param name="workDate"></param>
/// <returns></returns> /// <returns></returns>
public async Task<List<TaskItemDto>?> GetTaskList(string workDate) public async Task<List<TaskItemModel>> GetTaskList(string workDate)
{ {
return await _client.GetFromJsonAsync<List<TaskItemDto>>($"{_apiConfig.CrmTasks}/date/{workDate}", _options); return await _client.GetFromJsonAsync<List<TaskItemModel>>($"{_apiConfig.CrmTasks}/date/{workDate}", _options);
} }
/// <summary> /// <summary>
@ -69,9 +69,9 @@ public class AdvisorTaskItemRepository : IAdvisorTaskItemRepository
/// </summary> /// </summary>
/// <param name="taskItemId"></param> /// <param name="taskItemId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<TaskItemDto?> GetTaskItem(string taskItemId) public async Task<TaskItemModel> GetTaskItem(string taskItemId)
{ {
return await _client.GetFromJsonAsync<TaskItemDto>($"{_apiConfig.CrmTasks}/{taskItemId}", _options); return await _client.GetFromJsonAsync<TaskItemModel>($"{_apiConfig.CrmTasks}/{taskItemId}", _options);
} }
/// <summary> /// <summary>
@ -79,7 +79,7 @@ public class AdvisorTaskItemRepository : IAdvisorTaskItemRepository
/// </summary> /// </summary>
/// <param name="taskItem"></param> /// <param name="taskItem"></param>
/// <returns></returns> /// <returns></returns>
public async Task CreateTaskItem(TaskItemDto taskItem) public async Task CreateTaskItem(TaskItemModel taskItem)
{ {
await _client.PostAsJsonAsync($"{_apiConfig.CrmTasks}", taskItem, _options); await _client.PostAsJsonAsync($"{_apiConfig.CrmTasks}", taskItem, _options);
} }
@ -89,7 +89,7 @@ public class AdvisorTaskItemRepository : IAdvisorTaskItemRepository
/// </summary> /// </summary>
/// <param name="taskItemId"></param> /// <param name="taskItemId"></param>
/// <returns></returns> /// <returns></returns>
public async Task UpdateTaskItem(string taskItemId, TaskItemDto taskItem) public async Task UpdateTaskItem(string taskItemId, TaskItemModel taskItem)
{ {
await _client.PutAsJsonAsync($"{_apiConfig.CrmTasks}/{taskItemId}", taskItem, _options); await _client.PutAsJsonAsync($"{_apiConfig.CrmTasks}/{taskItemId}", taskItem, _options);
} }

View file

@ -64,11 +64,11 @@ public class AdvisorWorkplaceRepository : IAdvisorWorkplaceRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="workplaceId"></param> /// <param name="workplaceId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<WorkplaceDto> GetWorkplace(string companyId, string workplaceId) public async Task<WorkplaceModel> GetWorkplace(string companyId, string workplaceId)
{ {
var result = await _client.GetFromJsonAsync<WorkplaceDto>( var result = await _client.GetFromJsonAsync<WorkplaceModel>(
$"{_api.CrmCustomers}/{companyId}/{_api.CrmWorkplaceExt}/{workplaceId}", _options); $"{_api.CrmCustomers}/{companyId}/{_api.CrmWorkplaceExt}/{workplaceId}", _options);
return result ?? new WorkplaceDto(); return result ?? new WorkplaceModel();
} }
/// <summary> /// <summary>
@ -77,7 +77,7 @@ public class AdvisorWorkplaceRepository : IAdvisorWorkplaceRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="workplace"></param> /// <param name="workplace"></param>
/// <returns></returns> /// <returns></returns>
public async Task CreateWorkplace(string companyId, WorkplaceDto workplace) public async Task CreateWorkplace(string companyId, WorkplaceModel workplace)
{ {
await _client.PostAsJsonAsync( await _client.PostAsJsonAsync(
$"{_api.CrmCustomers}/{companyId}/{_api.CrmWorkplaceExt}", workplace, _options); $"{_api.CrmCustomers}/{companyId}/{_api.CrmWorkplaceExt}", workplace, _options);
@ -89,7 +89,7 @@ public class AdvisorWorkplaceRepository : IAdvisorWorkplaceRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="workplace"></param> /// <param name="workplace"></param>
/// <returns></returns> /// <returns></returns>
public async Task UpdateWorkplace(string companyId, WorkplaceDto workplace) public async Task UpdateWorkplace(string companyId, WorkplaceModel workplace)
{ {
await _client.PutAsJsonAsync( await _client.PutAsJsonAsync(
$"{_api.CrmCustomers}/{companyId}/{_api.CrmWorkplaceExt}/{workplace.WorkplaceId}", workplace, _options); $"{_api.CrmCustomers}/{companyId}/{_api.CrmWorkplaceExt}/{workplace.WorkplaceId}", workplace, _options);

View file

@ -53,11 +53,11 @@ public class CountryActivityRepository : ICountryActivityRepository
/// </summary> /// </summary>
/// <param name="activityId"></param> /// <param name="activityId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ActivityDto> RequestActivity(string activityId) public async Task<ActivityModel> RequestActivity(string activityId)
{ {
var activity = await _client var activity = await _client
.GetFromJsonAsync<ActivityDto>($"{_api.CrmActivities}/{activityId}"); .GetFromJsonAsync<ActivityModel>($"{_api.CrmActivities}/{activityId}");
return activity ?? new ActivityDto(); return activity ?? new ActivityModel();
} }
/// <summary> /// <summary>
@ -76,7 +76,7 @@ public class CountryActivityRepository : ICountryActivityRepository
: JsonSerializer.Deserialize<List<ReportItemView>>(content, _options); : JsonSerializer.Deserialize<List<ReportItemView>>(content, _options);
} }
public async Task<ApiResponseView> CreatePhoneOrder(string customerId, ActivityDto activity) public async Task<ApiResponseView> CreatePhoneOrder(string customerId, ActivityModel activity)
{ {
var response = await _client.PostAsJsonAsync($"{_api.OfficeCustomers}/{activity.CountryCode}/id/{customerId}/activities", activity); var response = await _client.PostAsJsonAsync($"{_api.OfficeCustomers}/{activity.CountryCode}/id/{customerId}/activities", activity);
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();

View file

@ -56,7 +56,7 @@ public class CountryCustomerRepository : ICountryCustomerRepository
/// <param name="paging"></param> /// <param name="paging"></param>
/// <param name="countryCode"></param> /// <param name="countryCode"></param>
/// <returns></returns> /// <returns></returns>
public async Task<PagingResponse<CompanyDto>> GetCompaniesPaged(string countryCode, CustomerPaging paging) public async Task<PagingResponse<CompanyModel>> GetCompaniesPaged(string countryCode, CustomerPaging paging)
{ {
var queryString = new Dictionary<string, string> var queryString = new Dictionary<string, string>
{ {
@ -72,9 +72,9 @@ public class CountryCustomerRepository : ICountryCustomerRepository
var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}/{countryCode}", queryString)); var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}/{countryCode}", queryString));
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
var pagingResponse = new PagingResponse<CompanyDto> var pagingResponse = new PagingResponse<CompanyModel>
{ {
Items = JsonSerializer.Deserialize<List<CompanyDto>>(content, _options), Items = JsonSerializer.Deserialize<List<CompanyModel>>(content, _options),
MetaData = JsonSerializer.Deserialize<MetaData>(response.Headers.GetValues("X-Pagination").First(), _options) MetaData = JsonSerializer.Deserialize<MetaData>(response.Headers.GetValues("X-Pagination").First(), _options)
}; };
return pagingResponse; return pagingResponse;
@ -87,7 +87,7 @@ public class CountryCustomerRepository : ICountryCustomerRepository
/// <param name="salesRepId"></param> /// <param name="salesRepId"></param>
/// <param name="paging"></param> /// <param name="paging"></param>
/// <returns></returns> /// <returns></returns>
public async Task<PagingResponse<CompanyDto>> GetCompaniesPaged(string countryCode, string salesRepId, public async Task<PagingResponse<CompanyModel>> GetCompaniesPaged(string countryCode, string salesRepId,
CustomerPaging paging) CustomerPaging paging)
{ {
var queryString = new Dictionary<string, string> var queryString = new Dictionary<string, string>
@ -103,9 +103,9 @@ public class CountryCustomerRepository : ICountryCustomerRepository
var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}/{countryCode}/salesRep/{salesRepId}/", queryString)); var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}/{countryCode}/salesRep/{salesRepId}/", queryString));
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
var pagingResponse = new PagingResponse<CompanyDto> var pagingResponse = new PagingResponse<CompanyModel>
{ {
Items = JsonSerializer.Deserialize<List<CompanyDto>>(content, _options), Items = JsonSerializer.Deserialize<List<CompanyModel>>(content, _options),
MetaData = JsonSerializer.Deserialize<MetaData>(response.Headers.GetValues("X-Pagination").First(), _options) MetaData = JsonSerializer.Deserialize<MetaData>(response.Headers.GetValues("X-Pagination").First(), _options)
}; };
return pagingResponse; return pagingResponse;
@ -118,10 +118,10 @@ public class CountryCustomerRepository : ICountryCustomerRepository
/// <param name="countryCode"></param> /// <param name="countryCode"></param>
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<CompanyDto> GetByCustomerId(string countryCode, string companyId) public async Task<CompanyModel> GetByCustomerId(string countryCode, string companyId)
{ {
var company = await _client.GetFromJsonAsync<CompanyDto>($"{_api.OfficeCustomers}/{countryCode}/id/{companyId}"); var company = await _client.GetFromJsonAsync<CompanyModel>($"{_api.OfficeCustomers}/{countryCode}/id/{companyId}");
return company ?? new CompanyDto(); return company ?? new CompanyModel();
} }
/// <summary> /// <summary>
@ -131,7 +131,7 @@ public class CountryCustomerRepository : ICountryCustomerRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
public async Task<bool> UpdateCompany(string countryCode, string companyId, CompanyDto model) public async Task<bool> UpdateCompany(string countryCode, string companyId, CompanyModel model)
{ {
var response = await _client.PutAsJsonAsync($"{_api.OfficeCustomers}/{countryCode}/{companyId}", model); var response = await _client.PutAsJsonAsync($"{_api.OfficeCustomers}/{countryCode}/{companyId}", model);
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();

View file

@ -41,7 +41,7 @@ public interface IAdvisorActivityRepository
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
Task<ApiResponseView> CreateActivity(ActivityDto model); Task<ApiResponseView> CreateActivity(ActivityModel model);
/// <summary> /// <summary>
/// Get activities by date /// Get activities by date
@ -55,7 +55,7 @@ public interface IAdvisorActivityRepository
/// </summary> /// </summary>
/// <param name="activityId"></param> /// <param name="activityId"></param>
/// <returns></returns> /// <returns></returns>
Task<ActivityDto> GetActivity(string activityId); Task<ActivityModel> GetActivity(string activityId);
/// <summary> /// <summary>
/// Get activities for customer Id /// Get activities for customer Id
@ -82,5 +82,5 @@ public interface IAdvisorActivityRepository
/// Update office note for activity /// Update office note for activity
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
Task UpdateOfficeNote(ActivityOfficeNote model); Task UpdateOfficeNote(ActivityOfficeNoteModel model);
} }

View file

@ -28,7 +28,7 @@ public interface IAdvisorContactRepository
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
Task<string> CreateContact(ContactDto model); Task<string> CreateContact(ContactModel model);
/// <summary> /// <summary>
/// Get Contact /// Get Contact
@ -36,14 +36,14 @@ public interface IAdvisorContactRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="contactId"></param> /// <param name="contactId"></param>
/// <returns></returns> /// <returns></returns>
Task<ContactDto> GetContact(string companyId, string contactId); Task<ContactModel> GetContact(string companyId, string contactId);
/// <summary> /// <summary>
/// Get Contacts /// Get Contacts
/// </summary> /// </summary>
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <returns></returns> /// <returns></returns>
Task<List<ContactDto>> GetContacts(string companyId); Task<List<ContactModel>> GetContacts(string companyId);
/// <summary> /// <summary>
/// Delete Contact /// Delete Contact
@ -58,5 +58,5 @@ public interface IAdvisorContactRepository
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
Task UpdateContact(ContactDto model); Task UpdateContact(ContactModel model);
} }

View file

@ -29,21 +29,21 @@ public interface IAdvisorCustomerRepository
/// </summary> /// </summary>
/// <param name="pagingParameters"></param> /// <param name="pagingParameters"></param>
/// <returns>A paged response defined by pagingParameters</returns> /// <returns>A paged response defined by pagingParameters</returns>
Task<PagingResponse<CompanyDto>> GetCompanies(CustomerPaging pagingParameters); Task<PagingResponse<CompanyModel>> GetCompanies(CustomerPaging pagingParameters);
/// <summary> /// <summary>
/// Get CRM customer by Id (SalesRep) /// Get CRM customer by Id (SalesRep)
/// </summary> /// </summary>
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <returns>A CRM Company entity</returns> /// <returns>A CRM Company entity</returns>
Task<CompanyDto> GetCompanyById(string companyId); Task<CompanyModel> GetCompanyById(string companyId);
/// <summary> /// <summary>
/// Create Customer (SalesRep) /// Create Customer (SalesRep)
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns>The Id of the entity</returns> /// <returns>The Id of the entity</returns>
Task<string> CreateCompany(CompanyDto model); Task<string> CreateCompany(CompanyModel model);
/// <summary> /// <summary>
/// Delete the CRM customer (SalesRep) /// Delete the CRM customer (SalesRep)
@ -58,7 +58,7 @@ public interface IAdvisorCustomerRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns>A CRM Company entity</returns> /// <returns>A CRM Company entity</returns>
Task<CompanyDto> UpdateCrmData(string companyId, CompanyDto model); Task<CompanyModel> UpdateCrmData(string companyId, CompanyModel model);
/// <summary> /// <summary>
/// Update ERP customer properties (SalesRep) /// Update ERP customer properties (SalesRep)
@ -66,7 +66,7 @@ public interface IAdvisorCustomerRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns>A CRM Company entity</returns> /// <returns>A CRM Company entity</returns>
Task<CompanyDto> UpdateErpData(string companyId, CompanyDto model); Task<CompanyModel> UpdateErpData(string companyId, CompanyModel model);
/// <summary> /// <summary>
/// Update customer Vat Number (SalesRep) /// Update customer Vat Number (SalesRep)
@ -74,7 +74,7 @@ public interface IAdvisorCustomerRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="vatNumber"></param> /// <param name="vatNumber"></param>
/// <returns>A CRM Company entity</returns> /// <returns>A CRM Company entity</returns>
Task<CompanyDto> UpdateCompanyVat(string companyId, string vatNumber); Task<CompanyModel> UpdateCompanyVat(string companyId, string vatNumber);
// Task<bool> ToggleVisibility(string companyId, bool hide); // Task<bool> ToggleVisibility(string companyId, bool hide);
} }

View file

@ -48,13 +48,13 @@ public interface IAdvisorReportRepository
/// </summary> /// </summary>
/// <param name="workDate"></param> /// <param name="workDate"></param>
/// <returns></returns> /// <returns></returns>
Task<ReportInitDto> InitializeReportData(string workDate); Task<ReportInitModel> InitializeReportData(string workDate);
/// <summary> /// <summary>
/// Create Report for given data - using reportData /// Create Report for given data - using reportData
/// </summary> /// </summary>
/// <param name="workDate"></param> /// <param name="workDate"></param>
/// <param name="reportDto"></param> /// <param name="reportModel"></param>
/// <returns></returns> /// <returns></returns>
Task<ApiResponseView> CreateReport(string workDate, ReportDto reportDto); Task<ApiResponseView> CreateReport(string workDate, ReportModel reportModel);
} }

View file

@ -26,35 +26,35 @@ public interface IAdvisorTaskItemRepository
/// Get Task List (SalesRep) /// Get Task List (SalesRep)
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task<List<TaskItemDto>> GetTaskList(); Task<List<TaskItemModel>> GetTaskList();
/// <summary> /// <summary>
/// Get Task List for given workDate (SalesRep) /// Get Task List for given workDate (SalesRep)
/// </summary> /// </summary>
/// <param name="workDate"></param> /// <param name="workDate"></param>
/// <returns></returns> /// <returns></returns>
Task<List<TaskItemDto>> GetTaskList(string workDate); Task<List<TaskItemModel>> GetTaskList(string workDate);
/// <summary> /// <summary>
/// Get Task Item by id (SalesRep) /// Get Task Item by id (SalesRep)
/// </summary> /// </summary>
/// <param name="taskItemId"></param> /// <param name="taskItemId"></param>
/// <returns></returns> /// <returns></returns>
Task<TaskItemDto> GetTaskItem(string taskItemId); Task<TaskItemModel> GetTaskItem(string taskItemId);
/// <summary> /// <summary>
/// Create task using taskItem (SalesRep) /// Create task using taskItem (SalesRep)
/// </summary> /// </summary>
/// <param name="taskItem"></param> /// <param name="taskItem"></param>
/// <returns></returns> /// <returns></returns>
Task CreateTaskItem(TaskItemDto taskItem); Task CreateTaskItem(TaskItemModel taskItem);
/// <summary> /// <summary>
/// Delete Task Item (SalesRep /// Delete Task Item (SalesRep
/// </summary> /// </summary>
/// <param name="taskItemId"></param> /// <param name="taskItemId"></param>
/// <returns></returns> /// <returns></returns>
Task UpdateTaskItem(string taskItemId, TaskItemDto taskItem); Task UpdateTaskItem(string taskItemId, TaskItemModel taskItem);
/// <summary> /// <summary>
/// Delete Task Item (SalesRep /// Delete Task Item (SalesRep

View file

@ -36,7 +36,7 @@ public interface IAdvisorWorkplaceRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="workplaceId"></param> /// <param name="workplaceId"></param>
/// <returns></returns> /// <returns></returns>
Task<WorkplaceDto> GetWorkplace(string companyId, string workplaceId); Task<WorkplaceModel> GetWorkplace(string companyId, string workplaceId);
/// <summary> /// <summary>
/// Create new workplace given the customer id and workplace data /// Create new workplace given the customer id and workplace data
@ -44,7 +44,7 @@ public interface IAdvisorWorkplaceRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="workplace"></param> /// <param name="workplace"></param>
/// <returns></returns> /// <returns></returns>
Task CreateWorkplace(string companyId, WorkplaceDto workplace); Task CreateWorkplace(string companyId, WorkplaceModel workplace);
/// <summary> /// <summary>
/// Update workplace given the customer id and updated data /// Update workplace given the customer id and updated data
@ -52,7 +52,7 @@ public interface IAdvisorWorkplaceRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="workplace"></param> /// <param name="workplace"></param>
/// <returns></returns> /// <returns></returns>
Task UpdateWorkplace(string companyId, WorkplaceDto workplace); Task UpdateWorkplace(string companyId, WorkplaceModel workplace);
/// <summary> /// <summary>
/// Delete workplace given customer id and workplace id /// Delete workplace given customer id and workplace id

View file

@ -28,7 +28,7 @@ public interface ICountryActivityRepository
/// </summary> /// </summary>
/// <param name="activityId"></param> /// <param name="activityId"></param>
/// <returns></returns> /// <returns></returns>
Task<ActivityDto> RequestActivity(string activityId); Task<ActivityModel> RequestActivity(string activityId);
/// <summary> /// <summary>
/// Get activities for customer Id /// Get activities for customer Id
@ -37,5 +37,5 @@ public interface ICountryActivityRepository
/// <returns></returns> /// <returns></returns>
Task<List<ReportItemView>> RequestActivityList(string customerId); Task<List<ReportItemView>> RequestActivityList(string customerId);
Task<ApiResponseView> CreatePhoneOrder(string customerId, ActivityDto activity); Task<ApiResponseView> CreatePhoneOrder(string customerId, ActivityModel activity);
} }

View file

@ -30,7 +30,7 @@ public interface ICountryCustomerRepository
/// <param name="paging"></param> /// <param name="paging"></param>
/// <param name="countryCode"></param> /// <param name="countryCode"></param>
/// <returns></returns> /// <returns></returns>
Task<PagingResponse<CompanyDto>> GetCompaniesPaged(string countryCode, CustomerPaging paging); Task<PagingResponse<CompanyModel>> GetCompaniesPaged(string countryCode, CustomerPaging paging);
/// <summary> /// <summary>
/// Get customers paged for given sales rep /// Get customers paged for given sales rep
@ -39,7 +39,7 @@ public interface ICountryCustomerRepository
/// <param name="salesRepId"></param> /// <param name="salesRepId"></param>
/// <param name="paging"></param> /// <param name="paging"></param>
/// <returns></returns> /// <returns></returns>
Task<PagingResponse<CompanyDto>> GetCompaniesPaged(string countryCode, string salesRepId, CustomerPaging paging); Task<PagingResponse<CompanyModel>> GetCompaniesPaged(string countryCode, string salesRepId, CustomerPaging paging);
/// <summary> /// <summary>
/// Get customer by Id /// Get customer by Id
@ -47,7 +47,7 @@ public interface ICountryCustomerRepository
/// <param name="countryCode"></param> /// <param name="countryCode"></param>
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <returns></returns> /// <returns></returns>
Task<CompanyDto> GetByCustomerId(string countryCode, string companyId); Task<CompanyModel> GetByCustomerId(string countryCode, string companyId);
/// <summary> /// <summary>
/// Update Company data /// Update Company data
@ -56,5 +56,5 @@ public interface ICountryCustomerRepository
/// <param name="companyId"></param> /// <param name="companyId"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
Task<bool> UpdateCompany(string countryCode, string companyId, CompanyDto model); Task<bool> UpdateCompany(string countryCode, string companyId, CompanyModel model);
} }

View file

@ -0,0 +1,50 @@
// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;
/// <summary>
/// Interface for User handling over http
/// </summary>
public interface IOfficeUserInfoRepository
{
/// <summary>
/// Get Users
/// </summary>
/// <returns></returns>
Task<List<UserInfoListView>> GetUsers();
/// <summary>
/// Get Users in role
/// </summary>
/// <returns></returns>
Task<List<UserInfoListView>> GetUsers(string role);
/// <summary>
/// Get users for logged in supervisor
/// </summary>
/// <returns></returns>
Task<List<UserInfoListView>> GetSupervisorUsers();
/// <summary>
/// Get User Info for given userId
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<UserAdvisorInfoView> GetUserInfo(string userId);
}

View file

@ -48,7 +48,7 @@ public interface IOrderProcessRepository
/// <summary> /// <summary>
/// Update Order status setting new process status /// Update Order status setting new process status
/// </summary> /// </summary>
/// <param name="processState"></param> /// <param name="processStateModel"></param>
/// <returns></returns> /// <returns></returns>
Task UpdateWarehouseOrderStatus(OrderProcessState processState); Task UpdateWarehouseOrderStatus(OrderProcessStateModel processStateModel);
} }

View file

@ -27,7 +27,7 @@ public interface ISystemSendMailService
/// Send Mail /// Send Mail
/// </summary> /// </summary>
/// <param name="messageType"></param> /// <param name="messageType"></param>
/// <param name="message"></param> /// <param name="messageModel"></param>
/// <returns></returns> /// <returns></returns>
Task<ApiResponseView> SendMail(string messageType, EmailMessage message); Task<ApiResponseView> SendMail(string messageType, EmailMessageModel messageModel);
} }

View file

@ -27,7 +27,7 @@ public interface ISystemSendSmsService
/// Send Mail /// Send Mail
/// </summary> /// </summary>
/// <param name="messageType"></param> /// <param name="messageType"></param>
/// <param name="message"></param> /// <param name="messageModel"></param>
/// <returns></returns> /// <returns></returns>
Task<ApiResponseView> SendSms(ShortMessage message); Task<ApiResponseView> SendSms(ShortMessageModel messageModel);
} }

View file

@ -14,6 +14,7 @@
// //
using Wonky.Entity.DTO; using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository; namespace Wonky.Client.HttpRepository;
@ -23,32 +24,38 @@ namespace Wonky.Client.HttpRepository;
public interface ISystemUserRepository public interface ISystemUserRepository
{ {
/// <summary> /// <summary>
/// Get Advisors (Office) /// Get Users
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task<List<UserManagerListView>> GetUsers(); Task<List<UserInfoListView>> GetUsers();
/// <summary> /// <summary>
/// Get Advisor Info for given userId /// Get Users in role
/// </summary>
/// <returns></returns>
Task<List<UserInfoListView>> GetUsers(string role);
/// <summary>
/// Get User Info for given userId
/// </summary> /// </summary>
/// <param name="userId"></param> /// <param name="userId"></param>
/// <returns></returns> /// <returns></returns>
Task<UserManagerEditView> GetUserInfo(string userId); Task<UserAdminEditView> GetUserInfo(string userId);
/// <summary> /// <summary>
/// Update Advisor using userId and updated data /// Update User using userId and updated data
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
Task<UserManagerEditView> CreateUser(UserManagerCreate model); Task<UserAdminEditView> CreateUser(UserAdminCreateModel model);
/// <summary> /// <summary>
/// Update Advisor using userId and updated data /// Update User using userId and updated data
/// </summary> /// </summary>
/// <param name="userId"></param> /// <param name="userId"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
Task UpdateUserInfo(string userId, UserManagerEditView model); Task UpdateUserInfo(string userId, UserAdminEditView model);
/// <summary> /// <summary>
/// Delete the user with id /// Delete the user with id
@ -58,7 +65,7 @@ public interface ISystemUserRepository
Task DeleteUser(string userId); Task DeleteUser(string userId);
/// <summary> /// <summary>
/// Set new user password /// Set user user password
/// </summary> /// </summary>
/// <param name="userId"></param> /// <param name="userId"></param>
/// <param name="newPasswd"></param> /// <param name="newPasswd"></param>

View file

@ -0,0 +1,83 @@
// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Net.Http.Json;
using System.Text.Json;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Options;
using Wonky.Entity.Configuration;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;
public class OfficeUserInfoRepository : IOfficeUserInfoRepository
{
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
};
private readonly NavigationManager _navigation;
private ILogger<OfficeUserInfoRepository> _logger;
private readonly HttpClient _client;
private readonly ApiConfig _api;
public OfficeUserInfoRepository(HttpClient client, ILogger<OfficeUserInfoRepository> logger,
NavigationManager navigation, IOptions<ApiConfig> configuration)
{
_client = client;
_logger = logger;
_navigation = navigation;
_api = configuration.Value;
}
/// <summary>
/// Get Users
/// </summary>
/// <returns></returns>
public async Task<List<UserInfoListView>> GetUsers()
{
return await _client.GetFromJsonAsync<List<UserInfoListView>>(_api.UserData);
}
/// <summary>
/// Get Users in role
/// </summary>
/// <returns></returns>
public async Task<List<UserInfoListView>> GetUsers(string role)
{
return await _client.GetFromJsonAsync<List<UserInfoListView>>($"{_api.UserData}/role/{role}");
}
/// <summary>
/// Get users for logged in supervisor
/// </summary>
/// <returns></returns>
public async Task<List<UserInfoListView>> GetSupervisorUsers()
{
return await _client.GetFromJsonAsync<List<UserInfoListView>>($"{_api.UserData}/supervisor");
}
/// <summary>
/// Get Advisor Info for given userId
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<UserAdvisorInfoView> GetUserInfo(string userId)
{
return await _client.GetFromJsonAsync<UserAdvisorInfoView>($"{_api.UserData}/{userId}");
}
}

View file

@ -81,11 +81,11 @@ public class OrderProcessRepository : IOrderProcessRepository
/// <summary> /// <summary>
/// Update Order status setting new process status /// Update Order status setting new process status
/// </summary> /// </summary>
/// <param name="processState"></param> /// <param name="processStateModel"></param>
/// <returns></returns> /// <returns></returns>
public async Task UpdateWarehouseOrderStatus(OrderProcessState processState) public async Task UpdateWarehouseOrderStatus(OrderProcessStateModel processStateModel)
{ {
_logger.LogDebug("process => {}", JsonSerializer.Serialize(processState, _options)); _logger.LogDebug("process => {}", JsonSerializer.Serialize(processStateModel, _options));
await _client.PutAsJsonAsync($"{_api.Warehouse}/{processState.OrderId}", processState, _options); await _client.PutAsJsonAsync($"{_api.Warehouse}/{processStateModel.OrderId}", processStateModel, _options);
} }
} }

View file

@ -48,11 +48,11 @@ public class SystemSendMailService : ISystemSendMailService
/// Send Mail /// Send Mail
/// </summary> /// </summary>
/// <param name="messageType"></param> /// <param name="messageType"></param>
/// <param name="message"></param> /// <param name="messageModel"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ApiResponseView> SendMail(string messageType, EmailMessage message) public async Task<ApiResponseView> SendMail(string messageType, EmailMessageModel messageModel)
{ {
var response = await _client.PostAsJsonAsync($"{_api.ServicesMail}/{messageType}", message, _options); var response = await _client.PostAsJsonAsync($"{_api.ServicesMail}/{messageType}", messageModel, _options);
if (!response.IsSuccessStatusCode) if (!response.IsSuccessStatusCode)
return new ApiResponseView return new ApiResponseView
{ {

View file

@ -47,11 +47,11 @@ public class SystemSendSmsService : ISystemSendSmsService
/// <summary> /// <summary>
/// Send Mail /// Send Mail
/// </summary> /// </summary>
/// <param name="message"></param> /// <param name="messageModel"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ApiResponseView> SendSms(ShortMessage message) public async Task<ApiResponseView> SendSms(ShortMessageModel messageModel)
{ {
var response = await _client.PostAsJsonAsync($"{_api.ServicesSms}", message, _options); var response = await _client.PostAsJsonAsync($"{_api.ServicesSms}", messageModel, _options);
if (!response.IsSuccessStatusCode) if (!response.IsSuccessStatusCode)
return new ApiResponseView return new ApiResponseView
{ {

View file

@ -44,12 +44,17 @@ public class SystemUserRepository : ISystemUserRepository
} }
/// <summary> /// <summary>
/// Get Advisors (Office) /// Get Users
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public async Task<List<UserManagerListView>> GetUsers() public async Task<List<UserInfoListView>> GetUsers()
{ {
return await _client.GetFromJsonAsync<List<UserManagerListView>>(_api.UserManager); return await _client.GetFromJsonAsync<List<UserInfoListView>>(_api.UserManager);
}
public async Task<List<UserInfoListView>> GetUsers(string role)
{
return await _client.GetFromJsonAsync<List<UserInfoListView>>($"{_api.UserRoles}/role/{role}");
} }
/// <summary> /// <summary>
@ -57,9 +62,9 @@ public class SystemUserRepository : ISystemUserRepository
/// </summary> /// </summary>
/// <param name="userId"></param> /// <param name="userId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<UserManagerEditView> GetUserInfo(string userId) public async Task<UserAdminEditView> GetUserInfo(string userId)
{ {
return await _client.GetFromJsonAsync<UserManagerEditView>($"{_api.UserManager}/{userId}"); return await _client.GetFromJsonAsync<UserAdminEditView>($"{_api.UserManager}/{userId}");
} }
/// <summary> /// <summary>
@ -67,18 +72,18 @@ public class SystemUserRepository : ISystemUserRepository
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
public async Task<UserManagerEditView> CreateUser(UserManagerCreate model) public async Task<UserAdminEditView> CreateUser(UserAdminCreateModel model)
{ {
var result = await _client.PostAsJsonAsync($"{_api.UserManager}", model, _options); var result = await _client.PostAsJsonAsync($"{_api.UserManager}", model, _options);
if (!result.IsSuccessStatusCode) if (!result.IsSuccessStatusCode)
return new UserManagerEditView(); return new UserAdminEditView();
try try
{ {
return await result.Content.ReadFromJsonAsync<UserManagerEditView>(); return await result.Content.ReadFromJsonAsync<UserAdminEditView>();
} }
catch catch
{ {
return new UserManagerEditView(); return new UserAdminEditView();
} }
} }
@ -88,7 +93,7 @@ public class SystemUserRepository : ISystemUserRepository
/// <param name="userId"></param> /// <param name="userId"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
public async Task UpdateUserInfo(string userId, UserManagerEditView model) public async Task UpdateUserInfo(string userId, UserAdminEditView model)
{ {
await _client.PutAsJsonAsync($"{_api.UserManager}/{userId}", model, _options); await _client.PutAsJsonAsync($"{_api.UserManager}/{userId}", model, _options);
} }

View file

@ -38,7 +38,7 @@ public partial class CustomerInventoryListOverlay : IDisposable
private string _modalDisplay = ""; private string _modalDisplay = "";
private bool _showBackdrop; private bool _showBackdrop;
private CompanyDto Company { get; set; } = new(); private CompanyModel Company { get; set; } = new();
// private List<ProductInventoryView> ProductList { get; set; } = new(); // private List<ProductInventoryView> ProductList { get; set; } = new();
private DraftItem DraftItem { get; set; } = new(); private DraftItem DraftItem { get; set; } = new();
private SalesItemView SalesItem { get; set; } = new(); private SalesItemView SalesItem { get; set; } = new();

View file

@ -22,7 +22,7 @@ namespace Wonky.Client.OverlayOffice;
public partial class OfficeCustomerActivityListOverlay public partial class OfficeCustomerActivityListOverlay
{ {
[Parameter] public CompanyDto Company { get; set; } = new(); [Parameter] public CompanyModel Company { get; set; } = new();
[Parameter] public List<ReportItemView> ActivityList { get; set; } = new(); [Parameter] public List<ReportItemView> ActivityList { get; set; } = new();
private string _modalDisplay = ""; private string _modalDisplay = "";

View file

@ -26,7 +26,7 @@ namespace Wonky.Client.OverlayOffice;
public partial class OfficeCustomerInventoryReorderOverlay public partial class OfficeCustomerInventoryReorderOverlay
{ {
[Parameter] public CompanyDto Company { get; set; } [Parameter] public CompanyModel Company { get; set; }
[Parameter] public SalesItemView SalesItem { get; set; } = new(); [Parameter] public SalesItemView SalesItem { get; set; } = new();
[Inject] public ICountryCustomerHistoryRepository HistoryRepo { get; set; } [Inject] public ICountryCustomerHistoryRepository HistoryRepo { get; set; }
[Parameter] public EventCallback<DraftItem> OrderItemCallback { get; set; } [Parameter] public EventCallback<DraftItem> OrderItemCallback { get; set; }

View file

@ -25,7 +25,7 @@ namespace Wonky.Client.OverlayOffice;
public partial class OfficeCustomerInvoiceListOverlay public partial class OfficeCustomerInvoiceListOverlay
{ {
[Parameter] public InvoiceListView InvoiceList { get; set; } = new(); [Parameter] public InvoiceListView InvoiceList { get; set; } = new();
[Parameter] public CompanyDto Company { get; set; } = new(); [Parameter] public CompanyModel Company { get; set; } = new();
// dependency injection // dependency injection
[Inject] public ILogger<OfficeCustomerInvoiceListOverlay> Logger { get; set; } [Inject] public ILogger<OfficeCustomerInvoiceListOverlay> Logger { get; set; }
private string InvoiceId { get; set; } = ""; private string InvoiceId { get; set; } = "";

View file

@ -38,7 +38,7 @@ public partial class OfficeCustomerProductListOverlay : IDisposable
private OfficeCustomerInventoryReorderOverlay ReorderOverlay { get; set; } = new(); private OfficeCustomerInventoryReorderOverlay ReorderOverlay { get; set; } = new();
private bool Descending { get; set; } private bool Descending { get; set; }
[Parameter] public CompanyDto Company { get; set; } = new(); [Parameter] public CompanyModel Company { get; set; } = new();
[Parameter] public List<ProductInventoryView> Inventory { get; set; } = new(); [Parameter] public List<ProductInventoryView> Inventory { get; set; } = new();
protected override void OnParametersSet() protected override void OnParametersSet()

View file

@ -30,7 +30,7 @@ public partial class OfficeOrderInventoryListOverlay : IDisposable
[Inject] public ICountryCatalogRepository CatalogRepo { get; set; } [Inject] public ICountryCatalogRepository CatalogRepo { get; set; }
[Inject] public ILogger<OfficeOrderInventoryListOverlay> Logger { get; set; } [Inject] public ILogger<OfficeOrderInventoryListOverlay> Logger { get; set; }
[Parameter] public CompanyDto Company { get; set; } = new(); [Parameter] public CompanyModel Company { get; set; } = new();
[Parameter] public List<ProductInventoryView> Inventory { get; set; } = new(); [Parameter] public List<ProductInventoryView> Inventory { get; set; } = new();
[Parameter] public EventCallback<DraftItem> OnSelected { get; set; } [Parameter] public EventCallback<DraftItem> OnSelected { get; set; }

View file

@ -27,7 +27,7 @@ namespace Wonky.Client.OverlayOffice;
public partial class OfficeOrderInventoryReorderOverlay public partial class OfficeOrderInventoryReorderOverlay
{ {
[Inject] public ICountryCustomerHistoryRepository HistoryRepo { get; set; } [Inject] public ICountryCustomerHistoryRepository HistoryRepo { get; set; }
[Parameter] public CompanyDto Company { get; set; } = new(); [Parameter] public CompanyModel Company { get; set; } = new();
[Parameter] public SalesItemView SalesItem { get; set; } = new(); [Parameter] public SalesItemView SalesItem { get; set; } = new();
[Parameter] public EventCallback<DraftItem> OnSelected { get; set; } [Parameter] public EventCallback<DraftItem> OnSelected { get; set; }
private List<ProductHistoryView>? ProductHistory { get; set; } = new(); private List<ProductHistoryView>? ProductHistory { get; set; } = new();

View file

@ -64,8 +64,8 @@ public partial class AdvisorActivityCreatePage : IDisposable
private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true }; private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true };
private SalesItemView SelectedItem { get; set; } = new(); private SalesItemView SelectedItem { get; set; } = new();
private UserProfile UserProfile { get; set; } = new(); private UserProfile UserProfile { get; set; } = new();
private ActivityDto Activity { get; set; } = new(); private ActivityModel Activity { get; set; } = new();
private CompanyDto Company { get; set; } = new(); private CompanyModel Company { get; set; } = new();
private EditContext? ActivityContext { get; set; } private EditContext? ActivityContext { get; set; }
private bool PoFormInvalid { get; set; } = true; private bool PoFormInvalid { get; set; } = true;
private bool ShowItem { get; set; } private bool ShowItem { get; set; }
@ -77,7 +77,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
private bool InvalidActivity { get; set; } = true; private bool InvalidActivity { get; set; } = true;
private bool ReportClosed { get; set; } private bool ReportClosed { get; set; }
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
private UserManagerEditView SalesRep { get; set; } = new(); private UserAdminEditView SalesRep { get; set; } = new();
private DateTime SelectedDate { get; set; } private DateTime SelectedDate { get; set; }
private string OldPhone { get; set; } = ""; private string OldPhone { get; set; } = "";
private string PromptDateConfirm { get; set; } = ""; private string PromptDateConfirm { get; set; } = "";

View file

@ -136,7 +136,7 @@
<EditForm EditContext="NoteContext"> <EditForm EditContext="NoteContext">
<div class="row mb-2"> <div class="row mb-2">
<label class="form-label mb-1" for="office-note">Note /Kontor</label> <label class="form-label mb-1" for="office-note">Note /Kontor</label>
<InputTextArea class="form-control mb-1" id="office-note" rows="5" @bind-Value="Note.OfficeNote"></InputTextArea> <InputTextArea class="form-control mb-1" id="office-note" rows="5" @bind-Value="NoteModel.OfficeNote"></InputTextArea>
<div> <div>
Ordre noten lukkes efter @GraceTime minutter eller når den er plukket. Ordre noten lukkes efter @GraceTime minutter eller når den er plukket.
</div> </div>

View file

@ -36,7 +36,7 @@ public partial class AdvisorActivityViewEditPage : IDisposable
[Inject] public IToastService Toaster { get; set; } [Inject] public IToastService Toaster { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
private ReportItemView ReportItem { get; set; } = new(); private ReportItemView ReportItem { get; set; } = new();
private ActivityOfficeNote Note { get; set; } = new(); private ActivityOfficeNoteModel NoteModel { get; set; } = new();
private EditContext NoteContext { get; set; } private EditContext NoteContext { get; set; }
private bool Disabled { get; set; } private bool Disabled { get; set; }
private int GraceTime { get; set; } = 60; private int GraceTime { get; set; } = 60;
@ -47,11 +47,11 @@ public partial class AdvisorActivityViewEditPage : IDisposable
{ {
Interceptor.RegisterEvent(); Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
NoteContext = new EditContext(Note); NoteContext = new EditContext(NoteModel);
NoteContext.OnFieldChanged += HandleFieldChanged; NoteContext.OnFieldChanged += HandleFieldChanged;
ReportItem = await AdvisorActivityRepo.GetReportItem(OrderId); ReportItem = await AdvisorActivityRepo.GetReportItem(OrderId);
Note.ActivityId = ReportItem.ActivityId; NoteModel.ActivityId = ReportItem.ActivityId;
Note.OfficeNote = ReportItem.OfficeNote; NoteModel.OfficeNote = ReportItem.OfficeNote;
Logger.LogDebug("ReportItem => \n {}", JsonSerializer.Serialize(ReportItem)); Logger.LogDebug("ReportItem => \n {}", JsonSerializer.Serialize(ReportItem));
Working = false; Working = false;
} }
@ -65,8 +65,8 @@ public partial class AdvisorActivityViewEditPage : IDisposable
{ {
Working = true; Working = true;
Disabled = true; Disabled = true;
Logger.LogDebug("OfficeNote => \n {}", JsonSerializer.Serialize(Note)); Logger.LogDebug("OfficeNote => \n {}", JsonSerializer.Serialize(NoteModel));
await AdvisorActivityRepo.UpdateOfficeNote(Note); await AdvisorActivityRepo.UpdateOfficeNote(NoteModel);
Toaster.ShowInfo($"{ReportItem.ESalesNumber} - notat opdateret"); Toaster.ShowInfo($"{ReportItem.ESalesNumber} - notat opdateret");
Navigator.NavigateTo("/advisor/activity-today"); Navigator.NavigateTo("/advisor/activity-today");
} }

View file

@ -31,7 +31,7 @@ public partial class AdvisorCustomerActivityListPage : IDisposable
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; } [Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; } [Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
private List<ReportItemView> ActivityList { get; set; } = new(); private List<ReportItemView> ActivityList { get; set; } = new();
private CompanyDto Company { get; set; } = new(); private CompanyModel Company { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()

View file

@ -44,7 +44,7 @@ public partial class AdvisorCustomerCreatePage : IDisposable
[Inject] public IUserInfoService UserInfoService { get; set; } [Inject] public IUserInfoService UserInfoService { get; set; }
private EditContext CompanyContext { get; set; } private EditContext CompanyContext { get; set; }
private CompanyDto Company { get; set; } = new(); private CompanyModel Company { get; set; } = new();
private VatAddress CompanyVatAddress { get; set; } = new(); private VatAddress CompanyVatAddress { get; set; } = new();
private VatLookupDkModal VatLookupPopup { get; set; } = new(); private VatLookupDkModal VatLookupPopup { get; set; } = new();

View file

@ -44,7 +44,7 @@ public partial class AdvisorCustomerInventoryListPage : IDisposable
private readonly JsonSerializerOptions _options = new JsonSerializerOptions(JsonSerializerDefaults.Web); private readonly JsonSerializerOptions _options = new JsonSerializerOptions(JsonSerializerDefaults.Web);
private CompanyDto Company { get; set; } = new(); private CompanyModel Company { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
private SalesItemView SalesItem { get; set; } = new(); private SalesItemView SalesItem { get; set; } = new();
private CustomerInventoryReorderOverlay ReorderOverlay { get; set; } = new(); private CustomerInventoryReorderOverlay ReorderOverlay { get; set; } = new();

View file

@ -38,7 +38,7 @@ public partial class AdvisorCustomerInvoiceListPage : IDisposable
[Parameter] public string CompanyId { get; set; } = ""; [Parameter] public string CompanyId { get; set; } = "";
private InvoiceListView CompanyInvoices { get; set; } = new(); private InvoiceListView CompanyInvoices { get; set; } = new();
private CompanyDto Company { get; set; } = new(); private CompanyModel Company { get; set; } = new();
private CustomerInvoiceViewOverlay CustomerInvoiceView { get; set; } = new(); private CustomerInvoiceViewOverlay CustomerInvoiceView { get; set; } = new();
private string InvoiceId { get; set; } = ""; private string InvoiceId { get; set; } = "";
private bool Working { get; set; } private bool Working { get; set; }

View file

@ -35,9 +35,9 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
[Inject] public IUserInfoService UserInfoService { get; set; } [Inject] public IUserInfoService UserInfoService { get; set; }
private List<CompanyDto> CompanyList { get; set; } = new(); private List<CompanyModel> CompanyList { get; set; } = new();
private UserProfile Profile { get; set; } = new(); private UserProfile Profile { get; set; } = new();
private UserManagerEditView UserInfo { get; set; } = new(); private UserAdminEditView UserInfo { get; set; } = new();
private string SavedSearch { get; set; } = ""; private string SavedSearch { get; set; } = "";
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
private MetaData PageData { get; set; } = new(); private MetaData PageData { get; set; } = new();
@ -78,7 +78,7 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
Working = true; Working = true;
ShowFolded = !ShowFolded; ShowFolded = !ShowFolded;
ToggleFoldedText = ShowFolded ? "Normal Visning" : "Vis Lukkede"; ToggleFoldedText = ShowFolded ? "Normal Visning" : "Vis Lukkede";
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.PageNumber = 1; Paging.PageNumber = 1;
Paging.HasFolded = ShowFolded ? 1 : 0; Paging.HasFolded = ShowFolded ? 1 : 0;
await FetchCustomers(); await FetchCustomers();
@ -89,7 +89,7 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
Working = true; Working = true;
ShowHidden = !ShowHidden; ShowHidden = !ShowHidden;
ToggleHiddenText = ShowHidden ? "Normal Visning" : "Inkl. Skjulte"; ToggleHiddenText = ShowHidden ? "Normal Visning" : "Inkl. Skjulte";
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.PageNumber = 1; Paging.PageNumber = 1;
Paging.IsHidden = ShowHidden ? 1 : 0; Paging.IsHidden = ShowHidden ? 1 : 0;
await FetchCustomers(); await FetchCustomers();
@ -97,14 +97,14 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
private async Task SetSelectedPage(int page) private async Task SetSelectedPage(int page)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.PageNumber = page; Paging.PageNumber = page;
await FetchCustomers(); await FetchCustomers();
} }
private async Task SetSearchCol(string searchColumn) private async Task SetSearchCol(string searchColumn)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.SearchColumn = searchColumn; Paging.SearchColumn = searchColumn;
Paging.PageNumber = 1; Paging.PageNumber = 1;
await FetchCustomers(); await FetchCustomers();
@ -112,7 +112,7 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
private async Task SetPageSize(string pageSize) private async Task SetPageSize(string pageSize)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.PageSize = Convert.ToInt32(pageSize); Paging.PageSize = Convert.ToInt32(pageSize);
Paging.PageNumber = 1; Paging.PageNumber = 1;
await FetchCustomers(); await FetchCustomers();
@ -120,7 +120,7 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
private async Task SetSearchPhrase(string searchTerm) private async Task SetSearchPhrase(string searchTerm)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.PageNumber = 1; Paging.PageNumber = 1;
Paging.SearchTerm = searchTerm; Paging.SearchTerm = searchTerm;
await FetchCustomers(); await FetchCustomers();
@ -128,7 +128,7 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
private async Task SetSortCol(string orderBy) private async Task SetSortCol(string orderBy)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.OrderBy = orderBy; Paging.OrderBy = orderBy;
await FetchCustomers(); await FetchCustomers();
} }
@ -139,7 +139,7 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
/// <param name="companyId"></param> /// <param name="companyId"></param>
private async Task DeleteCompany(string companyId) private async Task DeleteCompany(string companyId)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
await CompanyRepo.DeleteCompany(companyId); await CompanyRepo.DeleteCompany(companyId);
if (Paging.PageNumber > 1 && CompanyList.Count == 1) if (Paging.PageNumber > 1 && CompanyList.Count == 1)
Paging.PageNumber--; Paging.PageNumber--;
@ -158,7 +158,7 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
} }
else else
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
PageData = new MetaData(); PageData = new MetaData();
} }
} }

View file

@ -47,7 +47,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
[Inject] public IUserInfoService UserInfoService { get; set; } [Inject] public IUserInfoService UserInfoService { get; set; }
private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true }; private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true };
private CompanyDto Company { get; set; } = new(); private CompanyModel Company { get; set; } = new();
private EditContext ErpContext { get; set; } private EditContext ErpContext { get; set; }
private DateTime LastVisit { get; set; } private DateTime LastVisit { get; set; }
private DateTime NextVisit { get; set; } private DateTime NextVisit { get; set; }
@ -64,12 +64,12 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
private bool CountryIsDk { get; set; } = true; private bool CountryIsDk { get; set; } = true;
private bool ErpEditDisabled { get; set; } = true; private bool ErpEditDisabled { get; set; } = true;
private bool VatEditDisabled { get; set; } = true; private bool VatEditDisabled { get; set; } = true;
private List<ContactDto> Contacts { get; set; } = new(); private List<ContactModel> Contacts { get; set; } = new();
private VatLookupDkModal VatLookupPopup { get; set; } = new(); private VatLookupDkModal VatLookupPopup { get; set; } = new();
private ContactDto SelectedContact { get; set; } = new(); private ContactModel SelectedContact { get; set; } = new();
private ContactDto DefaultContact { get; set; } = new(); private ContactModel DefaultContact { get; set; } = new();
private ContactModal ContactPopup { get; set; } = new(); private ContactModal ContactPopup { get; set; } = new();
private UserManagerEditView UserInfo { get; set; } = new(); private UserAdminEditView UserInfo { get; set; } = new();
private string ToggleButtonText { get; set; } = ""; private string ToggleButtonText { get; set; } = "";
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
@ -79,7 +79,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
// initialize default contact // initialize default contact
DefaultContact = new ContactDto { CompanyId = CompanyId, ContactId = "", FirstName = "" }; DefaultContact = new ContactModel { CompanyId = CompanyId, ContactId = "", FirstName = "" };
// setup form context // setup form context
ErpContext = new EditContext(Company); ErpContext = new EditContext(Company);
@ -229,7 +229,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
/// Open contact edit popup /// Open contact edit popup
/// </summary> /// </summary>
/// <param name="contact"></param> /// <param name="contact"></param>
private void OpenContactPopup(ContactDto contact) private void OpenContactPopup(ContactModel contact)
{ {
// write contact to debug log // write contact to debug log
Logger.LogDebug("CompanyView => SaveContactCallback <= {}", JsonSerializer.Serialize(contact)); Logger.LogDebug("CompanyView => SaveContactCallback <= {}", JsonSerializer.Serialize(contact));
@ -243,7 +243,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
/// Callback for writing contact to backend /// Callback for writing contact to backend
/// </summary> /// </summary>
/// <param name="contact"></param> /// <param name="contact"></param>
private async Task WriteContactCallback(ContactDto contact) private async Task WriteContactCallback(ContactModel contact)
{ {
Working = true; Working = true;
// write contact to debug log // write contact to debug log
@ -265,7 +265,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
} }
// reset selected contact // reset selected contact
SelectedContact = new ContactDto(); SelectedContact = new ContactModel();
// reload contacts from backend // reload contacts from backend
await FetchContacts(CompanyId); await FetchContacts(CompanyId);
Working = false; Working = false;
@ -282,7 +282,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
// send delete request to backend // send delete request to backend
await AdvisorContactRepo.DeleteContact(CompanyId, contactId); await AdvisorContactRepo.DeleteContact(CompanyId, contactId);
// reset selected contact // reset selected contact
SelectedContact = new ContactDto(); SelectedContact = new ContactModel();
// reload contacts from backend // reload contacts from backend
await FetchContacts(CompanyId); await FetchContacts(CompanyId);
Working = false; Working = false;
@ -368,7 +368,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
private static VatAddress PrepareVatAddress(CompanyDto model) private static VatAddress PrepareVatAddress(CompanyModel model)
{ {
var digits = "1234567890".ToCharArray(); var digits = "1234567890".ToCharArray();
// process address1 // process address1

View file

@ -39,9 +39,9 @@ public partial class AdvisorReportCreatePage : IDisposable
[Inject] public ILogger<AdvisorReportCreatePage> Logger { get; set; } [Inject] public ILogger<AdvisorReportCreatePage> Logger { get; set; }
[Inject] public IToastService Toaster { get; set; } [Inject] public IToastService Toaster { get; set; }
private EditContext ReportContext { get; set; } private EditContext ReportContext { get; set; }
private ReportDto Report { get; set; } = new(); private ReportModel Report { get; set; } = new();
private List<ReportItemView> Activities { get; set; } = new(); private List<ReportItemView> Activities { get; set; } = new();
private ReportFiguresDto InitialValues { get; set; } = new(); private ReportFiguresModel InitialValues { get; set; } = new();
private UserProfile Profiles { get; set; } = new(); private UserProfile Profiles { get; set; } = new();
private bool FormInvalid { get; set; } = true; private bool FormInvalid { get; set; } = true;
private bool NoFigures { get; set; } = true; private bool NoFigures { get; set; } = true;
@ -117,8 +117,8 @@ public partial class AdvisorReportCreatePage : IDisposable
return; return;
Working = true; Working = true;
Report.Figures = new ReportFiguresDto(); Report.Figures = new ReportFiguresModel();
InitialValues = new ReportFiguresDto(); InitialValues = new ReportFiguresModel();
Activities = new List<ReportItemView>(); Activities = new List<ReportItemView>();
var data = await AdvisorReportRepo.InitializeReportData(WorkDate); var data = await AdvisorReportRepo.InitializeReportData(WorkDate);
@ -283,8 +283,8 @@ public partial class AdvisorReportCreatePage : IDisposable
ThisWorkDate = DateTime.Parse(workDate); ThisWorkDate = DateTime.Parse(workDate);
NoFigures = true; NoFigures = true;
Report.Figures = new ReportFiguresDto(); Report.Figures = new ReportFiguresModel();
InitialValues = new ReportFiguresDto(); InitialValues = new ReportFiguresModel();
Activities = new List<ReportItemView>(); Activities = new List<ReportItemView>();
Report.Figures.KmEvening = 0; Report.Figures.KmEvening = 0;

View file

@ -19,7 +19,7 @@
@using Wonky.Client.Models @using Wonky.Client.Models
@attribute [Authorize(Roles = "Advisor")] @attribute [Authorize(Roles = "Advisor")]
@page "/advisor/reports/view/{ReportDate}" @page "/advisor/reports/view/{ReportDate}"
<PageTitle>@Report.ReportData.Name</PageTitle> <PageTitle>@Report.ReportDataView.Name</PageTitle>
<div class="row bg-dark text-white rounded-2 mb-2 py-2 align-items-center d-print-none"> <div class="row bg-dark text-white rounded-2 mb-2 py-2 align-items-center d-print-none">
<div class="col-sm-6"> <div class="col-sm-6">
<WorkDateComponent OnChangedCallback="FetchReport"/> <WorkDateComponent OnChangedCallback="FetchReport"/>
@ -36,22 +36,22 @@
</div> </div>
<div class="report-main d-print-table"> <div class="report-main d-print-table">
@if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum)) @if (!string.IsNullOrWhiteSpace(Report.ReportDataView.DayTypeEnum))
{ {
<PageTitle>@Report.ReportData.Name</PageTitle> <PageTitle>@Report.ReportDataView.Name</PageTitle>
<div class="alert bg-light text-dark text-center align-content-center"> <div class="alert bg-light text-dark text-center align-content-center">
<h2>@Report.ReportData.Name</h2> <h2>@Report.ReportDataView.Name</h2>
</div> </div>
<div class="row"> <div class="row">
<div class="w-75"> <div class="w-75">
<ReportSummaryComponent ReportData="Report.ReportData"/> <ReportSummaryComponent ReportData="Report.ReportDataView"/>
</div> </div>
<div class="w-25"> <div class="w-25">
<ReportDistanceLedgerComponent ReportData="Report.ReportData"/> <ReportDistanceLedgerComponent ReportData="Report.ReportDataView"/>
</div> </div>
</div> </div>
<AdvisorActivityListComponent ActivityList="Report.ReportItems"/> <AdvisorActivityListComponent ActivityList="Report.ReportItems"/>
<ReportActivityLedgerComponent ReportData="Report.ReportData"/> <ReportActivityLedgerComponent ReportData="Report.ReportDataView"/>
} }
else else
{ {

View file

@ -41,7 +41,7 @@ public partial class AdvisorReportViewPage : IDisposable
private ReportView Report { get; set; } = new(); private ReportView Report { get; set; } = new();
private List<ReportItemView> Activities { get; set; } = new (); private List<ReportItemView> Activities { get; set; } = new ();
private bool Working { get; set; } private bool Working { get; set; }
private UserManagerEditView XUserInfo { get; set; } = new(); private UserAdminEditView XUserInfo { get; set; } = new();
private string ReturnUrl { get; set; } = ""; private string ReturnUrl { get; set; } = "";
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
@ -83,7 +83,7 @@ public partial class AdvisorReportViewPage : IDisposable
{ {
// remove busy signal if report is empty // remove busy signal if report is empty
if (string.IsNullOrWhiteSpace(Report.ReportData.ReportDate)) if (string.IsNullOrWhiteSpace(Report.ReportDataView.ReportDate))
{ {
Working = false; Working = false;
} }
@ -111,9 +111,9 @@ public partial class AdvisorReportViewPage : IDisposable
Activities = Report.ReportItems.Where(x => x.Lines.Any()).ToList(); Activities = Report.ReportItems.Where(x => x.Lines.Any()).ToList();
// store the report locally // store the report locally
if (!string.IsNullOrWhiteSpace(Report.ReportData.ReportDate)) if (!string.IsNullOrWhiteSpace(Report.ReportDataView.ReportDate))
{ {
await Storage.SetItemAsync($"{XUserInfo.UserId}-{Report.ReportData.ReportDate}", Report); await Storage.SetItemAsync($"{XUserInfo.UserId}-{Report.ReportDataView.ReportDate}", Report);
} }
// remove busy signal // remove busy signal

View file

@ -35,7 +35,7 @@ public partial class AdvisorTaskItemListCrmPage : IDisposable
private UserProfile Profile { get; set; } = new(); private UserProfile Profile { get; set; } = new();
private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}"; private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
private List<TaskItemDto> TaskItems { get; set; } = new(); private List<TaskItemModel> TaskItems { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()

View file

@ -29,7 +29,7 @@ public partial class AdvisorTaskItemViewCrmPage : IDisposable
[Parameter] public string TaskItemId { get; set; } [Parameter] public string TaskItemId { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IAdvisorTaskItemRepository TaskRepo { get; set; } [Inject] public IAdvisorTaskItemRepository TaskRepo { get; set; }
private TaskItemDto TaskItem { get; set; } = new (); private TaskItemModel TaskItem { get; set; } = new ();
private EditContext TaskContext { get; set; } private EditContext TaskContext { get; set; }
private bool Working { get; set; } = true; private bool Working { get; set; } = true;

View file

@ -30,7 +30,7 @@ public partial class AdvisorWorkplaceListPage : IDisposable
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; } [Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
private List<WorkplaceListView> WorkplaceList { get; set; } = new(); private List<WorkplaceListView> WorkplaceList { get; set; } = new();
private CompanyDto Company { get; set; } = new(); private CompanyModel Company { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()

View file

@ -31,7 +31,7 @@ public partial class AdvisorWorkplaceViewPage : IDisposable
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; } [Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
private WorkplaceDto Workplace { get; set; } = new(); private WorkplaceModel Workplace { get; set; } = new();
private EditContext WorkplaceContext { get; set; } private EditContext WorkplaceContext { get; set; }
private bool Working { get; set; } = true; private bool Working { get; set; } = true;

View file

@ -21,7 +21,6 @@ using Wonky.Client.HttpRepository;
using Wonky.Client.Services; using Wonky.Client.Services;
using Wonky.Entity.Requests; using Wonky.Entity.Requests;
using Wonky.Entity.Views; using Wonky.Entity.Views;
using Wonky.Client.Services;
using Wonky.Entity.DTO; using Wonky.Entity.DTO;
#pragma warning disable CS8618 #pragma warning disable CS8618
@ -44,7 +43,7 @@ public partial class CatalogCountryPagedListPage : IDisposable
private MetaData PageData { get; set; } = new(); private MetaData PageData { get; set; } = new();
private CatalogPager Paging { get; set; } = new(); private CatalogPager Paging { get; set; } = new();
private UserProfile Profiles { get; set; } = new(); private UserProfile Profiles { get; set; } = new();
private UserManagerEditView XUserInfo { get; set; } = new(); private UserAdminEditView XUserInfo { get; set; } = new();
private bool Working { get; set; } private bool Working { get; set; }
private string CountryName { get; set; } = ""; private string CountryName { get; set; } = "";

View file

@ -71,7 +71,7 @@ public partial class CommonReportPrintOrderPage
foreach (var item in orders) foreach (var item in orders)
{ {
Toaster.ShowInfo($"Behandler {current++} af {count} ordrer. Vent venligst"); Toaster.ShowInfo($"Behandler {current++} af {count} ordrer. Vent venligst");
await ProcessRepo.UpdateWarehouseOrderStatus(new OrderProcessState await ProcessRepo.UpdateWarehouseOrderStatus(new OrderProcessStateModel
{ {
OrderId = item.ActivityId, OrderId = item.ActivityId,
ProcessStatusEnum = Utils.EnumToString(ProcessStatus.Printed) ProcessStatusEnum = Utils.EnumToString(ProcessStatus.Printed)

View file

@ -29,22 +29,22 @@
</div> </div>
<div class="report-main d-print-table"> <div class="report-main d-print-table">
<PageTitle>@Report.ReportData.Name</PageTitle> <PageTitle>@Report.ReportDataView.Name</PageTitle>
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<div class="alert border border-2 border-dark text-center align-content-center"> <div class="alert border border-2 border-dark text-center align-content-center">
<h3>@Report.ReportData.Name</h3> <h3>@Report.ReportDataView.Name</h3>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="w-75"> <div class="w-75">
<ReportSummaryComponent ReportData="Report.ReportData"/> <ReportSummaryComponent ReportData="Report.ReportDataView"/>
</div> </div>
<div class="w-25"> <div class="w-25">
<ReportDistanceLedgerComponent ReportData="Report.ReportData"/> <ReportDistanceLedgerComponent ReportData="Report.ReportDataView"/>
</div> </div>
</div> </div>
<OfficeReportActivityListComponent ActivityList="Report.ReportItems"/> <OfficeReportActivityListComponent ActivityList="Report.ReportItems"/>
<ReportActivityLedgerComponent ReportData="Report.ReportData"/> <ReportActivityLedgerComponent ReportData="Report.ReportDataView"/>
</div> </div>

View file

@ -36,7 +36,7 @@
</div> </div>
<div class="col-lg-8"> <div class="col-lg-8">
<div class="card-body py-5 px-md-5"> <div class="card-body py-5 px-md-5">
<EditForm Model="CredentialDto" OnValidSubmit="ExecuteLogin" class="form"> <EditForm Model="CredentialModel" OnValidSubmit="ExecuteLogin" class="form">
<DataAnnotationsValidator/> <DataAnnotationsValidator/>
@* username *@ @* username *@
<div class="input-group mb-4"> <div class="input-group mb-4">
@ -44,8 +44,8 @@
<i class="bi-at"></i> <i class="bi-at"></i>
</span> </span>
<InputText type="email" class="form-control" aria-described-by="at" <InputText type="email" class="form-control" aria-described-by="at"
@bind-Value="CredentialDto.Email" autocomplete="username"/> @bind-Value="CredentialModel.Email" autocomplete="username"/>
<ValidationMessage For="@(() => CredentialDto.Email)"/> <ValidationMessage For="@(() => CredentialModel.Email)"/>
</div> </div>
@* current-password *@ @* current-password *@
<div class="input-group mb-4"> <div class="input-group mb-4">
@ -53,8 +53,8 @@
<i class="oi oi-key"></i> <i class="oi oi-key"></i>
</span> </span>
<InputText type="password" class="form-control" aria-described-by="key" <InputText type="password" class="form-control" aria-described-by="key"
@bind-Value="CredentialDto.Password" autocomplete="current-password"/> @bind-Value="CredentialModel.Password" autocomplete="current-password"/>
<ValidationMessage For="@(() => CredentialDto.Password)"/> <ValidationMessage For="@(() => CredentialModel.Password)"/>
</div> </div>
@* submit button *@ @* submit button *@
<div class="d-grid"> <div class="d-grid">

View file

@ -27,7 +27,7 @@ public partial class Login
[Inject] public IAuthenticationService AuthenticationService { get; set; } [Inject] public IAuthenticationService AuthenticationService { get; set; }
[Inject] public ILogger<Login> Logger { get; set; } [Inject] public ILogger<Login> Logger { get; set; }
[Parameter] public string ReturnUrl { get; set; } = ""; [Parameter] public string ReturnUrl { get; set; } = "";
private CredentialDto CredentialDto { get; set; } = new (); private CredentialModel CredentialModel { get; set; } = new ();
private bool ShowAuthError { get; set; } private bool ShowAuthError { get; set; }
private string? Error { get; set; } private string? Error { get; set; }
private bool execLogin = false; private bool execLogin = false;
@ -37,7 +37,7 @@ public partial class Login
ShowAuthError = false; ShowAuthError = false;
execLogin = true; execLogin = true;
var result = await AuthenticationService.Login(CredentialDto); var result = await AuthenticationService.Login(CredentialModel);
if (!result.IsSuccess) if (!result.IsSuccess)
{ {
Error = result.ErrorMessage; Error = result.ErrorMessage;

View file

@ -35,24 +35,24 @@
</div> </div>
<div class="report-main d-print-print"> <div class="report-main d-print-print">
@if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum)) @if (!string.IsNullOrWhiteSpace(Report.ReportDataView.DayTypeEnum))
{ {
<PageTitle>@Report.ReportData.Name</PageTitle> <PageTitle>@Report.ReportDataView.Name</PageTitle>
<div class="row"> <div class="row">
<div class="alert border border-1 border-dark text-center align-content-center"> <div class="alert border border-1 border-dark text-center align-content-center">
<h3>@Report.ReportData.Name</h3> <h3>@Report.ReportDataView.Name</h3>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="w-75"> <div class="w-75">
<ReportSummaryComponent ReportData="Report.ReportData"/> <ReportSummaryComponent ReportData="Report.ReportDataView"/>
</div> </div>
<div class="w-25"> <div class="w-25">
<ReportDistanceLedgerComponent ReportData="Report.ReportData"/> <ReportDistanceLedgerComponent ReportData="Report.ReportDataView"/>
</div> </div>
</div> </div>
<OfficeReportActivityListComponent ActivityList="Report.ReportItems"/> <OfficeReportActivityListComponent ActivityList="Report.ReportItems"/>
<ReportActivityLedgerComponent ReportData="Report.ReportData"/> <ReportActivityLedgerComponent ReportData="Report.ReportDataView"/>
} }
else else
{ {

View file

@ -98,7 +98,7 @@ public partial class OfficeAdvisorReportViewPage : IDisposable
foreach (var item in orders) foreach (var item in orders)
{ {
Toaster.ShowInfo($"Behandler {current++} af {count} ordrer. Vent venligst"); Toaster.ShowInfo($"Behandler {current++} af {count} ordrer. Vent venligst");
await ProcessRepo.UpdateWarehouseOrderStatus(new OrderProcessState await ProcessRepo.UpdateWarehouseOrderStatus(new OrderProcessStateModel
{ {
OrderId = item.ActivityId, OrderId = item.ActivityId,
ProcessStatusEnum = Utils.EnumToString(ProcessStatus.Printed) ProcessStatusEnum = Utils.EnumToString(ProcessStatus.Printed)
@ -115,7 +115,7 @@ public partial class OfficeAdvisorReportViewPage : IDisposable
private async Task FetchUserReport(string workDate) private async Task FetchUserReport(string workDate)
{ {
// remove busy signal if report is empty // remove busy signal if report is empty
if (string.IsNullOrWhiteSpace(Report.ReportData.ReportDate)) if (string.IsNullOrWhiteSpace(Report.ReportDataView.ReportDate))
{ {
Working = false; Working = false;
} }
@ -145,7 +145,7 @@ public partial class OfficeAdvisorReportViewPage : IDisposable
Activities = Report.ReportItems.Where(x => x.Lines.Any()).ToList(); Activities = Report.ReportItems.Where(x => x.Lines.Any()).ToList();
// store locally // store locally
if (!string.IsNullOrWhiteSpace(Report.ReportData.ReportDate)) if (!string.IsNullOrWhiteSpace(Report.ReportDataView.ReportDate))
{ {
await Storage.SetItemAsync($"{UserId}-{workDate}", Report); await Storage.SetItemAsync($"{UserId}-{workDate}", Report);
} }

View file

@ -30,12 +30,12 @@ public partial class OfficeCustomerAdvisorPagedListPage : IDisposable
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ICountryCustomerRepository CustomerRepo { get; set; } [Inject] public ICountryCustomerRepository CustomerRepo { get; set; }
[Inject] public UserProfileService UserProfileService { get; set; } [Inject] public UserProfileService UserProfileService { get; set; }
[Inject] public ISystemUserRepository UserRepo { get; set; } [Inject] public IOfficeUserInfoRepository UserRepo { get; set; }
[Parameter] public string UserId { get; set; } = ""; [Parameter] public string UserId { get; set; } = "";
[Parameter] public string CountryCode { get; set; } = "dk"; [Parameter] public string CountryCode { get; set; } = "dk";
private List<CompanyDto> CompanyList { get; set; } = new(); private List<CompanyModel> CompanyList { get; set; } = new();
private MetaData PageData { get; set; } = new(); private MetaData PageData { get; set; } = new();
private CustomerPaging Paging { get; set; } = new(); private CustomerPaging Paging { get; set; } = new();
private UserProfile UserProfile { get; set; } = new(); private UserProfile UserProfile { get; set; } = new();
@ -44,7 +44,7 @@ public partial class OfficeCustomerAdvisorPagedListPage : IDisposable
private bool ShowFolded { get; set; } private bool ShowFolded { get; set; }
private string ToggleFoldedText { get; set; } = "Vis Lukkede"; private string ToggleFoldedText { get; set; } = "Vis Lukkede";
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
private UserManagerEditView SalesRep { get; set; } = new(); private UserAdvisorInfoView SalesRep { get; set; } = new();
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
{ {
@ -73,7 +73,7 @@ public partial class OfficeCustomerAdvisorPagedListPage : IDisposable
Working = true; Working = true;
ShowFolded = !ShowFolded; ShowFolded = !ShowFolded;
ToggleFoldedText = ShowFolded ? "Normal Visning" : "Vis Lukkede"; ToggleFoldedText = ShowFolded ? "Normal Visning" : "Vis Lukkede";
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.PageNumber = 1; Paging.PageNumber = 1;
Paging.HasFolded = ShowFolded ? 1 : 0; Paging.HasFolded = ShowFolded ? 1 : 0;
await FetchCompanies(); await FetchCompanies();
@ -81,14 +81,14 @@ public partial class OfficeCustomerAdvisorPagedListPage : IDisposable
private async Task SetSelectedPage(int page) private async Task SetSelectedPage(int page)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.PageNumber = page; Paging.PageNumber = page;
await FetchCompanies(); await FetchCompanies();
} }
private async Task SetSearchCol(string searchColumn) private async Task SetSearchCol(string searchColumn)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.SearchColumn = searchColumn; Paging.SearchColumn = searchColumn;
Paging.PageNumber = 1; Paging.PageNumber = 1;
await FetchCompanies(); await FetchCompanies();
@ -96,7 +96,7 @@ public partial class OfficeCustomerAdvisorPagedListPage : IDisposable
private async Task SetPageSize(string pageSize) private async Task SetPageSize(string pageSize)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.PageSize = Convert.ToInt32(pageSize); Paging.PageSize = Convert.ToInt32(pageSize);
Paging.PageNumber = 1; Paging.PageNumber = 1;
await FetchCompanies(); await FetchCompanies();
@ -106,7 +106,7 @@ public partial class OfficeCustomerAdvisorPagedListPage : IDisposable
{ {
// if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.Length < 3) return; // if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.Length < 3) return;
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.PageNumber = 1; Paging.PageNumber = 1;
Paging.SearchTerm = searchTerm; Paging.SearchTerm = searchTerm;
await FetchCompanies(); await FetchCompanies();
@ -119,7 +119,7 @@ public partial class OfficeCustomerAdvisorPagedListPage : IDisposable
private async Task SetSortCol(string orderBy) private async Task SetSortCol(string orderBy)
{ {
CompanyList = new List<CompanyDto>(); CompanyList = new List<CompanyModel>();
Paging.OrderBy = orderBy; Paging.OrderBy = orderBy;
await FetchCompanies(); await FetchCompanies();
} }

View file

@ -36,9 +36,9 @@ public partial class OfficeCustomerCountryPagedListPage : IDisposable
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
[Inject] public IUserInfoService UserInfoService { get; set; } [Inject] public IUserInfoService UserInfoService { get; set; }
private List<CompanyDto> Companies { get; set; } = new(); private List<CompanyModel> Companies { get; set; } = new();
private UserProfile Profiles { get; set; } = new(); private UserProfile Profiles { get; set; } = new();
private UserManagerEditView XUserInfo { get; set; } = new(); private UserAdminEditView UserInfo { get; set; } = new();
private string SavedSearch { get; set; } = ""; private string SavedSearch { get; set; } = "";
private bool ShowFolded { get; set; } private bool ShowFolded { get; set; }
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
@ -55,7 +55,7 @@ public partial class OfficeCustomerCountryPagedListPage : IDisposable
// set preferences // set preferences
Profiles = await ProfileService.GetProfile(); Profiles = await ProfileService.GetProfile();
XUserInfo = await UserInfoService.GetUserInfo(); UserInfo = await UserInfoService.GetUserInfo();
Paging.OrderBy = Profiles.CompanySort; Paging.OrderBy = Profiles.CompanySort;
Paging.SearchColumn = Profiles.CompanySearch; Paging.SearchColumn = Profiles.CompanySearch;
Paging.PageSize = Convert.ToInt32(Profiles.PageSize); Paging.PageSize = Convert.ToInt32(Profiles.PageSize);
@ -74,7 +74,7 @@ public partial class OfficeCustomerCountryPagedListPage : IDisposable
Working = true; Working = true;
ShowFolded = !ShowFolded; ShowFolded = !ShowFolded;
ToggleFoldedText = ShowFolded ? "Normal Visning" : "Vis Lukkede"; ToggleFoldedText = ShowFolded ? "Normal Visning" : "Vis Lukkede";
Companies = new List<CompanyDto>(); Companies = new List<CompanyModel>();
Paging.PageNumber = 1; Paging.PageNumber = 1;
Paging.HasFolded = ShowFolded ? 1 : 0; Paging.HasFolded = ShowFolded ? 1 : 0;
await FetchCustomers(); await FetchCustomers();
@ -83,7 +83,7 @@ public partial class OfficeCustomerCountryPagedListPage : IDisposable
private async Task SetSelectedPage(int page) private async Task SetSelectedPage(int page)
{ {
Working = true; Working = true;
Companies = new List<CompanyDto>(); Companies = new List<CompanyModel>();
Paging.PageNumber = page; Paging.PageNumber = page;
await FetchCustomers(); await FetchCustomers();
} }
@ -91,7 +91,7 @@ public partial class OfficeCustomerCountryPagedListPage : IDisposable
private async Task SetSearchCol(string searchColumn) private async Task SetSearchCol(string searchColumn)
{ {
Working = true; Working = true;
Companies = new List<CompanyDto>(); Companies = new List<CompanyModel>();
Paging.SearchColumn = searchColumn; Paging.SearchColumn = searchColumn;
Paging.PageNumber = 1; Paging.PageNumber = 1;
await FetchCustomers(); await FetchCustomers();
@ -99,7 +99,7 @@ public partial class OfficeCustomerCountryPagedListPage : IDisposable
private async Task SetPageSize(string pageSize) private async Task SetPageSize(string pageSize)
{ {
Working = true; Working = true;
Companies = new List<CompanyDto>(); Companies = new List<CompanyModel>();
Paging.PageSize = Convert.ToInt32(pageSize); Paging.PageSize = Convert.ToInt32(pageSize);
Paging.PageNumber = 1; Paging.PageNumber = 1;
await FetchCustomers(); await FetchCustomers();
@ -108,7 +108,7 @@ public partial class OfficeCustomerCountryPagedListPage : IDisposable
private async Task SetSearchPhrase(string searchTerm) private async Task SetSearchPhrase(string searchTerm)
{ {
Working = true; Working = true;
Companies = new List<CompanyDto>(); Companies = new List<CompanyModel>();
Paging.PageNumber = 1; Paging.PageNumber = 1;
Paging.SearchTerm = searchTerm; Paging.SearchTerm = searchTerm;
await FetchCustomers(); await FetchCustomers();
@ -117,7 +117,7 @@ public partial class OfficeCustomerCountryPagedListPage : IDisposable
private async Task SetSortCol(string orderBy) private async Task SetSortCol(string orderBy)
{ {
Working = true; Working = true;
Companies = new List<CompanyDto>(); Companies = new List<CompanyModel>();
Paging.OrderBy = orderBy; Paging.OrderBy = orderBy;
await FetchCustomers(); await FetchCustomers();
} }
@ -134,7 +134,7 @@ public partial class OfficeCustomerCountryPagedListPage : IDisposable
} }
else else
{ {
Companies = new List<CompanyDto>(); Companies = new List<CompanyModel>();
PageData = new MetaData(); PageData = new MetaData();
} }
} }

View file

@ -58,11 +58,11 @@ public partial class OfficeOrderCreatePage : IDisposable
// private variables // private variables
private readonly JsonSerializerOptions _options = new() {PropertyNameCaseInsensitive = true}; private readonly JsonSerializerOptions _options = new() {PropertyNameCaseInsensitive = true};
// class objects // class objects
private CompanyDto Company { get; set; } = new(); private CompanyModel Company { get; set; } = new();
private UserManagerEditView UserInfo { get; set; } = new(); private UserAdminEditView UserInfo { get; set; } = new();
private SalesItemView SelectedItem { get; set; } = new(); private SalesItemView SelectedItem { get; set; } = new();
private ActivityDto Activity { get; set; } = new(); private ActivityModel Activity { get; set; } = new();
private UserManagerEditView SalesRep { get; set; } = new(); private UserAdminEditView SalesRep { get; set; } = new();
// edit context // edit context
private EditContext ActivityContext { get; set; } private EditContext ActivityContext { get; set; }
// variables // variables

View file

@ -36,7 +36,7 @@ public partial class OfficeOrderViewPage : IDisposable
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; } [Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
[Inject] public ISystemSendMailService MailService { get; set; } [Inject] public ISystemSendMailService MailService { get; set; }
[Inject] public ILocalStorageService Storage { get; set; } [Inject] public ILocalStorageService Storage { get; set; }
[Inject] public ISystemUserRepository SystemUserRepo { get; set; } [Inject] public IOfficeUserInfoRepository UserRepo { get; set; }
[Inject] public ILogger<OfficeOrderViewPage> Logger { get; set; } [Inject] public ILogger<OfficeOrderViewPage> Logger { get; set; }
[Inject] public IToastService Toast { get; set; } [Inject] public IToastService Toast { get; set; }
[Inject] public IUserInfoService UserInfoService { get; set; } [Inject] public IUserInfoService UserInfoService { get; set; }
@ -76,7 +76,7 @@ public partial class OfficeOrderViewPage : IDisposable
// get user info from storage // get user info from storage
var user = await UserInfoService.GetUserInfo(); var user = await UserInfoService.GetUserInfo();
// fetch sales rep from response // fetch sales rep from response
var salesRep = await SystemUserRepo.GetUserInfo(responseView.Id); var salesRep = await UserRepo.GetUserInfo(responseView.Id);
Logger.LogDebug("SetExpressState => salesRep => {}", JsonSerializer.Serialize(salesRep)); Logger.LogDebug("SetExpressState => salesRep => {}", JsonSerializer.Serialize(salesRep));
// create email notification body // create email notification body
var body = new StringBuilder(); var body = new StringBuilder();
@ -90,7 +90,7 @@ public partial class OfficeOrderViewPage : IDisposable
body.AppendLine($"{user.FirstName} {user.LastName}"); body.AppendLine($"{user.FirstName} {user.LastName}");
body.AppendLine($"{user.PhoneNumber}"); body.AppendLine($"{user.PhoneNumber}");
// create a list of mail addresses // create a list of mail addresses
var sendTo = new List<EmailContact> var sendTo = new List<EmailContactModel>
{ {
new() new()
{ {
@ -99,7 +99,7 @@ public partial class OfficeOrderViewPage : IDisposable
} }
}; };
// create an email // create an email
var msg = new EmailMessage var msg = new EmailMessageModel
{ {
Body = body.ToString(), Body = body.ToString(),
Subject = $"Haste ordre til {ReportItem.Company.Name} er modtaget.", Subject = $"Haste ordre til {ReportItem.Company.Name} er modtaget.",

View file

@ -18,6 +18,8 @@ using Wonky.Client.Helpers;
using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository; using Wonky.Client.HttpRepository;
using Wonky.Entity.DTO; using Wonky.Entity.DTO;
using Wonky.Entity.Views;
#pragma warning disable CS8618 #pragma warning disable CS8618
namespace Wonky.Client.Pages; namespace Wonky.Client.Pages;
@ -25,9 +27,9 @@ namespace Wonky.Client.Pages;
public partial class OfficeUserAdvisorListPage :IDisposable public partial class OfficeUserAdvisorListPage :IDisposable
{ {
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ISystemUserRepository SystemUserRepo { get; set; } [Inject] public IOfficeUserInfoRepository UserRepo { get; set; }
[Parameter] public string CountryCode { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = "";
private List<UserManagerListView> SalesReps { get; set; } = new(); private List<UserInfoListView> SalesReps { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
private string CountryName { get; set; } = ""; private string CountryName { get; set; } = "";
@ -36,9 +38,9 @@ public partial class OfficeUserAdvisorListPage :IDisposable
Interceptor.RegisterEvent(); Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
CountryName = Utils.CountryName(CountryCode); CountryName = Utils.CountryName(CountryCode);
var AdvisorList = await SystemUserRepo.GetUsers(); var AdvisorList = await UserRepo.GetUsers("Advisor");
SalesReps = AdvisorList SalesReps = AdvisorList
.Where(x => x.CountryCode.ToLower() == CountryCode && int.TryParse(x.SalesRep, out _)) .OrderBy(x => x.FullName)
.ToList(); .ToList();
Working = false; Working = false;
} }

View file

@ -19,11 +19,11 @@
@attribute [Authorize(Roles = "Admin,Office")] @attribute [Authorize(Roles = "Admin,Office")]
@page "/office/users/advisors/{CountryCode}/{UserId}/reports" @page "/office/users/advisors/{CountryCode}/{UserId}/reports"
<PageTitle>Rapport Arkiv @UserInfo.FirstName @UserInfo.LastName</PageTitle> <PageTitle>Rapport Arkiv @AdvisorInfo.FirstName @AdvisorInfo.LastName</PageTitle>
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<div class="mt-3 h3 card-title"> <div class="mt-3 h3 card-title">
Rapport Arkiv - @UserInfo.FirstName @UserInfo.LastName Rapport Arkiv - @AdvisorInfo.FirstName @AdvisorInfo.LastName
</div> </div>
</div> </div>
<OfficeReportListComponent OnShowReport="ShowThisReport" CountryCode="@CountryCode" UserId="@UserId" ReportList="@ActivityReports" /> <OfficeReportListComponent OnShowReport="ShowThisReport" CountryCode="@CountryCode" UserId="@UserId" ReportList="@ActivityReports" />

View file

@ -29,11 +29,11 @@ public partial class OfficeUserAdvisorReportListPage : IDisposable
[Parameter] public string CountryCode { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = "";
[Inject] public ICountryReportRepository ReportRepo { get; set; } [Inject] public ICountryReportRepository ReportRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ISystemUserRepository SystemUserRepo { get; set; } [Inject] public IOfficeUserInfoRepository UserRepo { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
private List<SalesReportListView> ActivityReports { get; set; } = new(); private List<SalesReportListView> ActivityReports { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
private UserManagerEditView UserInfo { get; set; } = new(); private UserAdvisorInfoView AdvisorInfo { get; set; } = new();
/// <summary> /// <summary>
/// override OnParametersSeAsync /// override OnParametersSeAsync
@ -43,8 +43,8 @@ public partial class OfficeUserAdvisorReportListPage : IDisposable
Interceptor.RegisterEvent(); Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
UserInfo = await SystemUserRepo.GetUserInfo(UserId); AdvisorInfo = await UserRepo.GetUserInfo(UserId);
while (string.IsNullOrWhiteSpace(UserInfo.UserId)) while (string.IsNullOrWhiteSpace(AdvisorInfo.UserId))
{ {
await Task.Delay(500); await Task.Delay(500);
} }

View file

@ -35,9 +35,9 @@ public partial class OfficeUserAdvisorViewEditPage : IDisposable
[Inject] public ISystemUserRepository UserRepo { get; set; } [Inject] public ISystemUserRepository UserRepo { get; set; }
[Inject] public ILogger<OfficeUserAdvisorViewEditPage> Logger { get; set; } [Inject] public ILogger<OfficeUserAdvisorViewEditPage> Logger { get; set; }
[Inject] public IToastService Toaster { get; set; } [Inject] public IToastService Toaster { get; set; }
private UserManagerEditView UserInfo { get; set; } = new(); private UserAdminEditView UserInfo { get; set; } = new();
private EditContext UserEditContext { get; set; } private EditContext UserEditContext { get; set; }
private ResetPasswordDto Passwords { get; set; } = new(); private ResetPasswordModel Passwords { get; set; } = new();
private EditContext PasswdContext { get; set; } private EditContext PasswdContext { get; set; }
private bool PwInvalid { get; set; } = true; private bool PwInvalid { get; set; } = true;
private bool Working { get; set; } = true; private bool Working { get; set; } = true;

View file

@ -0,0 +1,82 @@
@* Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
*@
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize(Roles = "Supervisor")]
@page "/supervisor/salesReps"
<PageTitle>Supervisor Sælger Oversigt</PageTitle>
<div class="row">
<div class="col">
<h3>Supervisor Sælger Oversigt</h3>
</div>
<div class="col">
<div class="text-end">
<div class="busy-signal" style="display:@(Working ? "block" : "none")">
<div class="spinner-grow text-info" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
</div>
</div>
<div class="list-group">
<div class="list-group-item">
<div class="row">
<div class="col-sm-1 mt-3">
</div>
<div class="col-sm-4 mt-3">
<div class="h4">Navn</div>
</div>
<div class="col-sm-3 mt-3">
<div class="h4">Email</div>
</div>
<div class="col-sm-2 mt-3">
<div class="h4">Telefon</div>
</div>
<div class="col-sm-2 text-end mt-1">
</div>
</div>
</div>
@if (Users.Any())
{
foreach (var user in Users)
{
<a class="list-group-item list-group-item-action" href="/supervisor/salesReps/@user.UserId">
<div class="row">
<div class="col-sm-1">
@user.CountryCode @user.SalesRep
</div>
<div class="col-sm-4">
@user.FullName
</div>
<div class="col-sm-3">
@user.Email
</div>
<div class="col-sm-2">
@user.PhoneNumber
</div>
<div class="col-sm-2">
@user.Description
</div>
</div>
</a>
}
}
</div>

View file

@ -0,0 +1,35 @@
using Microsoft.AspNetCore.Components;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.Pages;
#pragma warning disable CS8618
public partial class SupervisorAdvisorListPage : IDisposable
{
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IOfficeUserInfoRepository UserRepo { get; set; }
private List<UserInfoListView> Users { get; set; } = new();
private bool Working { get; set; } = true;
protected override async Task OnInitializedAsync()
{
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
Users = await UserRepo.GetSupervisorUsers();
Working = false;
}
public void Dispose()
{
Interceptor.DisposeEvent();
}
}

View file

@ -33,7 +33,7 @@
<div class="row mb-5"> <div class="row mb-5">
<div class="col-sm-12 d-grid mx-auto"> <div class="col-sm-12 d-grid mx-auto">
<textarea id="message" cols="50" rows="5" @bind-Value:event="oninput" @bind-Value="Message.Body"></textarea> <textarea id="message" cols="50" rows="5" @bind-Value:event="oninput" @bind-Value="MessageModel.Body"></textarea>
</div> </div>
</div> </div>
<div class="row ms-2"> <div class="row ms-2">

View file

@ -17,11 +17,11 @@ public partial class SystemMaintenanceMessagePage : IDisposable
[Inject] public ILogger<SystemMaintenanceMessagePage> Logger { get; set; } [Inject] public ILogger<SystemMaintenanceMessagePage> Logger { get; set; }
[Inject] public IToastService Toaster { get; set; } [Inject] public IToastService Toaster { get; set; }
private List<UserManagerListView> Users { get; set; } = new(); private List<UserInfoListView> Users { get; set; } = new();
private ShortMessage Message { get; set; } = new(); private ShortMessageModel MessageModel { get; set; } = new();
private List<Recipient> Recipients { get; set; } = new(); private List<Recipient> Recipients { get; set; } = new();
private ApiResponseView SmsResponse { get; set; } = new(); private ApiResponseView SmsResponse { get; set; } = new();
private ClxMessage? ClxMsg { get; set; } = new(); private ClxMessageView? ClxMsg { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
private bool MsgSent { get; set; } private bool MsgSent { get; set; }
@ -58,20 +58,20 @@ public partial class SystemMaintenanceMessagePage : IDisposable
return; return;
} }
if (string.IsNullOrWhiteSpace(Message.Body)) if (string.IsNullOrWhiteSpace(MessageModel.Body))
{ {
Toaster.ShowError("Meddelelsesfeltet er tomt!"); Toaster.ShowError("Meddelelsesfeltet er tomt!");
return; return;
} }
Message.From = "Innotec IT"; MessageModel.From = "Innotec IT";
Message.To = string.Join(",", recipients); MessageModel.To = string.Join(",", recipients);
Logger.LogDebug("{}", JsonSerializer.Serialize(Message, _options)); Logger.LogDebug("{}", JsonSerializer.Serialize(MessageModel, _options));
SmsResponse = await SmsService.SendSms(Message); SmsResponse = await SmsService.SendSms(MessageModel);
if (SmsResponse.Code == 201) if (SmsResponse.Code == 201)
{ {
ClxMsg = JsonSerializer.Deserialize<ClxMessage>(SmsResponse.Message); ClxMsg = JsonSerializer.Deserialize<ClxMessageView>(SmsResponse.Message);
MsgSent = true; MsgSent = true;
} }
Working = false; Working = false;

View file

@ -15,7 +15,7 @@
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
#pragma warning disable CS8618
namespace Wonky.Client.Pages; namespace Wonky.Client.Pages;
public partial class SystemManagerLandingPage public partial class SystemManagerLandingPage

View file

@ -19,17 +19,66 @@
@page "/system/supervisors" @page "/system/supervisors"
<PageTitle>Supervisor Oversigt</PageTitle> <PageTitle>Supervisor Oversigt</PageTitle>
<div class="row">
<div class="card"> <div class="col">
<div class="card-header bg-dark text-white"> <h3>Supervisor Oversigt</h3>
<div class="mt-3 h3 card-title"> </div>
Supervisor Oversigt <div class="col">
<div class="text-end">
<div class="busy-signal" style="display:@(Working ? "block" : "none")">
<div class="spinner-grow text-info" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div> </div>
</div> </div>
<div class="card-body">
</div> </div>
</div> </div>
@code {
} <div class="list-group">
<div class="list-group-item">
<div class="row">
<div class="col-sm-1 mt-3">
</div>
<div class="col-sm-4 mt-3">
<div class="h4">Navn</div>
</div>
<div class="col-sm-3 mt-3">
<div class="h4">Email</div>
</div>
<div class="col-sm-2 mt-3">
<div class="h4">Telefon</div>
</div>
<div class="col-sm-2 text-end mt-1">
<a class="btn btn-primary" href="/system/users"><i class="bi-plus-lg"></i>Opret Supervisor</a>
</div>
</div>
</div>
@if (Users.Any())
{
foreach (var user in Users)
{
<a class="list-group-item list-group-item-action" href="/system/supervisors/@user.UserId">
<div class="row">
<div class="col-sm-1">
@user.CountryCode @user.SalesRep
</div>
<div class="col-sm-4">
@user.FullName
</div>
<div class="col-sm-3">
@user.Email
</div>
<div class="col-sm-2">
@user.PhoneNumber
</div>
<div class="col-sm-2">
@user.Description
</div>
</div>
</a>
}
}
</div>

View file

@ -0,0 +1,45 @@
// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using Microsoft.AspNetCore.Components;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
#pragma warning disable CS8618
namespace Wonky.Client.Pages;
public partial class SystemSupervisorListPage : IDisposable
{
[Inject] public ISystemUserRepository UserRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
private List<UserInfoListView> Users { get; set; } = new();
private bool Working { get; set; } = true;
protected override async Task OnInitializedAsync()
{
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
Users = await UserRepo.GetUsers("Supervisor");
Working = false;
}
public void Dispose()
{
Interceptor.DisposeEvent();
}
}

View file

@ -0,0 +1,66 @@
@* Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
*@
@using Microsoft.AspNetCore.Authorization
@using System.Text.Json
@attribute [Authorize(Roles = "Admin")]
@page "/system/supervisors/{UserId}"
<PageTitle>Supervisor Sælger Tilknytning</PageTitle>
<div class="row">
<div class="col">
<h3>Supervisor Sælger Tilknytning</h3>
</div>
<div class="col">
<div class="text-end">
<div class="busy-signal" style="display:@(Working ? "block" : "none")">
<div class="spinner-grow text-info" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
</div>
</div>
<EditForm EditContext="UserAssignmentContext" OnValidSubmit="SaveChanges">
<div class="card">
<div class="card-header">
<div class="card-title h3">
@UserData.FirstName @UserData.LastName
</div>
</div>
<div class="card-body">
<div class="card-title">
Supervisor for valgte sælgere
</div>
</div>
<div class="card-body">
@if (UserData.AssignedUsers.Any())
{
foreach (var user in UserData.AssignedUsers)
{
<div class="form-check">
<InputCheckbox id="@(user.UserId)" class="form-check-input" @bind-Value="user.Assigned"/>
<label class="form-check-label">@user.FullName</label>
</div>
}
}
</div>
<div class="card-footer">
<div class="text-end">
<button class="btn btn-primary" type="submit">Gem ændringer</button>
</div>
</div>
</div>
</EditForm>

View file

@ -0,0 +1,65 @@
// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Text.Json;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository;
using Wonky.Entity.DTO;
#pragma warning disable CS8618
namespace Wonky.Client.Pages;
public partial class SystemSupervisorViewEditPage : IDisposable
{
[Inject] public ISystemUserRepository UserRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ILogger<SystemSupervisorViewEditPage> Logger { get; set; }
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
};
[Parameter] public string UserId { get; set; } = "";
private UserAdminEditView UserData { get; set; } = new();
private bool Working { get; set; } = true;
private EditContext UserAssignmentContext { get; set; }
protected override async Task OnInitializedAsync()
{
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
UserAssignmentContext = new EditContext(UserData);
UserData = await UserRepo.GetUserInfo(UserId);
Working = false;
Logger.LogDebug("UserData => {}", JsonSerializer.Serialize(UserData, _options));
}
private async Task SaveChanges()
{
await UserRepo.UpdateUserInfo(UserId, UserData);
}
public void Dispose()
{
Interceptor.DisposeEvent();
}
}

View file

@ -34,7 +34,7 @@ public partial class SystemUserCreatePage : IDisposable
[Inject] public ISystemUserRepository UserRepo { get; set; } [Inject] public ISystemUserRepository UserRepo { get; set; }
[Inject] public ILogger<SystemUserCreatePage> Logger { get; set; } [Inject] public ILogger<SystemUserCreatePage> Logger { get; set; }
[Inject] public IToastService Toaster { get; set; } [Inject] public IToastService Toaster { get; set; }
private UserManagerCreate NewUserInfo { get; set; } = new(); private UserAdminCreateModel NewUserInfo { get; set; } = new();
private EditContext NewUserContext { get; set; } private EditContext NewUserContext { get; set; }
private bool ContextInvalid { get; set; } = true; private bool ContextInvalid { get; set; } = true;
private bool Working { get; set; } = true; private bool Working { get; set; } = true;

View file

@ -38,18 +38,18 @@
<div class="list-group"> <div class="list-group">
<div class="list-group-item"> <div class="list-group-item">
<div class="row"> <div class="row">
<div class="col-sm-1"> <div class="col-sm-1 mt-3">
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4 mt-3">
<div class="h4">Navn</div> <div class="h4">Navn</div>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3 mt-3">
<div class="h4">Email</div> <div class="h4">Email</div>
</div> </div>
<div class="col-sm-2"> <div class="col-sm-2 mt-3">
<div class="h4">Telefon</div> <div class="h4">Telefon</div>
</div> </div>
<div class="col-sm-2 text-end"> <div class="col-sm-2 text-end mt-1">
<a class="btn btn-primary" href="/system/users/create"><i class="bi-plus-lg"></i>Opret bruger</a> <a class="btn btn-primary" href="/system/users/create"><i class="bi-plus-lg"></i>Opret bruger</a>
</div> </div>
@ -74,7 +74,9 @@
<div class="col-sm-2"> <div class="col-sm-2">
@user.PhoneNumber @user.PhoneNumber
</div> </div>
<div class="col-sm-2"></div> <div class="col-sm-2">
@user.Description
</div>
</div> </div>
</a> </a>
} }

View file

@ -18,7 +18,9 @@ using Microsoft.AspNetCore.Components;
using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository; using Wonky.Client.HttpRepository;
using Wonky.Entity.DTO; using Wonky.Entity.DTO;
using Wonky.Entity.Views;
#pragma warning disable CS8618
namespace Wonky.Client.Pages; namespace Wonky.Client.Pages;
public partial class SystemUserListPage : IDisposable public partial class SystemUserListPage : IDisposable
@ -26,7 +28,7 @@ public partial class SystemUserListPage : IDisposable
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ISystemUserRepository UserRepo { get; set; } [Inject] public ISystemUserRepository UserRepo { get; set; }
private List<UserManagerListView> UserList { get; set; } = new(); private List<UserInfoListView> UserList { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()

View file

@ -59,15 +59,21 @@
Email Email
</th> </th>
<td> <td>
<InputText id="email" class="form-control" @bind-Value="UserData.Email" readonly="@ReadOnly" /> <div class="form-floating">
<InputText id="email" class="form-control" @bind-Value="UserData.Email" readonly="@ReadOnly" placeholder="name@innotec.dk"/>
<label for="email">Email adresse - bruges til login</label>
<ValidationMessage For="@(() => UserData.Email)"></ValidationMessage> <ValidationMessage For="@(() => UserData.Email)"></ValidationMessage>
</div>
</td> </td>
<th scope="col"> <th scope="col">
Mobilnummer Mobilnummer
</th> </th>
<td> <td>
<InputText id="phoneNumber" class="form-control" @bind-Value="UserData.PhoneNumber" readonly="@ReadOnly" /> <div class="form-floating">
<InputText id="phoneNumber" class="form-control" @bind-Value="UserData.PhoneNumber" readonly="@ReadOnly" placeholder="+45 20202020"/>
<label for="phoneNumber">Mobil nummer - bruges til korte beskeder</label>
<ValidationMessage For="@(() => UserData.PhoneNumber)"></ValidationMessage> <ValidationMessage For="@(() => UserData.PhoneNumber)"></ValidationMessage>
</div>
</td> </td>
</tr> </tr>
<tr class="align-middle"> <tr class="align-middle">
@ -75,8 +81,11 @@
Sælgernr. Sælgernr.
</th> </th>
<td> <td>
<InputText id="salesRep" class="form-control" @bind-Value="UserData.SalesRep" readonly="@ReadOnly" /> <div class="form-floating">
<InputText id="salesRep" class="form-control" @bind-Value="UserData.SalesRep" readonly="@ReadOnly" placeholder="10"/>
<label for="salesRep">Sælgernummer fra ERP</label>
<ValidationMessage For="@(() => UserData.SalesRep)"></ValidationMessage> <ValidationMessage For="@(() => UserData.SalesRep)"></ValidationMessage>
</div>
</td> </td>
<th scope="col"> <th scope="col">
Landekode Landekode
@ -96,8 +105,11 @@
</td> </td>
<th scope="col">Beskrivelse</th> <th scope="col">Beskrivelse</th>
<td> <td>
<InputText id="description" class="form-control" @bind-Value="@UserData.Description" readonly="@ReadOnly"/> <div class="form-floating">
<InputText id="description" class="form-control" @bind-Value="@UserData.Description" readonly="@ReadOnly" placeholder="Info tekst"/>
<label for="description">Kort bruger beskrivelse</label>
<ValidationMessage For="@(() => UserData.Description)"></ValidationMessage> <ValidationMessage For="@(() => UserData.Description)"></ValidationMessage>
</div>
</td> </td>
</tr> </tr>
<tr> <tr>

View file

@ -35,9 +35,9 @@ public partial class SystemUserViewEditPage : IDisposable
[Inject] public ISystemUserRepository UserRepo { get; set; } [Inject] public ISystemUserRepository UserRepo { get; set; }
[Inject] public ILogger<SystemUserViewEditPage> Logger { get; set; } [Inject] public ILogger<SystemUserViewEditPage> Logger { get; set; }
[Inject] public IToastService Toaster { get; set; } [Inject] public IToastService Toaster { get; set; }
private UserManagerEditView UserData { get; set; } = new(); private UserAdminEditView UserData { get; set; } = new();
private EditContext UserEditContext { get; set; } private EditContext UserEditContext { get; set; }
private ResetPasswordDto Passwords { get; set; } = new(); private ResetPasswordModel Passwords { get; set; } = new();
private EditContext PasswdContext { get; set; } private EditContext PasswdContext { get; set; }
private bool PwInvalid { get; set; } = true; private bool PwInvalid { get; set; } = true;
private bool Working { get; set; } = true; private bool Working { get; set; } = true;

View file

@ -85,7 +85,7 @@ public partial class WarehouseOrderListPage : IDisposable
Working = true; Working = true;
var order = OrderList.First(x => x.OrderId == orderId); var order = OrderList.First(x => x.OrderId == orderId);
order.ProcessStatusEnum = "packed"; order.ProcessStatusEnum = "packed";
var process = new OrderProcessState var process = new OrderProcessStateModel
{ {
OrderId = order.OrderId, OrderId = order.OrderId,
ProcessStatusEnum = "packed" ProcessStatusEnum = "packed"
@ -103,7 +103,7 @@ public partial class WarehouseOrderListPage : IDisposable
foreach (var order in OrderList.Where(order => order.ProcessStatusEnum.ToLower() == "packed")) foreach (var order in OrderList.Where(order => order.ProcessStatusEnum.ToLower() == "packed"))
{ {
order.ProcessStatusEnum = "shipped"; order.ProcessStatusEnum = "shipped";
var process = new OrderProcessState var process = new OrderProcessStateModel
{ {
OrderId = order.OrderId, OrderId = order.OrderId,
ProcessStatusEnum = "shipped" ProcessStatusEnum = "shipped"

View file

@ -54,7 +54,7 @@ public partial class WarehouseOrderViewPage : IDisposable
return; return;
Working = true; Working = true;
var process = new OrderProcessState var process = new OrderProcessStateModel
{ {
OrderId = Order.OrderId, OrderId = Order.OrderId,
ProcessStatusEnum = "picked" ProcessStatusEnum = "picked"
@ -68,7 +68,7 @@ public partial class WarehouseOrderViewPage : IDisposable
if (Working) if (Working)
return; return;
Working = true; Working = true;
var process = new OrderProcessState var process = new OrderProcessStateModel
{ {
OrderId = Order.OrderId, OrderId = Order.OrderId,
ProcessStatusEnum = "packed" ProcessStatusEnum = "packed"
@ -82,7 +82,7 @@ public partial class WarehouseOrderViewPage : IDisposable
if (Working) if (Working)
return; return;
Working = true; Working = true;
var process = new OrderProcessState var process = new OrderProcessStateModel
{ {
OrderId = Order.OrderId, OrderId = Order.OrderId,
ProcessStatusEnum = "shipped" ProcessStatusEnum = "shipped"

View file

@ -55,7 +55,7 @@ public class AuthenticationService : IAuthenticationService
_localStorage = localStorage; _localStorage = localStorage;
} }
public async Task<AuthResponseView> Login(CredentialDto credentials) public async Task<AuthResponseView> Login(CredentialModel credentials)
{ {
var credForm = new Dictionary<string, string> var credForm = new Dictionary<string, string>
{ {
@ -133,13 +133,13 @@ public class AuthenticationService : IAuthenticationService
((AuthStateProvider)_authStateProvider).NotifyUserLogout(); ((AuthStateProvider)_authStateProvider).NotifyUserLogout();
} }
public async Task<UserManagerEditView> UserInfo(bool write = false) public async Task<UserAdminEditView> UserInfo(bool write = false)
{ {
var response = await _client.GetAsync(_apiConfig.Value.UserInfo).ConfigureAwait(true); var response = await _client.GetAsync(_apiConfig.Value.UserInfo).ConfigureAwait(true);
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
var userInfo = JsonSerializer.Deserialize<UserManagerEditView>(content, _options); var userInfo = JsonSerializer.Deserialize<UserAdminEditView>(content, _options);
if(write) if(write)
await _infoService.SetUserInfo(userInfo); await _infoService.SetUserInfo(userInfo);
return userInfo ?? new UserManagerEditView(); return userInfo ?? new UserAdminEditView();
} }
} }

View file

@ -21,8 +21,8 @@ namespace Wonky.Client.Services;
public interface IAuthenticationService public interface IAuthenticationService
{ {
Task<AuthResponseView> Login(CredentialDto credentials); Task<AuthResponseView> Login(CredentialModel credentials);
Task Logout(); Task Logout();
Task<string> RefreshToken(); Task<string> RefreshToken();
Task<UserManagerEditView> UserInfo(bool write = false); Task<UserAdminEditView> UserInfo(bool write = false);
} }

View file

@ -20,8 +20,8 @@ namespace Wonky.Client.Services;
public interface IUserInfoService public interface IUserInfoService
{ {
Task<UserManagerEditView> GetUserInfo(); Task<UserAdminEditView> GetUserInfo();
Task SetUserInfo(UserManagerEditView userInfo); Task SetUserInfo(UserAdminEditView userInfo);
Task<string> GetRefreshToken(); Task<string> GetRefreshToken();
Task SetRefreshToken(string token); Task SetRefreshToken(string token);
Task<string> GetAccessToken(); Task<string> GetAccessToken();

View file

@ -36,12 +36,12 @@ public class UserInfoService : IUserInfoService
_localStorageService = localStorageService; _localStorageService = localStorageService;
} }
public async Task<UserManagerEditView> GetUserInfo() public async Task<UserAdminEditView> GetUserInfo()
{ {
return await _localStorageService.GetItemAsync<UserManagerEditView>(_infoKey); return await _localStorageService.GetItemAsync<UserAdminEditView>(_infoKey);
} }
public async Task SetUserInfo(UserManagerEditView userInfo) public async Task SetUserInfo(UserAdminEditView userInfo)
{ {
await _localStorageService.SetItemAsync(_infoKey, userInfo); await _localStorageService.SetItemAsync(_infoKey, userInfo);
} }

View file

@ -30,13 +30,13 @@ namespace Wonky.Client.Shared;
public partial class ContactModal public partial class ContactModal
{ {
[Parameter] public ContactDto ParamContact { get; set; } = new(); [Parameter] public ContactModel ParamContact { get; set; } = new();
[Parameter] public string CompanyName { get; set; } = ""; [Parameter] public string CompanyName { get; set; } = "";
[Parameter] public IAdvisorContactRepository ContactRepo { get; set; } [Parameter] public IAdvisorContactRepository ContactRepo { get; set; }
[Parameter] public HttpInterceptorService Interceptor { get; set; } [Parameter] public HttpInterceptorService Interceptor { get; set; }
[Parameter] public EventCallback<ContactDto> OnSaveClicked { get; set; } [Parameter] public EventCallback<ContactModel> OnSaveClicked { get; set; }
[Parameter] public EventCallback<string> OnDeleteClicked { get; set; } [Parameter] public EventCallback<string> OnDeleteClicked { get; set; }
private ContactDto Contact { get; set; } = new(); private ContactModel Contact { get; set; } = new();
private string _modalDisplay = ""; private string _modalDisplay = "";
private bool _showBackdrop; private bool _showBackdrop;
private bool DisableDelete { get; set; } private bool DisableDelete { get; set; }
@ -44,7 +44,7 @@ public partial class ContactModal
protected override void OnParametersSet() protected override void OnParametersSet()
{ {
Contact = new ContactDto Contact = new ContactModel
{ {
CompanyId = ParamContact.CompanyId, CompanyId = ParamContact.CompanyId,
ContactId = ParamContact.ContactId, ContactId = ParamContact.ContactId,
@ -84,7 +84,7 @@ public partial class ContactModal
{ {
_modalDisplay = "none;"; _modalDisplay = "none;";
_showBackdrop = false; _showBackdrop = false;
Contact = new ContactDto(); Contact = new ContactModel();
StateHasChanged(); StateHasChanged();
} }
} }

Some files were not shown because too many files have changed in this diff Show more