using System.Collections.Generic; using OeDuePlan.Util; namespace OeDuePlan.Report.Model { public enum EvaluationMode { CropRotation = 1, Crop = 2 } public interface IUnitBranchEvaluationReportRow { string RowCaption { get; set; } Dictionary ValuesPerHa { get; set; } Dictionary ValuesPerUnit { get; set; } IList EvaluationKeysSubRows { get; set; } } public class UnitBranchEvaluationModel : ReportModel { public UnitBranchEvaluationModel() { EvaluationReportRows = new List(); } public EvaluationReportHeader Header { get; set; } public IList EvaluationReportRows { get; set; } } public class EvaluationReportHeader { public EvaluationReportHeader() { EvaluationUnits = new List(); } public string RowCaption { get; set; } public string SubRowAreaCaption { get; set; } public string SubRowYieldCaption { get; set; } public IList EvaluationUnits { get; set; } } public class EvaluationUnit { public EvaluationMode Mode { get; set; } public int Id { get; set; } public string Name { get; set; } public double AreaHa { get; set; } public double YieldPerHa { get { if (AreaHa.IsGreaterThan(0, 0.0001)) { return (YieldSum / AreaHa); } return 0; } } public double YieldSum { get; set; } } public class EvaluationKeysMainRow : IUnitBranchEvaluationReportRow { public EvaluationKeysMainRow() { EvaluationKeysSubRows = new List(); ValuesPerHa = new Dictionary(); ValuesPerUnit = new Dictionary(); } public string RowCaption { get; set; } public Dictionary ValuesPerHa { get; set; } public Dictionary ValuesPerUnit { get; set; } public IList EvaluationKeysSubRows { get; set; } } public class EvaluationKeysSubRow { public EvaluationKeysSubRow() { EvaluationKeysSubRows = new List(); ValuesPerHa = new Dictionary(); ValuesPerUnit = new Dictionary(); } public string RowCaption { get; set; } public Dictionary ValuesPerHa { get; set; } public Dictionary ValuesPerUnit { get; set; } public IList EvaluationKeysSubRows { get; set; } } public class EvaluationKeysSubSubRow { public EvaluationKeysSubSubRow() { ValuesPerHa = new Dictionary(); ValuesPerUnit = new Dictionary(); } public string RowCaption { get; set; } public Dictionary ValuesPerHa { get; set; } public Dictionary ValuesPerUnit { get; set; } } }