Fixing reading vehicles DB

This commit is contained in:
Selim Mustafaev 2024-05-09 15:45:04 +03:00
parent 5f6b71b0bd
commit 3a5b5f29e8
7 changed files with 87 additions and 44 deletions

View File

@ -20,19 +20,6 @@
</ResourceDictionary>
</UserControl.Resources>
<Grid ColumnDefinitions="300, Auto, *">
<ListBox ItemsSource="{Binding Vehicles}" Name="VehiclesList">
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type models:Vehicle}">
<TextBlock Text="qwe"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<GridSplitter Grid.Column="1" ResizeDirection="Columns"/>
<pages:ReportPage Grid.Column="2" Vehicle="{Binding ElementName=VehiclesList, Path=SelectedItem, Mode=OneWay}"/>
</Grid>
<!--
<Grid ColumnDefinitions="300, Auto, *">
<ListBox ItemsSource="{Binding Vehicles}"
ItemTemplate="{StaticResource VehicleCell}"
@ -40,6 +27,5 @@
<GridSplitter Grid.Column="1" ResizeDirection="Columns"/>
<pages:ReportPage Grid.Column="2" Vehicle="{Binding ElementName=VehiclesList, Path=SelectedItem, Mode=OneWay}"/>
</Grid>
-->
</UserControl>

View File

@ -1,46 +1,25 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using AutoCat.Utils;
using AutoCatCore.Model;
using AutoCatCore.Services.Storage;
using ReactiveUI;
namespace AutoCat.ViewModels;
public class HistoryViewModel: ViewModelBase
public class HistoryViewModel(IStorageService storageService) : ViewModelBase
{
#region Dependencies
private readonly IStorageService _storageService;
#endregion
#region Properties
public ICollection<Vehicle> Vehicles { get; set; }
#endregion
public HistoryViewModel(IStorageService storageService)
{
_storageService = storageService;
Vehicles = storageService.GetVehicles();
this.RaisePropertyChanged(nameof(Vehicles));
}
public ObservableCollection<Vehicle> Vehicles { get; set; } = storageService.GetVehicles();
public async Task AddVehicle(Vehicle vehicle)
{
try
{
await _storageService.AddVehicle(vehicle);
await storageService.AddVehicle(vehicle);
}
catch (Exception ex)
{
Console.WriteLine($"Exception: {ex.Message}");
Console.WriteLine($"Inner exception: {ex.InnerException?.Message}");
Console.WriteLine("");
}
Alerts.ShowError(ex);
}
}
}

View File

@ -14,6 +14,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.4" />
<PackageReference Include="Realm" Version="12.1.0" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<Realm />
</Weavers>

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="Realm" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="DisableAnalytics" type="xs:boolean">
<xs:annotation>
<xs:documentation>THIS IS DEPRECATED - USE `AnalyticsCollection` INSTEAD. Disables anonymized
usage information from being sent on build. Read more about what data is being collected and
why here: https://github.com/realm/realm-dotnet/blob/main/Realm/Realm.Weaver/Analytics.cs</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AnalyticsCollection">
<xs:annotation>
<xs:documentation>Controls what anonymized usage information is being sent on build. Read more
about what data is being collected and why here:
https://github.com/realm/realm-dotnet/blob/main/Realm/Realm.Weaver/Analytics/Analytics.cs</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Full">
<xs:annotation>
<xs:documentation>Analytics collection will run normally. This is the default behavior
and we hope you don't change it as the anonymized data collected is critical for
making the right decisions about the future of the Realm SDK.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="DryRun">
<xs:annotation>
<xs:documentation>Analytics collection will run but will not send it to the server. This
is useful in combination with `AnalyticsLogPath` if you want to review the data being
sent.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Disabled">
<xs:annotation>
<xs:documentation>Analytics collection is disabled. No data will be sent on build.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="AnalyticsLogPath" type="xs:string">
<xs:annotation>
<xs:documentation>Controls where the payload for the anonymized metrics collection will be
stored. This can be useful if you want to review the data being collected by Realm. </xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -1,5 +1,7 @@
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using AutoCatCore.Model;
using Microsoft.EntityFrameworkCore.ChangeTracking;
namespace AutoCatCore.Services.Storage;
@ -13,5 +15,5 @@ public interface IStorageService
public Task AddVehicle(Vehicle vehicle);
public ICollection<Vehicle> GetVehicles();
public ObservableCollection<Vehicle> GetVehicles();
}

View File

@ -42,9 +42,9 @@ public class StorageService: IStorageService
await _dbContext.SaveChangesAsync();
}
public ICollection<Vehicle> GetVehicles()
public ObservableCollection<Vehicle> GetVehicles()
{
_dbContext.Vehicles.Load();
return _dbContext.Vehicles.Local;
return _dbContext.Vehicles.Local.ToObservableCollection();
}
}