-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMemberInfo.cs
More file actions
64 lines (54 loc) · 2.13 KB
/
MemberInfo.cs
File metadata and controls
64 lines (54 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GradesAssignment
{
public class MemberInfo
{
public int? Place { get; set; }
public string SurnameAndName { get; set; }
public int? YearOfBirth { get; set; }
public int? Age => YearOfBirth.HasValue ? frmMain.Instance.CompetitionYear - YearOfBirth : null;
public bool? IsAdult => Age.HasValue ? (bool?)(Age > 17) : null;
public enGrade? InitGrade { get; set; }
public string InitGradeForShow => InitGrade?.ToGradeString();
public enGrade? ResultGrade { get; set; }
public string ResultGradeForShow => ResultGrade?.ToGradeString();
public enGrade? ResultGradeBefore2018 { get; set; }
public string ResultGradeBefore2018ForShow => ResultGradeBefore2018?.ToGradeString();
public bool UsedInCalculating { get; set; }
public enAssignmentStatus AssignmentStatus { get; set; } = enAssignmentStatus.None;
public string AssignmentStatusForShow => AssignmentStatus.ToAssignmentStatusString();
public void RefreshAssignmentStatus(Dictionary<enGrade, int> MinGradeAssignmentAges)
{
if (ResultGrade > InitGrade)
AssignmentStatus = enAssignmentStatus.Improve;
else if (ResultGrade == InitGrade)
AssignmentStatus = enAssignmentStatus.Сonfirm;
if (AssignmentStatus != enAssignmentStatus.None)
{
if ((IsAdult.Value && ResultGrade < enGrade.Adult3) || (Age < MinGradeAssignmentAges[ResultGrade.Value]))
{
AssignmentStatus = enAssignmentStatus.WillBeNotAssigned;
}
}
}
}
public enum enAssignmentStatus
{
None,
/// <summary>
/// Выполнил новый разряд
/// </summary>
Improve,
/// <summary>
/// Подтвердил разряд
/// </summary>
Сonfirm,
/// <summary>
/// Разряд не будет присвоен
/// </summary>
WillBeNotAssigned
}
}