Refactoring: Added interfaces, custom exceptions, UserManager unit tests, dependency injection/inversion; Regex match search by date, keywords

This commit is contained in:
Dimitar Byalkov
2023-06-06 17:52:36 +02:00
parent 180b261d37
commit 53c42a35d8
43 changed files with 668 additions and 211 deletions

View File

@@ -11,21 +11,33 @@ namespace WebApp.Pages
public class AnnouncementsModel : PageModel
{
public AnnouncementManager AnnouncementManager { get; set; }
public void OnGet(int? p, int? c)
private readonly IAnnouncementRepository _announcementRepository;
public AnnouncementsModel(IAnnouncementRepository announcementRepository)
{
AnnouncementManager = new AnnouncementManager();
if (p == null || p < 1)
_announcementRepository = announcementRepository;
}
public void OnGet(int? p, int? c) // page, count
{
AnnouncementManager = new AnnouncementManager(_announcementRepository);
if (!(p < 0))
{
p = 1;
}
if (c == null || c < 1)
if (!(c < 1))
{
c = 10;
}
ViewData.Add("announcements", AnnouncementManager.GetAnnouncementsByPage(p - 1, c));
ViewData.Add("announcements", AnnouncementManager.GetAnnouncementsByPage(p.Value - 1, c.Value));
ViewData.Add("page", p);
ViewData.Add("count", c);
ViewData.Add("allCount", AnnouncementManager.GetAllAnnouncements().Count());
ViewData.Add("allCount", AnnouncementManager.GetAllAnnouncements().Count);
}
public void OnGetSearch(string s) // search
{
AnnouncementManager = new AnnouncementManager(_announcementRepository);
ViewData.Add("announcements", AnnouncementManager.SearchAnnouncements(s));
}
}
}