Kaynağa Gözat

Refactoring of key data page, new fields

master
Flo Smilari 4 yıl önce
ebeveyn
işleme
c1ef7a51ab

+ 2
- 0
Pages/AccountPage.razor Dosyayı Görüntüle

@@ -1,7 +1,9 @@
@page "/account"
@page "/fundvelo/account/{FromRoute}"
@using cwebplusApp.Shared.Models;
@using cwebplusApp.Shared.Services;
@inject NavigationManager NavigationManager
@inject UserDataProvider UserDataProvider
@inject IStringLocalizer<Resources> i18n

+ 2
- 0
Pages/CaritasServiceFundVeloFoundConclusion.razor Dosyayı Görüntüle

@@ -1,5 +1,7 @@
@page "/fundvelo/conclusion_found"
@using cwebplusApp.Shared.Services;
@inject NavigationManager NavigationManager
@inject IStringLocalizer<Resources> i18n
@inject PageHistoryManager PageHistoryManager

+ 120
- 55
Pages/CaritasServiceFundVeloKeyDataPage.razor Dosyayı Görüntüle

@@ -7,6 +7,7 @@
@using System.Globalization;
@using Microsoft.AspNetCore.Components.Forms;
@using System.IO;
@inject NavigationManager NavigationManager
@inject IStringLocalizer<Resources> i18n
@inject PageHistoryManager PageHistoryManager
@@ -14,7 +15,6 @@
@inject Toaster Toaster
@inject IJSRuntime JS
<div class="row px-3 h-100">
<div class="row no-gutters align-items-center justify-content-center w-100" style="padding-top:1em">
@if ("Found".Equals(FromRoute)) {
@@ -71,78 +71,143 @@
</MatCard>
</div>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-1 justify-content-center" style="text-align: center">
<MatRipple class="inputfile-mat-ripple" Color="@MatRippleColor.Default" @onclick="InitializeMapPosition">
<label>
<svg xmlns="http://www.w3.org/2000/svg" height="48px" width="48px" viewBox="0 0 24 24" fill="#000000">
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M13 3.06V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06c-.46-4.17-3.77-7.48-7.94-7.94zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z" />
<circle cx="12" cy="12" opacity=".3" r="2" />
<path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" />
</svg>
</label>
</MatRipple>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-3">
<div class="w-100 fv-osm-tile map-wrapper">
<Map @ref="mapRef" MapOptions="@mapOptions"></Map>
@if ("Found".Equals(FromRoute)) {<!-- Gefundenes Velo-->
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-1 justify-content-center" style="text-align: center">
<MatRipple class="inputfile-mat-ripple" Color="@MatRippleColor.Default" @onclick="InitializeMapPosition">
<label>
<svg xmlns="http://www.w3.org/2000/svg" height="48px" width="48px" viewBox="0 0 24 24" fill="#000000">
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M13 3.06V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06c-.46-4.17-3.77-7.48-7.94-7.94zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z" />
<circle cx="12" cy="12" opacity=".3" r="2" />
<path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" />
</svg>
</label>
</MatRipple>
</div>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-4-desktop">
<div class="mat-layout-grid-inner">
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@getAddressLbl()" Outlined="true" Required="true" type="text" @bind-Value="@bicycleGeoPosition.Address"></MatStringField>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-3">
<div class="w-100 fv-osm-tile map-wrapper">
<Map @ref="mapRef" MapOptions="@mapOptions"></Map>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@getPlaceLbl()" Outlined="true" Required="true" type="text" @bind-Value="@bicycleGeoPosition.City"></MatStringField>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatTextField Class="w-100 form-check-label italic" Label="@i18n["Latitude"]" Outlined="true" ReadOnly="true" @bind-Value="@bicycleGeoPosition.Latitude"></MatTextField>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatTextField Class="w-100 form-check-label italic" Label="@i18n["Longitude"]" Outlined="true" ReadOnly="true" @bind-Value="@bicycleGeoPosition.Longitude"></MatTextField>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-4-desktop">
<div class="mat-layout-grid-inner">
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@getAddressLbl()" Outlined="true" Required="true" type="text" @bind-Value="@bicycleGeoPosition.Address"></MatStringField>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@getPlaceLbl()" Outlined="true" Required="true" type="text" @bind-Value="@bicycleGeoPosition.City"></MatStringField>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatTextField Class="w-100 form-check-label italic" Label="@i18n["Latitude"]" Outlined="true" ReadOnly="true" @bind-Value="@bicycleGeoPosition.Latitude"></MatTextField>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatTextField Class="w-100 form-check-label italic" Label="@i18n["Longitude"]" Outlined="true" ReadOnly="true" @bind-Value="@bicycleGeoPosition.Longitude"></MatTextField>
</div>
</div>
</div>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop">
<div class="mat-layout-grid-inner">
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop">
<MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Color"]" @bind-Value="selectedColor" Items="@Colors" ValueSelector="@(i=>i)">
<ItemTemplate>
<div>
<span class="btn-sm" style="background-color:@context.Code;
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop">
<div class="mat-layout-grid-inner">
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop">
<MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Color"]" @bind-Value="selectedColor" Items="@Colors" ValueSelector="@(i=>i)">
<ItemTemplate>
<div>
<span class="btn-sm" style="background-color:@context.Code;
display:initial;
border:1px solid black;
box-shadow:0.2em 0.2em 0.3em 0.025em #3f4244" />
<span class="btn">@context?.Bezeichnung</span>
</div>
</ItemTemplate>
</MatSelectValue>
<span class="btn">@context?.Bezeichnung</span>
</div>
</ItemTemplate>
</MatSelectValue>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop">
<div class="outlined">
<MatAutocompleteList TItem="Brand" FullWidth="true" Label="@i18n["Brand"]" Items="@Brands" OnTextChanged="setBrandValue" @bind-Value="SelectedBrand" CustomStringSelector="@(i => i?.Bezeichnung)">
<ItemTemplate>
<div>
<span>@context?.Bezeichnung</span>
</div>
</ItemTemplate>
</MatAutocompleteList>
</div>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop">
<MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Type"]" @bind-Value="selectedBcType" Items="@BicycleTypes" ValueSelector="@(i=>i)">
<ItemTemplate>
<div>
<span>@context?.Bezeichnung</span>
</div>
</ItemTemplate>
</MatSelectValue>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop">
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@i18n["FrameNumber"]" Outlined="true" type="text"></MatStringField>
</div>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop">
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@i18n["Remark"]" Outlined="true" type="text"></MatStringField>
</div>
</div>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop">
<div class="outlined">
<MatAutocompleteList TItem="Brand" FullWidth="true" Label="@i18n["Brand"]" Items="@Brands" OnTextChanged="setBrandValue" @bind-Value="SelectedBrand" CustomStringSelector="@(i => i?.Bezeichnung)">
</div>
} else { <!-- Vermisstes Velo-->
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop">
<div class="mat-layout-grid-inner">
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop">
<MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Color"]" @bind-Value="selectedColor" Items="@Colors" ValueSelector="@(i=>i)">
<ItemTemplate>
<div>
<span class="btn-sm" style="background-color:@context.Code;
display:initial;
border:1px solid black;
box-shadow:0.2em 0.2em 0.3em 0.025em #3f4244" />
<span class="btn">@context?.Bezeichnung</span>
</div>
</ItemTemplate>
</MatSelectValue>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop">
<div class="outlined">
<MatAutocompleteList TItem="Brand" FullWidth="true" Label="@i18n["Brand"]" Items="@Brands" OnTextChanged="setBrandValue" @bind-Value="SelectedBrand" CustomStringSelector="@(i => i?.Bezeichnung)">
<ItemTemplate>
<div>
<span>@context?.Bezeichnung</span>
</div>
</ItemTemplate>
</MatAutocompleteList>
</div>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop">
<MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Type"]" @bind-Value="selectedBcType" Items="@BicycleTypes" ValueSelector="@(i=>i)">
<ItemTemplate>
<div>
<span>@context?.Bezeichnung</span>
</div>
</ItemTemplate>
</MatAutocompleteList>
</MatSelectValue>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@i18n["FrameNumber"]" Outlined="true" type="text"></MatStringField>
</div>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop">
<MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Type"]" @bind-Value="selectedBcType" Items="@BicycleTypes" ValueSelector="@(i=>i)">
<ItemTemplate>
<div>
<span>@context?.Bezeichnung</span>
</div>
</ItemTemplate>
</MatSelectValue>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-4-desktop">
<div class="mat-layout-grid-inner">
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@i18n["Age"]" Outlined="true" type="text"></MatStringField>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@i18n["Price"]" Outlined="true" type="text"></MatStringField>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop">
<MatStringField Class="w-100 form-check-label" Label="@i18n["Remark"]" Outlined="true" type="text"></MatStringField>
</div>
</div>
</div>
</div>
}
</div>
</div>
</div>

+ 10
- 3
Pages/CaritasServiceFundVeloLostFoundPage.razor Dosyayı Görüntüle

@@ -1,7 +1,11 @@
@page "/fundvelo/lost_found"
@using cwebplusApp.Shared.Services;
@using cwebplusApp.Shared.Models;
@inject NavigationManager NavigationManager
@inject PageHistoryManager PageHistoryManager
@inject ReportDataProvider ReportDataProvider
<div class="row px-3 h-100">
<div class="row no-gutters align-items-center w-100">
@@ -10,7 +14,7 @@
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-1">
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-2">
<MatCard Class="demo-mat-card">
<MatCard Class="fv-mat-card">
<MatCardContent>
<MatCardMedia Square="true" ImageUrl="./images/batch_found.png" @onclick="Found"></MatCardMedia>
</MatCardContent>
@@ -21,7 +25,7 @@
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-1">
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-2">
<MatCard Class="demo-mat-card">
<MatCard Class="fv-mat-card">
<MatCardContent>
<MatCardMedia Square="true" ImageUrl="./images/batch_missing.png" @onclick="Missing"></MatCardMedia>
</MatCardContent>
@@ -39,14 +43,17 @@
protected override void OnInitialized() {
PageHistoryManager.AddPageToHistory(NavigationManager.Uri);
ReportDataProvider.Report = null;
base.OnInitialized();
}
private void Found() {
NavigationManager.NavigateTo("fundvelo/keydata/Found");
ReportDataProvider.Report = new FoundReport();
NavigationManager.NavigateTo("fundvelo/keydata/Found/");
}
private void Missing() {
ReportDataProvider.Report = new MissingReport();
NavigationManager.NavigateTo("fundvelo/keydata/Missing");
}
}

+ 2
- 0
Pages/CaritasServiceFundVeloMissingConclusion.razor Dosyayı Görüntüle

@@ -1,5 +1,7 @@
@page "/fundvelo/conclusion_missing"
@using cwebplusApp.Shared.Services;
@inject NavigationManager NavigationManager
@inject IStringLocalizer<Resources> i18n
@inject PageHistoryManager PageHistoryManager

+ 5
- 3
Pages/CaritasServicesPage.razor Dosyayı Görüntüle

@@ -1,5 +1,7 @@
@page "/caritas_services"
@using cwebplusApp.Shared.Services;
@inject NavigationManager NavigationManager
@inject PageHistoryManager PageHistoryManager
@@ -8,21 +10,21 @@
<div class="mat-layout-grid w-100">
<div class="mat-layout-grid-inner">
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-2-phone mat-layout-grid-cell-span-3-tablet mat-layout-grid-cell-span-4-desktop">
<MatCard class="demo-mat-card">
<MatCard class="fv-mat-card">
<MatCardContent>
<MatCardMedia Square="true" ImageUrl="./images/batch_fundvelo.png" @onclick="FundVelo_LostFound"></MatCardMedia>
</MatCardContent>
</MatCard>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-2-phone mat-layout-grid-cell-span-3-tablet mat-layout-grid-cell-span-4-desktop">
<MatCard class="demo-mat-card">
<MatCard class="fv-mat-card">
<MatCardContent>
<MatCardMedia Square="true" ImageUrl="./images/batch_kulturlegi.png"></MatCardMedia>
</MatCardContent>
</MatCard>
</div>
<div class="mat-layout-grid-cell mat-layout-grid-cell-span-2-phone mat-layout-grid-cell-span-3-tablet mat-layout-grid-cell-span-4-desktop">
<MatCard class="demo-mat-card">
<MatCard class="fv-mat-card">
<MatCardContent>
<MatCardMedia Square="true" ImageUrl="./images/batch_markt.png"></MatCardMedia>
</MatCardContent>

+ 3
- 2
Pages/IndexPage.razor Dosyayı Görüntüle

@@ -1,4 +1,5 @@
@page "/"
@using cwebplusApp.Shared.Services;
@using System.Threading;
@using Microsoft.Extensions.Configuration;
@@ -10,7 +11,7 @@
@inject MasterDataService MasterDataService;
@inject Toaster Toaster;
@inject IConfiguration Configuration;
@inject ILFBicycleRest iLFBicycleRest;
@inject ILFBicycleRest ILFBicycleRest;
<div class="row h-100 justify-content-center">
@@ -51,7 +52,7 @@
showProgressCircle = true;
StateHasChanged();
try {
iLFBicycleRest.Initialize(Configuration);
ILFBicycleRest.Initialize(Configuration);
await MasterDataService.SynchronizeMasterdata();
} catch (Exception) {
Toaster.ShowWarning(i18n.GetString("Warning.Masterdata.Title"), i18n.GetString("Warning.Masterdata.Msg"));

+ 1
- 0
Pages/InfoPage.razor Dosyayı Görüntüle

@@ -1,6 +1,7 @@
@page "/info"
@using cwebplusApp.Shared.Services;
@inject NavigationManager NavigationManager;
@inject IStringLocalizer<Resources> i18n
@inject PageHistoryManager PageHistoryManager

+ 1
- 0
Program.cs Dosyayı Görüntüle

@@ -21,6 +21,7 @@ namespace CaritasPWA {
builder.Services.AddSingleton<ILFBicycleRest, LFBicycleRest>();
builder.Services.AddSingleton<AppState>();
builder.Services.AddSingleton<PageHistoryManager>();
builder.Services.AddSingleton<ReportDataProvider>();
builder.Services.AddScoped<Toaster>();
builder.Services.AddScoped<UserDataProvider>();
builder.Services.AddScoped<MasterDataService>();

+ 1
- 1
Properties/launchSettings.json Dosyayı Görüntüle

@@ -26,7 +26,7 @@
},
"nativeDebugging": false,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"jsWebView2Debugging": true,
"jsWebView2Debugging": false,
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
}
}

+ 64
- 0
Shared/Models/FoundReport.cs Dosyayı Görüntüle

@@ -0,0 +1,64 @@
namespace cwebplusApp.Shared.Models {
public class FoundReport : Report {
public string Anrede { get; set; } // required
public string Vorname { get; set; } // required
public string Nachname { get; set; } // required
public bool AbholadresseIstKontakt { get; set; } // required
public int TypId { get; set; } // required
public int MarkeId { get; set; } // required
public int FarbeId { get; set; } // required
public string Bemerkung { get; set; }
public string Mobil { get; set; }
public string NeueMarke { get; set; }
public string Rahmennummer { get; set; }
public string Telefon { get; set; }
public string Foto { get; set; }
public GeographicInfo GeographicInfo { get; set; } // required
public string AbholAnrede { get; set; } // required when AbholadresseIstKontakt = false
public string AbholVorname { get; set; } // required when AbholadresseIstKontakt = false
public string AbholNachname { get; set; } // required when AbholadresseIstKontakt = false
public string AbholStrasse { get; set; } // required when AbholadresseIstKontakt = false
public string AbholPLZ { get; set; } // required when AbholadresseIstKontakt = false
public string AbholOrt { get; set; } // required when AbholadresseIstKontakt = false
public string AbholMail { get; set; }
public string AbholMobil { get; set; }
public string AbholTelefon { get; set; }
public FoundReport() : this("", "", "", true, -1, -1, -1, null) {
}
public FoundReport(string anrede, string vorname, string nachname, bool abholadresseIstKontakt, int typId, int markeId, int farbeId, GeographicInfo geographicInfo) {
this.Anrede = anrede;
this.Vorname = vorname;
this.Nachname = nachname;
this.AbholadresseIstKontakt = abholadresseIstKontakt;
this.TypId = typId;
this.MarkeId = markeId;
this.FarbeId = farbeId;
this.GeographicInfo = geographicInfo;
}
}
public class GeographicInfo {
public string Postcode { get; set; }
public string Town { get; set; }
public string Address { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
public GeographicInfo() : this("", "", "", 0.0, 0.0) {
}
public GeographicInfo(string town, string postcode, string address, double latitude, double longitude) {
this.Town = town;
this.Postcode = postcode;
this.Address = address;
this.Latitude = latitude;
this.Longitude = longitude;
}
}
}

+ 44
- 0
Shared/Models/MissingReport.cs Dosyayı Görüntüle

@@ -0,0 +1,44 @@
namespace cwebplusApp.Shared.Models {
public class MissingReport : Report {
public string Anrede { get; set; } // required
public string Vorname { get; set; } // required
public string Nachname { get; set; } // required
public string Mail { get; set; } // required
public string PersonPLZ { get; set; } // required
public string PersonOrt { get; set; } // required
public string PersonStrasse { get; set; } // required
public int TypId { get; set; } // required
public int MarkeId { get; set; } // required
public int FarbeId { get; set; } // required
public int Alter { get; set; }
public double Preis { get; set; }
public string Foto { get; set; }
public string RahmenNummer { get; set; }
public string NeueMarke { get; set; }
public string Telefon { get; set; }
public string Mobil { get; set; }
public string Zusatz { get; set; }
public string Postfach { get; set; }
public string Bemerkung { get; set; }
public int SuchDienstId { get; set; }
public string SuchDienstNr { get; set; }
public MissingReport() : this("", "", "", "", "", "", "", -1, -1, -1) {
}
public MissingReport(string anrede, string vorname, string nachname, string mail, string personPLZ,
string personOrt, string personStrasse, int typId, int markeId, int farbeId) {
this.Anrede = anrede;
this.Vorname = vorname;
this.Nachname = nachname;
this.Mail = mail;
this.PersonPLZ = personPLZ;
this.PersonOrt = personOrt;
this.PersonStrasse = personStrasse;
this.TypId = typId;
this.MarkeId = markeId;
this.FarbeId = farbeId;
}
}
}

+ 10
- 0
Shared/Models/Report.cs Dosyayı Görüntüle

@@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace cwebplusApp.Shared.Models {
public abstract class Report {
}
}

+ 13
- 1
Shared/ResourceFiles/Resources.de.resx Dosyayı Görüntüle

@@ -126,6 +126,9 @@
<data name="Address" xml:space="preserve">
<value>Adresse</value>
</data>
<data name="Age" xml:space="preserve">
<value>Alter</value>
</data>
<data name="Bike.Child_Bycicle" xml:space="preserve">
<value>Kindervelo</value>
</data>
@@ -291,6 +294,9 @@
<data name="FoundBike" xml:space="preserve">
<value>Gefundenes Velo</value>
</data>
<data name="FrameNumber" xml:space="preserve">
<value>Rahmennummer</value>
</data>
<data name="fundvelo/account/Found" xml:space="preserve">
<value>Fundvelo &gt; Gefunden &gt; Finderdaten</value>
</data>
@@ -357,6 +363,12 @@
<data name="PlaceOfLoss" xml:space="preserve">
<value>Verlustort</value>
</data>
<data name="Price" xml:space="preserve">
<value>Preis</value>
</data>
<data name="Remark" xml:space="preserve">
<value>Bemerkung</value>
</data>
<data name="Salutation" xml:space="preserve">
<value>Anrede</value>
</data>
@@ -379,7 +391,7 @@
<value>Die Stammdaten konnten nicht abgerufen werden. Es werden stattdessen die Standardwerte verwendet!</value>
</data>
<data name="Warning.Masterdata.Title" xml:space="preserve">
<value>Die Stammdaten konnten nicht abgerufen werden!</value>
<value>Stammdaten nicht verfügbar!</value>
</data>
<data name="Warning.Nominatim.Msg" xml:space="preserve">
<value>Die Adresse konnte beim Aufrufen des Nominatim-Dienstes nicht aufgelöst werden. Bitte geben Sie die Straße und Postleitzahl/Ort manuell ein.</value>

+ 13
- 1
Shared/ResourceFiles/Resources.fr.resx Dosyayı Görüntüle

@@ -126,6 +126,9 @@
<data name="Address" xml:space="preserve">
<value>Adresse</value>
</data>
<data name="Age" xml:space="preserve">
<value>Âge</value>
</data>
<data name="Bike.Child_Bycicle" xml:space="preserve">
<value>Vélo pour enfants</value>
</data>
@@ -291,6 +294,9 @@
<data name="FoundBike" xml:space="preserve">
<value>Velo trouvè</value>
</data>
<data name="FrameNumber" xml:space="preserve">
<value>Numéro de cadre</value>
</data>
<data name="fundvelo/account/Found" xml:space="preserve">
<value>Velo &gt;Trouvé &gt; Data trouver</value>
</data>
@@ -357,6 +363,12 @@
<data name="PlaceOfLoss" xml:space="preserve">
<value>Lieu de la perte</value>
</data>
<data name="Price" xml:space="preserve">
<value>Prix</value>
</data>
<data name="Remark" xml:space="preserve">
<value>Comment</value>
</data>
<data name="Salutation" xml:space="preserve">
<value>Salutation</value>
</data>
@@ -379,7 +391,7 @@
<value>Les données de base n'ont pas pu être récupérées. Les valeurs par défaut sont utilisées à la place !</value>
</data>
<data name="Warning.Masterdata.Title" xml:space="preserve">
<value>Impossible de récupérer les données de base !</value>
<value>Les données de base ne sont pas disponibles!</value>
</data>
<data name="Warning.Nominatim.Msg" xml:space="preserve">
<value>L'adresse n'a pas pu être résolue en invoquant le service Nominatim. Veuillez saisir l'adresse en indiquant la rue et le code postal/ville.</value>

+ 13
- 1
Shared/ResourceFiles/Resources.it.resx Dosyayı Görüntüle

@@ -126,6 +126,9 @@
<data name="Address" xml:space="preserve">
<value>Indirizzo</value>
</data>
<data name="Age" xml:space="preserve">
<value>Età</value>
</data>
<data name="Bike.Child_Bycicle" xml:space="preserve">
<value>Bicicletta per bambino</value>
</data>
@@ -291,6 +294,9 @@
<data name="FoundBike" xml:space="preserve">
<value>Bicicletta trovata</value>
</data>
<data name="FrameNumber" xml:space="preserve">
<value>Nummero telaio</value>
</data>
<data name="fundvelo/account/Found" xml:space="preserve">
<value>Bicicletta &gt; Trovata &gt; Dati trovatore</value>
</data>
@@ -357,6 +363,12 @@
<data name="PlaceOfLoss" xml:space="preserve">
<value>Luogo della perdita</value>
</data>
<data name="Price" xml:space="preserve">
<value>Prezzo</value>
</data>
<data name="Remark" xml:space="preserve">
<value>Commento</value>
</data>
<data name="Salutation" xml:space="preserve">
<value>Saluto</value>
</data>
@@ -379,7 +391,7 @@
<value>Non è stato possibile recuperare i dati anagrafici. Vengono invece utilizzati i valori di default!</value>
</data>
<data name="Warning.Masterdata.Title" xml:space="preserve">
<value>Impossibile recuperare i dati anagrafici!</value>
<value>Dati anagrafici non disponibili!</value>
</data>
<data name="Warning.Nominatim.Msg" xml:space="preserve">
<value>L'indirizzo non può essere risolto invocando il servizio Nominatim. Si prega di digitare la via e CAP/città.</value>

+ 13
- 1
Shared/ResourceFiles/Resources.resx Dosyayı Görüntüle

@@ -126,6 +126,9 @@
<data name="Address" xml:space="preserve">
<value>Address</value>
</data>
<data name="Age" xml:space="preserve">
<value>Age</value>
</data>
<data name="Bike.Child_Bycicle" xml:space="preserve">
<value>Children Bycicle</value>
</data>
@@ -291,6 +294,9 @@
<data name="FoundBike" xml:space="preserve">
<value>Found Bike</value>
</data>
<data name="FrameNumber" xml:space="preserve">
<value>Frame Number</value>
</data>
<data name="fundvelo/account/Found" xml:space="preserve">
<value>Bicycle &gt; Found &gt; Founder data</value>
</data>
@@ -357,6 +363,12 @@
<data name="PlaceOfLoss" xml:space="preserve">
<value>Place Of Loss</value>
</data>
<data name="Price" xml:space="preserve">
<value>Price</value>
</data>
<data name="Remark" xml:space="preserve">
<value>Remark</value>
</data>
<data name="Salutation" xml:space="preserve">
<value>Salutation</value>
</data>
@@ -379,7 +391,7 @@
<value>The master data could not be retrieved. The default values are used instead!</value>
</data>
<data name="Warning.Masterdata.Title" xml:space="preserve">
<value>Could not retreive master data!</value>
<value>Master data not available!</value>
</data>
<data name="Warning.Nominatim.Msg" xml:space="preserve">
<value>The address could not be resolved invoking Nominatim service. Please type in the address street and zip/town.</value>

+ 0
- 2
Shared/Services/LFBicycleRest.cs Dosyayı Görüntüle

@@ -22,8 +22,6 @@ namespace cwebplusApp.Shared.Services {
public void Initialize(IConfiguration configuration) {
this.Configuration = configuration;
string hostBaseUrl = Configuration.GetValue<string>("host_base_url");
Console.WriteLine("host_base_url: " + hostBaseUrl);
if (!String.IsNullOrEmpty(hostBaseUrl)) {
this.httpClient = new HttpClient { BaseAddress = new Uri(hostBaseUrl) };
}

+ 28
- 0
Shared/Services/ReportDataProvider.cs Dosyayı Görüntüle

@@ -0,0 +1,28 @@
using cwebplusApp.Shared.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace cwebplusApp.Shared.Services {
public class ReportDataProvider {
public Report Report { get; set; }
public FoundReport GetFoundReport() {
if (Report is FoundReport) {
return (FoundReport)Report;
}
return null;
}
public MissingReport GetLostReport() {
if (Report is MissingReport) {
return (MissingReport)Report;
}
return null;
}
}
}

+ 1
- 0
cwebplusApp.csproj Dosyayı Görüntüle

@@ -10,6 +10,7 @@
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
<Version>0.1.0</Version>
</PropertyGroup>
<ItemGroup>

+ 1
- 1
wwwroot/appsettings.json Dosyayı Görüntüle

@@ -2,5 +2,5 @@
"host_base_url": "https://integrate.dynalias.net:9443/Fundvelo/",
"subresource_url_colors": "api/{0}/{1}/fundvelo/colors",
"subresource_url_brands": "api/{0}/{1}/fundvelo/brands",
"subresource_url_types=": "api/{0}/{1}/fundvelo/types"
"subresource_url_types": "api/{0}/{1}/fundvelo/types"
}

+ 2
- 2
wwwroot/css/app.css Dosyayı Görüntüle

@@ -90,7 +90,7 @@ a {
}
.fv-mat-card {
border-radius: 20px;
border-radius: 10%;
}
.mat-icon-large {
@@ -204,7 +204,7 @@ div.outlined .mdc-text-field.mdc-text-field--fullwidth .mdc-floating-label.mdc-f
.fv-osm-tile {
border: 1px solid rgb(0 0 0 /.38);
border-radius: 20px;
border-radius: 10%;
}
#bicycleLocationMap {

Loading…
İptal
Kaydet