Skip to content
Snippets Groups Projects

commit

Merged Lucca Santangelo Dodera requested to merge feature/bedelia-complete into develop
15 files
+ 280
54
Compare changes
  • Side-by-side
  • Inline
Files
15
@@ -110,40 +110,61 @@ namespace Bedelia.Controllers
[HttpPost("closeRecord")]
public async Task<IActionResult> CloseRecord(CloseRecordDto closeRecord)
{
var now = DateTime.Now;
var course = await _context.Courses
.FirstOrDefaultAsync(x => x.Name == closeRecord.CourseName);
if (course == null)
try
{
return BadRequest(string.Format(@"No existe el curso con nombre {0} en bedelia", closeRecord.CourseName));
}
var now = DateTime.Now;
var course = await _context.Courses
.FirstOrDefaultAsync(x => x.Name == closeRecord.CourseName);
var userIdentityCards = closeRecord.UserGrades.Select(x => x.IdentityCard);
if (course == null)
{
return BadRequest(string.Format("No existe el curso con nombre {0} en bedelia", closeRecord.CourseName));
}
var users = await _context.Users
.Where(x => userIdentityCards.Contains(x.IdentityCard))
.ToListAsync();
var userIdentityCards = closeRecord.UserGrades.Select(x => x.IdentityCard);
var userCourses = new List<UserCourse>();
foreach (var user in users)
{
var grade = closeRecord.UserGrades
.Where(x => x.IdentityCard == user.IdentityCard)
.Select(x => x.Grade)
.FirstOrDefault();
var users = await _context.Users
.Where(x => userIdentityCards.Contains(x.IdentityCard))
.ToListAsync();
var dbUserIdentityCards = users.Select(x => x.IdentityCard);
var identityCardNotFounds = userIdentityCards.Except(dbUserIdentityCards);
userCourses.Add(new UserCourse()
var errors = string.Empty;
foreach (var identityCard in identityCardNotFounds)
{
CourseId = course.Id,
UserId = user.Id,
Grade = grade,
GradeDate = now
});
}
errors += string.Format("No existe el usuario con cedula {0} en bedelia", identityCard) + "\n";
}
_context.UserCourses.AddRange(userCourses);
await _context.SaveChangesAsync();
if (!string.IsNullOrEmpty(errors))
{
return BadRequest(errors);
}
var userCourses = new List<UserCourse>();
foreach (var user in users)
{
var grade = closeRecord.UserGrades
.Where(x => x.IdentityCard == user.IdentityCard)
.Select(x => x.Grade)
.FirstOrDefault();
userCourses.Add(new UserCourse()
{
CourseId = course.Id,
UserId = user.Id,
Grade = grade,
GradeDate = now
});
}
_context.UserCourses.AddRange(userCourses);
await _context.SaveChangesAsync();
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
return Ok();
}
Loading