This commit is contained in:
1billy17 2024-11-14 16:33:46 +03:00
parent 9b4ef19cbc
commit 07596a597c
3 changed files with 42 additions and 6 deletions

View File

@ -40,6 +40,11 @@ namespace Demo.Data.Repository
var allRecords = _remoteDatabaseContext.PresenceDaos.ToList();
_remoteDatabaseContext.PresenceDaos.RemoveRange(allRecords);
_remoteDatabaseContext.SaveChanges();
if (allRecords.Count == 0) {
return false;
}
return true;
}
@ -51,26 +56,38 @@ namespace Demo.Data.Repository
_remoteDatabaseContext.PresenceDaos.RemoveRange(delRecords);
_remoteDatabaseContext.SaveChanges();
if (delRecords.Count == 0) {
return false;
}
return true;
}
public bool DeletePresenceByGroup(int groupID) {
var delRecords = _remoteDatabaseContext.PresenceDaos
.Where(y => y.userDAO.GroupID == groupID);
.Where(y => y.userDAO.GroupID == groupID).ToList();
_remoteDatabaseContext.PresenceDaos.RemoveRange(delRecords);
_remoteDatabaseContext.SaveChanges();
if (delRecords.Count == 0) {
return false;
}
return true;
}
public bool DeletePresenceByDateRange(DateOnly startDate, DateOnly endDate) {
var delRecords = _remoteDatabaseContext.PresenceDaos
.Where(x => x.Date >= startDate && x.Date <= endDate);
.Where(x => x.Date >= startDate && x.Date <= endDate).ToList();
_remoteDatabaseContext.PresenceDaos.RemoveRange(delRecords);
_remoteDatabaseContext.SaveChanges();
if (delRecords.Count == 0) {
return false;
}
return true;
}

View File

@ -11,10 +11,12 @@ public class AdminController: ControllerBase{
private readonly GroupUseCase _groupUseCase;
private readonly UserUseCase _userUseCase;
private readonly PresenceUseCase _presenceUseCase;
public AdminController(GroupUseCase groupUseCase, UserUseCase userUseCase, PresenceUseCase presenceUseCase){
private readonly ILogger<AdminController> _logger;
public AdminController(GroupUseCase groupUseCase, UserUseCase userUseCase, PresenceUseCase presenceUseCase, ILogger<AdminController> logger){
_groupUseCase = groupUseCase;
_userUseCase = userUseCase;
_presenceUseCase = presenceUseCase;
_logger = logger;
}
//post
@ -23,6 +25,7 @@ public class AdminController: ControllerBase{
{
if (request == null || string.IsNullOrEmpty(request.GroupName))
{
_logger.LogWarning("Invalid request");
return BadRequest("Invalid request");
}
@ -40,10 +43,12 @@ public class AdminController: ControllerBase{
[HttpDelete("user")]
public ActionResult<bool> DeleteUser(Guid userGuid){
if (userGuid == Guid.Empty){
_logger.LogWarning("Invalid request");
return BadRequest("Invalid request");
}
bool isDeleted = _userUseCase.RemoveUserByGuid(userGuid);
if (isDeleted == false){
_logger.LogWarning("User not found");
return NotFound("User not found");
}
return Ok(true);
@ -52,12 +57,14 @@ public class AdminController: ControllerBase{
[HttpDelete("users")]
public ActionResult<bool> DeleteUsers([FromBody] DeleteUsersRequest request){
if (request == null){
_logger.LogWarning("Invalid request");
return BadRequest("Invalid request");
}
foreach (Guid userGuid in request.UsersGuid)
{
bool isDeleted = _userUseCase.RemoveUserByGuid(userGuid);
if (isDeleted == false){
_logger.LogWarning("User not found");
return NotFound("User not found");
}
}
@ -68,6 +75,7 @@ public class AdminController: ControllerBase{
public ActionResult<bool> DeleteGroup(int GroupID){
bool isDeleted = _groupUseCase.RemoveGroupByID(GroupID);
if (isDeleted == false){
_logger.LogWarning("Group not found");
return NotFound("Group not found");
}
return Ok(true);
@ -76,12 +84,14 @@ public class AdminController: ControllerBase{
[HttpDelete("groups")]
public ActionResult<bool> DeleteGroups([FromBody] DeleteGroupsRequest request){
if (request == null){
_logger.LogWarning("Invalid request");
return BadRequest("Invalid request");
}
foreach (int GroupID in request.GroupIDs)
{
bool isDeleted = _groupUseCase.RemoveGroupByID(GroupID);
if (isDeleted == false){
_logger.LogWarning("Group not found");
return NotFound("Group not found");
}
}
@ -107,6 +117,7 @@ public class AdminController: ControllerBase{
if (user != null){
return Ok(user);
} else{
_logger.LogWarning("User not found");
return NotFound("User not found");
}
}

View File

@ -1,7 +1,6 @@
using Demo.Domain.Models;
using Demo.Domain.UseCase;
using Microsoft.AspNetCore.Mvc;
using Npgsql.TypeMapping;
namespace presence_api.Controllers;
[ApiController]
@ -10,10 +9,12 @@ namespace presence_api.Controllers;
public class PresenceController: ControllerBase{
private readonly PresenceUseCase _presenceUseCase;
private readonly ILogger<PresenceController> _logger;
public PresenceController(PresenceUseCase presenceUseCase){
public PresenceController(PresenceUseCase presenceUseCase, ILogger<PresenceController> logger){
_presenceUseCase = presenceUseCase;
_logger = logger;
}
@ -22,6 +23,7 @@ public class PresenceController: ControllerBase{
if (!DateOnly.TryParse(date, out var parseDate))
{
_logger.LogWarning("Invalid date format");
return BadRequest("Invalid date format");
}
@ -48,11 +50,13 @@ public class PresenceController: ControllerBase{
public ActionResult<bool> DeletePresenceByUserGuid(Guid userGuid)
{
if (userGuid == Guid.Empty){
_logger.LogWarning("Invalid Guid");
return BadRequest("Invalid request");
}
var isDeleted = _presenceUseCase.DeletePresenceByUser(userGuid);
if (isDeleted == false){
_logger.LogWarning("User not found");
return NotFound("User not found");
}
return Ok(true);
@ -63,6 +67,7 @@ public class PresenceController: ControllerBase{
{
var isDeleted = _presenceUseCase.DeletePresenceByGroup(groupID);
if (isDeleted == false){
_logger.LogWarning("Group not found");
return NotFound("Group not found");
}
return Ok(true);
@ -74,11 +79,13 @@ public class PresenceController: ControllerBase{
if (!DateOnly.TryParse(startDate, out var parsedStartDate) ||
!DateOnly.TryParse(endDate, out var parsedEndDate))
{
_logger.LogWarning("Invalid date format");
return BadRequest("Invalid date format");
}
var isDeleted = _presenceUseCase.DeletePresenceByDateRange(parsedStartDate, parsedEndDate);
if (isDeleted == false){
_logger.LogWarning("Presence not found");
return NotFound("Presence not found");
}
@ -90,15 +97,16 @@ public class PresenceController: ControllerBase{
{
if (!DateOnly.TryParse(date, out var parseDate))
{
_logger.LogWarning("Invalid date format");
return BadRequest("Invalid date format");
}
var isUpdated = _presenceUseCase.IsAttedance(firstLesson, lastLesson, parseDate, UserGuid);
if (isUpdated == false){
_logger.LogWarning("Presence not found");
return NotFound("Presence not found");
}
return Ok(true);
}
}