using System; using System.Collections.Generic; using Kreta.BusinessLogic.Classes; namespace Kreta.BusinessLogic.HelperClasses { public class TanuloOsztalyTantargyiAtlagCoComparer : IEqualityComparer { 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; } } }