debug for catching errors
This commit is contained in:
parent
8024021236
commit
8ef372052b
@ -26,9 +26,9 @@ namespace presence.domain.UseCase
|
||||
public bool UpdateGroupName(String id, String name1) {
|
||||
return _repositoryGroupImpl.UpdateGroupById(int.Parse(id), name1);
|
||||
}
|
||||
public bool AddGroup(String name, String id)
|
||||
public bool AddGroup(String name, int id)
|
||||
{
|
||||
return _repositoryGroupImpl.AddGroup(new GroupDao { Name = name, Id = int.Parse(id) });
|
||||
return _repositoryGroupImpl.AddGroup(new GroupDao { Name = name, Id = id });
|
||||
}
|
||||
|
||||
|
||||
|
@ -84,7 +84,25 @@ namespace presence.domain.UseCase
|
||||
return _presenceRepository.UncheckAttendence(firstClass, lastClass, date, userId);
|
||||
}
|
||||
|
||||
public List<PresenceResponse> AddPresence(String startDate, String endDate, int groupId)
|
||||
public void AddPresence(int firstClass, int lastClass, int groupId,DateOnly date)
|
||||
{
|
||||
var users = _userRepository.GetAllUser().Where(x => x.GroupId==groupId).ToList();
|
||||
List<Presence> presenceList = new List<Presence>();
|
||||
for (int i = firstClass; i < lastClass; i++)
|
||||
{
|
||||
foreach (var user in users)
|
||||
{
|
||||
Presence pres = new Presence{ClassNumber = i, Date = date,
|
||||
User = new User{Id = user.UserId,
|
||||
FIO = user.FIO,
|
||||
GroupId = new Group{Id = groupId,
|
||||
Name = _groupRepository.GetGroupById(groupId).Name}}};
|
||||
presenceList.Add(pres);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<PresenceResponse> AddPresenceByDate(String startDate, String endDate, int groupId)
|
||||
{
|
||||
var users = _userRepository.GetAllUser().Where(x => x.GroupId == groupId).ToList();
|
||||
List<PresenceResponse> presenceList = new List<PresenceResponse>();
|
||||
@ -114,7 +132,6 @@ namespace presence.domain.UseCase
|
||||
}
|
||||
|
||||
}
|
||||
// Здесь можно добавить код для сохранения presenceList в репозиторий, если это необходимо
|
||||
return presenceList;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ public class PresenceController: ControllerBase
|
||||
public ActionResult<IEnumerable<Presence>> PostPresence([FromQuery] int GroupId,
|
||||
[FromQuery] string StartData, [FromQuery] string EndData, [FromQuery] int UserId)
|
||||
{
|
||||
return Ok(_presenceUseCase.AddPresence(StartData, EndData, GroupId));
|
||||
return Ok(_presenceUseCase.AddPresenceByDate(StartData, EndData, GroupId));
|
||||
}
|
||||
|
||||
[HttpDelete]
|
||||
|
@ -26,16 +26,20 @@ namespace presence.ui
|
||||
}
|
||||
|
||||
public void UpdateGroupName(String name, String name1) {
|
||||
StringBuilder groupOutput = new StringBuilder();
|
||||
var group = _groupUseCase.UpdateGroupName(name, name1) ? "Группа обновлена" : "Группа не обновлена";
|
||||
Console.WriteLine(groupOutput);
|
||||
string output = _groupUseCase.UpdateGroupName(name, name1) ? "Группа обновлена" : "Группа не обновлена";
|
||||
Console.WriteLine(output);
|
||||
}
|
||||
|
||||
public void AddGroup(String name, String id)
|
||||
{
|
||||
StringBuilder groupOutput = new StringBuilder();
|
||||
var group = _groupUseCase.AddGroup(name, id) ? "Группа добавлена" : "Группа не добавлена";
|
||||
Console.WriteLine(groupOutput);
|
||||
int Id;
|
||||
bool isParsed = int.TryParse(id, out Id);
|
||||
if (!isParsed)
|
||||
{
|
||||
Console.WriteLine("Введено не число");
|
||||
}
|
||||
string output = _groupUseCase.AddGroup(name, Id) ? "Группа добавлена" : "Группа не добавлена";
|
||||
Console.WriteLine(output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -44,22 +44,27 @@ namespace presence.ui
|
||||
Console.WriteLine("11 - Добавить отметку о присутствии");
|
||||
Console.WriteLine("12 - Экспортировать посещаемость в Excel");
|
||||
Console.WriteLine("13 - Сгенерировать недельную посещаемость");
|
||||
Console.WriteLine("14 - Получить статистику посещаемости по группе");
|
||||
|
||||
switch (Console.ReadLine())
|
||||
{
|
||||
case "1": _userConsoleUI.DisplayAllUsers(); break;
|
||||
case "2": _userConsoleUI.RemoveUserById(int.Parse(Console.ReadLine())); break;
|
||||
case "3": _groupConsoleUI.DisplayAllGroups(); break;
|
||||
case "4": _userConsoleUI.GetUserById(int.Parse(Console.ReadLine())); break;
|
||||
case "5": _userConsoleUI.UpdateUserById(int.Parse(Console.ReadLine()), Console.ReadLine(), int.Parse(Console.ReadLine())); break;
|
||||
case "2": _userConsoleUI.RemoveUserById(Console.ReadLine()); break;
|
||||
case "3": _userConsoleUI.GetUserById(Console.ReadLine()); break;
|
||||
case "4": _userConsoleUI.UpdateUserById(Console.ReadLine(), Console.ReadLine(), Console.ReadLine()); break;
|
||||
|
||||
case "5": _groupConsoleUI.DisplayAllGroups(); break;
|
||||
case "6": _groupConsoleUI.UpdateGroupName(Console.ReadLine(), Console.ReadLine()); break;
|
||||
case "7": _groupConsoleUI.AddGroup(Console.ReadLine(), Console.ReadLine()); break;
|
||||
case "8": _presenceConsoleUI.GetPresenceByGroup(int.Parse(Console.ReadLine())); break;
|
||||
case "9": _presenceConsoleUI.GetPresenceByGroupAndDate(int.Parse(Console.ReadLine()), DateOnly.Parse(Console.ReadLine())); break;
|
||||
case "10": _presenceConsoleUI.UncheckAttendence(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), DateOnly.Parse(Console.ReadLine()), int.Parse(Console.ReadLine())); break;
|
||||
case "11": _presenceConsoleUI.AddPresence(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), DateOnly.Parse(Console.ReadLine())); break;
|
||||
case "12": _presenceConsoleUI.ExportPresenceToExcel(int.Parse(Console.ReadLine()), Console.ReadLine()); break;
|
||||
case "13": _presenceConsoleUI.GenerateWeeklyPresence(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), DateOnly.Parse(Console.ReadLine())); break;
|
||||
|
||||
case "8": _presenceConsoleUI.GetPresenceByGroup(Console.ReadLine()); break;
|
||||
case "9": _presenceConsoleUI.GetPresenceByGroupAndDate(Console.ReadLine(), Console.ReadLine()); break;
|
||||
case "10": _presenceConsoleUI.UncheckAttendence(Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine()); break;
|
||||
case "11": _presenceConsoleUI.AddPresence(Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine()); break;
|
||||
case "12": _presenceConsoleUI.ExportPresenceToExcel(Console.ReadLine(), Console.ReadLine()); break;
|
||||
case "13": _presenceConsoleUI.GenerateWeeklyPresence(Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine()); break;
|
||||
case "14": _presenceConsoleUI.GetPresenceStatsByGroup(Console.ReadLine()); break;
|
||||
|
||||
default: DisplayMenu();
|
||||
break;
|
||||
}
|
||||
|
@ -20,46 +20,91 @@ namespace presence.ui
|
||||
_presenceRepository = presenceRepository;
|
||||
}
|
||||
|
||||
public void GetPresenceByGroup(int groupId)
|
||||
public void GetPresenceByGroup(string groupId)
|
||||
{
|
||||
|
||||
int Id;
|
||||
bool isParsed = int.TryParse(groupId, out Id);
|
||||
if (!isParsed)
|
||||
{
|
||||
Console.WriteLine("Введено не число");
|
||||
}
|
||||
StringBuilder presenceOutput = new StringBuilder();
|
||||
var presence = _presenceUseCase.GetPresenceByGroup(groupId);
|
||||
var presence = _presenceUseCase.GetPresenceByGroup(Id);
|
||||
foreach (var p in presence)
|
||||
{
|
||||
presenceOutput.AppendLine($"{p.User.Guid}\t{p.User.FIO}\t{p.ClassNumber}\t{p.Date}\t{p.IsAttendence}");
|
||||
presenceOutput.AppendLine($"{p.User.Id}\t{p.User.FIO}\t{p.ClassNumber}\t{p.Date}\t{p.IsAttendence}");
|
||||
}
|
||||
Console.WriteLine(presenceOutput);
|
||||
}
|
||||
|
||||
public void GetPresenceByGroupAndDate(int groupId, DateOnly date)
|
||||
public void GetPresenceByGroupAndDate(string groupId, string date)
|
||||
{
|
||||
int Id;
|
||||
DateOnly Data;
|
||||
bool isParsed = int.TryParse(groupId, out Id);
|
||||
bool isParsedData = DateOnly.TryParse(date, out Data);
|
||||
if (!isParsed && !isParsedData)
|
||||
{
|
||||
Console.WriteLine("Введено не число в группе ID или введена неправильно дата");
|
||||
}
|
||||
StringBuilder presenceOutput = new StringBuilder();
|
||||
var presence = _presenceUseCase.GetPresenceByGroupAndDate(groupId, date);
|
||||
var presence = _presenceUseCase.GetPresenceByGroupAndDate(Id, Data);
|
||||
foreach (var p in presence)
|
||||
{
|
||||
presenceOutput.AppendLine($"{p.User.Guid}\t{p.User.FIO}\t{p.ClassNumber}\t{p.Date}\t{p.IsAttendence}");
|
||||
presenceOutput.AppendLine($"{p.User.Id}\t{p.User.FIO}\t{p.ClassNumber}\t{p.Date}\t{p.IsAttendence}");
|
||||
}
|
||||
Console.WriteLine(presenceOutput);
|
||||
}
|
||||
|
||||
public void UncheckAttendence(int firstClass, int lastClass, DateOnly date, int userId)
|
||||
public void UncheckAttendence(string firstClass, string lastClass, string date, string userId)
|
||||
{
|
||||
string output = _presenceUseCase.UncheckAttendence(firstClass, lastClass, date, userId) ?
|
||||
int fClass;
|
||||
int lClass;
|
||||
int uId;
|
||||
DateOnly Data;
|
||||
bool isParsedFClass = int.TryParse(firstClass, out fClass);
|
||||
bool isParsedLClass = int.TryParse(lastClass, out lClass);
|
||||
bool isParsedUId = int.TryParse(userId, out uId);
|
||||
bool isParsedData = DateOnly.TryParse(date, out Data);
|
||||
if (!isParsedFClass && !isParsedData && !isParsedLClass && !isParsedUId)
|
||||
{
|
||||
Console.WriteLine("Введен не числа для одних из этих значений: первый урок, последний урок, ID юзера или неправильно введена датаю");
|
||||
}
|
||||
string output = _presenceUseCase.UncheckAttendence(fClass, lClass, Data, uId) ?
|
||||
"Посещаемость обновлена" : "Посещаемость не обновлена";
|
||||
Console.WriteLine(output);
|
||||
}
|
||||
|
||||
public void AddPresence(int firstClass, int lastClass, int groupId, DateOnly date)
|
||||
public void AddPresence(string firstClass, string lastClass, string groupId, string date)
|
||||
{
|
||||
StringBuilder presenceOutput = new StringBuilder();
|
||||
_presenceUseCase.AddPresence(firstClass, lastClass, groupId, date);
|
||||
presenceOutput.AppendLine("Посещаемость добавлена");
|
||||
Console.WriteLine(presenceOutput);
|
||||
int fClass;
|
||||
int lClass;
|
||||
int gId;
|
||||
DateOnly data;
|
||||
bool isParsedFClass = int.TryParse(firstClass, out fClass);
|
||||
bool isParsedLClass = int.TryParse(lastClass, out lClass);
|
||||
bool isParsedGId = int.TryParse(groupId, out gId);
|
||||
bool isParsedData = DateOnly.TryParse(date, out data);
|
||||
if (!isParsedFClass && !isParsedData && !isParsedLClass && !isParsedGId)
|
||||
{
|
||||
Console.WriteLine("Введен не числа для одних из этих значений: первый урок, последний урок, ID группы или неправильно введена датаю");
|
||||
}
|
||||
_presenceUseCase.AddPresence(fClass, lClass, gId, data);
|
||||
Console.WriteLine("Посещаемость добавлена");
|
||||
}
|
||||
|
||||
public void GetPresenceStatsByGroup(int groupId)
|
||||
public void GetPresenceStatsByGroup(string groupId)
|
||||
{
|
||||
var stats = _presenceUseCase.GetPresenceStatsByGroup(groupId);
|
||||
|
||||
int Id;
|
||||
bool isParsed = int.TryParse(groupId, out Id);
|
||||
if (!isParsed)
|
||||
{
|
||||
Console.WriteLine("Введено не число");
|
||||
}
|
||||
|
||||
var stats = _presenceUseCase.GetPresenceStatsByGroup(Id);
|
||||
StringBuilder output = new StringBuilder();
|
||||
|
||||
output.AppendLine($"Информация о группе {groupId}:");
|
||||
@ -68,7 +113,7 @@ namespace presence.ui
|
||||
output.AppendLine($"Общий процент посещаемости: {stats["Процент посещаемости"]}%");
|
||||
output.AppendLine("\nСтатистика по студентам:");
|
||||
|
||||
var presence = _presenceUseCase.GetPresenceByGroup(groupId);
|
||||
var presence = _presenceUseCase.GetPresenceByGroup(Id);
|
||||
var students = presence.GroupBy(p => p.User)
|
||||
.Select(g => new {
|
||||
Student = g.Key,
|
||||
@ -88,16 +133,34 @@ namespace presence.ui
|
||||
Console.WriteLine(output.ToString());
|
||||
}
|
||||
|
||||
public void GenerateWeeklyPresence(int firstClass, int lastClass, int groupId, DateOnly startDate)
|
||||
public void GenerateWeeklyPresence(string firstClass, string lastClass, string groupId, string date)
|
||||
{
|
||||
_presenceUseCase.GenerateWeeklyPresence(firstClass, lastClass, groupId, startDate);
|
||||
int fClass;
|
||||
int lClass;
|
||||
int gId;
|
||||
DateOnly data;
|
||||
bool isParsedFClass = int.TryParse(firstClass, out fClass);
|
||||
bool isParsedLClass = int.TryParse(lastClass, out lClass);
|
||||
bool isParsedGId = int.TryParse(groupId, out gId);
|
||||
bool isParsedData = DateOnly.TryParse(date, out data);
|
||||
if (!isParsedFClass && !isParsedData && !isParsedLClass && !isParsedGId)
|
||||
{
|
||||
Console.WriteLine("Введен не числа для одних из этих значений: первый урок, последний урок, ID группы или неправильно введена дата");
|
||||
}
|
||||
_presenceUseCase.GenerateWeeklyPresence(fClass, lClass, gId, data);
|
||||
Console.WriteLine("Посещаемость на неделю сгенерирована");
|
||||
}
|
||||
|
||||
public void ExportPresenceToExcel(int groupId, string filePath)
|
||||
public void ExportPresenceToExcel(string groupId, string filePath)
|
||||
{
|
||||
var presence = _presenceUseCase.GetPresenceByGroup(groupId);
|
||||
var stats = _presenceUseCase.GetPresenceStatsByGroup(groupId);
|
||||
int Id;
|
||||
bool isParsed = int.TryParse(groupId, out Id);
|
||||
if (!isParsed)
|
||||
{
|
||||
Console.WriteLine("Введено не число");
|
||||
}
|
||||
var presence = _presenceUseCase.GetPresenceByGroup(Id);
|
||||
var stats = _presenceUseCase.GetPresenceStatsByGroup(Id);
|
||||
|
||||
using (var workbook = new XLWorkbook())
|
||||
{
|
||||
|
@ -15,9 +15,15 @@ namespace presence.ui
|
||||
_userUseCase = userUseCase;
|
||||
}
|
||||
|
||||
public void RemoveUserById(int userId) {
|
||||
public void RemoveUserById(string userId) {
|
||||
|
||||
string output = _userUseCase.RemoveUserById(userId) ? "Пользователь удален" : "Пользователь не удален";
|
||||
int Id;
|
||||
bool isParsed = int.TryParse(userId, out Id);
|
||||
if (!isParsed)
|
||||
{
|
||||
Console.WriteLine("Введено не число");
|
||||
}
|
||||
string output = _userUseCase.RemoveUserById(Id) ? "Пользователь удален" : "Пользователь не удален";
|
||||
Console.WriteLine(output);
|
||||
}
|
||||
|
||||
@ -31,17 +37,30 @@ namespace presence.ui
|
||||
Console.WriteLine(userOutput);
|
||||
}
|
||||
|
||||
public void GetUserById(int userId) {
|
||||
public void GetUserById(string userId) {
|
||||
int Id;
|
||||
bool isParsed = int.TryParse(userId, out Id);
|
||||
if (!isParsed)
|
||||
{
|
||||
Console.WriteLine("Введено не число");
|
||||
}
|
||||
StringBuilder userOutput = new StringBuilder();
|
||||
var user = _userUseCase.GetUserById(userId);
|
||||
var user = _userUseCase.GetUserById(Id);
|
||||
userOutput.AppendLine($"{user.Id}\t{user.FIO}\t{user.GroupId}");
|
||||
Console.WriteLine(userOutput);
|
||||
}
|
||||
|
||||
public void UpdateUserById(int userId, String name, int groupId) {
|
||||
StringBuilder userOutput = new StringBuilder();
|
||||
var user = _userUseCase.UpdateUserById(userId, name, groupId) ? "Пользователь обновлен" : "Пользователь не обновлен";
|
||||
Console.WriteLine(userOutput);
|
||||
public void UpdateUserById(string userId, String name, string groupId) {
|
||||
int UserId;
|
||||
int GroupId;
|
||||
bool isParsed = int.TryParse(userId, out UserId);
|
||||
bool isParsedGroup = int.TryParse(groupId, out GroupId);
|
||||
if (!isParsed && !isParsedGroup)
|
||||
{
|
||||
Console.WriteLine("Введено не число для Id юзера или Id группы.");
|
||||
}
|
||||
string output = _userUseCase.UpdateUserById(UserId, name, GroupId) ? "Пользователь обновлен" : "Пользователь не обновлен";
|
||||
Console.WriteLine(output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user