Vereinsmeisterschaften  22aa7800eae54b428d40e835886cefe1fdefdfdf
This is a software that can be used to manage the internal competition of the swimming club Illertissen called "Vereinsmeisterschaften".
Loading...
Searching...
No Matches
DocumentStrategyResultListDetail.cs
6
8{
13 {
14 private readonly IPersonService _personService;
15
22 public DocumentStrategyResultListDetail(IPersonService personService, IWorkspaceService workspaceService, IServiceProvider serviceProvider) : base(workspaceService, serviceProvider)
23 {
24 _personService = personService;
25 }
26
28 public override DocumentCreationTypes DocumentType => DocumentCreationTypes.ResultListDetail;
29
31 public override string TemplatePath => DocumentService.GetDocumentPathAbsolute(WorkspaceSettings.SETTING_DOCUMENT_CREATION_RESULT_LIST_DETAIL_TEMPLATE_PATH, _workspaceService);
32
36 public override bool CreateMultiplePages => false;
37
39 public override Enum ItemOrdering { get; set; } = ItemOrderingsResultListDetail.None;
40
42 public override IEnumerable<Enum> AvailableItemOrderings => Enum.GetValues(typeof(ItemOrderingsResultListDetail)).Cast<Enum>();
43
48 public override Person[] GetItems()
49 {
50 List<Person> persons = _personService.GetPersons().ToList();
51 switch (ItemOrdering)
52 {
53 case ItemOrderingsResultListDetail.ByNameAscending: persons = persons.OrderBy(p => p?.Name).ToList(); break;
54 case ItemOrderingsResultListDetail.ByNameDescending: persons = persons.OrderByDescending(p => p?.Name).ToList(); break;
55 case ItemOrderingsResultListDetail.ByFirstNameAscending: persons = persons.OrderBy(p => p?.FirstName).ToList(); break;
56 case ItemOrderingsResultListDetail.ByFirstNameDescending: persons = persons.OrderByDescending(p => p?.FirstName).ToList(); break;
57 case ItemOrderingsResultListDetail.ByBestPlaceAscending: persons = persons.OrderBy(p => p?.ResultListPlace).ToList(); break;
58 case ItemOrderingsResultListDetail.ByBestPlaceDescending: persons = persons.OrderByDescending(p => p?.ResultListPlace).ToList(); break;
59 default: break;
60 }
61 return persons.Where(p => p.IsActive).ToArray();
62 }
63
64 // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
65
70 {
71 None,
72 ByNameAscending,
73 ByNameDescending,
74 ByFirstNameAscending,
75 ByFirstNameDescending,
76 ByBestPlaceAscending,
77 ByBestPlaceDescending
78 }
79 }
80
81}
DocumentStrategyBase(IWorkspaceService workspaceService, IServiceProvider serviceProvider)
Constructor for the document strategy base class.
override IEnumerable< Enum > AvailableItemOrderings
Array with all available orderings for the items.If no ordering is supported, this will be null.
DocumentStrategyResultListDetail(IPersonService personService, IWorkspaceService workspaceService, IServiceProvider serviceProvider)
Constructor for the document strategy for a result list with details.
override Enum ItemOrdering
Current ordering for the items.If no ordering is supported, this will be null.
override string TemplatePath
Gets the path to the template used for creating the document.
override DocumentCreationTypes DocumentType
Gets the type of document this strategy creates.
Class describing a person.
Definition Person.cs:12
Service used to create documents like certificates or start lists.
static string GetDocumentPathAbsolute(string documentCreationSettingKey, IWorkspaceService workspaceService)
Get the absolute path for the requested document creation setting.
Interface for a service used to get and store a list of Person objects.
Interface for a service used to manage a workspace.
DocumentCreationTypes
Different types of documents that can be created.