DeliveryAdminWindow is now able to look at deliveries

This commit is contained in:
2023-07-13 21:10:48 +02:00
parent e8919cc629
commit fd26ee4f52
7 changed files with 390 additions and 55 deletions

View File

@ -1,7 +1,9 @@
using Elwig.Helpers;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
namespace Elwig.Models {
[Table("delivery"), PrimaryKey("Year", "DId"), Index("DateString", "ZwstId", "LNr", IsUnique = true), Index("LsNr", IsUnique = true)]
@ -72,5 +74,25 @@ namespace Elwig.Models {
[InverseProperty("Delivery")]
public virtual ISet<DeliveryPart> Parts { get; private set; }
public int Weight => Parts.Select(p => p.Weight).Sum();
public IEnumerable<string> SortIds => Parts
.GroupBy(p => p.SortId)
.OrderByDescending(g => g.Select(p => p.Weight).Sum())
.Select(g => g.Select(p => p.SortId).First());
public string SortIdString => string.Join(", ", SortIds);
public int SearchScore(IEnumerable<string> keywords) {
var list = new string?[] {
LsNr, Year.ToString(), Date.ToString("dd.MM.yyyy"), Time.ToString("HH:ss"),
MgNr.ToString(), Member.FamilyName, Member.MiddleName, Member.GivenName, Member.BillingAddress?.Name,
Comment
}.ToList();
list.AddRange(Parts.Select(p => p.SortId).Distinct());
list.AddRange(Parts.Select(p => p.Comment).Distinct());
return Utils.GetSearchScore(list, keywords);
}
}
}