kreta/Kreta.BusinessLogic/HelperClasses/TanuloOsztalyTantargyiAtlagCo.cs
2024-03-13 00:33:46 +01:00

47 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes;
namespace Kreta.BusinessLogic.HelperClasses
{
public class TanuloOsztalyTantargyiAtlagCoComparer : IEqualityComparer<TanuloOsztalyTantargyiAtlagCo>
{
public bool Equals(TanuloOsztalyTantargyiAtlagCo lhs, TanuloOsztalyTantargyiAtlagCo rhs) => lhs.TantargyId == rhs.TantargyId;
public int GetHashCode(TanuloOsztalyTantargyiAtlagCo obj) => obj.TantargyId.GetHashCode();
}
public class TanuloOsztalyTantargyiAtlagCo
{
public bool HasAtlag { get; set; } = true;
public int TantargyId { get; set; }
public string TantargyNev { get; set; }
public List<(int Osztalyzat, int? Suly)> TanuloErtekelesOsztalyzatList { get; set; }
public List<(int Osztalyzat, int? Suly)> OsztalyErtekelesOsztalyzatList { get; set; }
public double? TanuloAtlag => HasAtlag ? TanuloErtekelesOsztalyzatList.Count > 0 ? TanuloErtekelesOsztalyzatList.WeightedAverage(x => x.Osztalyzat, x => x.Suly ?? 100, 2) : 0.00 : default(double?);
public double? OsztalyAtlag => HasAtlag ? OsztalyErtekelesOsztalyzatList.Count > 0 ? OsztalyErtekelesOsztalyzatList.WeightedAverage(x => x.Osztalyzat, x => x.Suly ?? 100, 2) : 0.00 : default(double?);
public double? AtlagKulonbseg => HasAtlag ? Math.Round(TanuloAtlag.Value - OsztalyAtlag.Value, 2) : default(double?);
//NOTE: A tantárgyak sorrendezéséhez kellenek ezek az adatok!
public int? FotargyId { get; set; }
public string FotargyNev { get; set; }
public int? TantargyKategoriaId { get; set; }
public string TantargyKategoriaNev { get; set; }
public string IsMagatartasSzorgalom { get; set; }
public int? FotargyTantargyKategoriaId { get; set; }
public string FotargyTantargyKategoriaNev { get; set; }
}
}