Dont allow duplicate photo subjects on photo, dont allow more than 4 photo subjects on photo

This commit is contained in:
jvyden 2021-12-23 02:06:23 -05:00
commit bd21b8f9ed
No known key found for this signature in database
GPG key ID: 18BCF2BE0262B278
2 changed files with 39 additions and 2 deletions

View file

@ -53,6 +53,11 @@ namespace LBPUnion.ProjectLighthouse.Controllers
photo.CreatorId = user.UserId;
photo.Creator = user;
if (photo.Subjects.Count > 4)
{
return this.BadRequest();
}
foreach (PhotoSubject subject in photo.Subjects)
{
subject.User = await this.database.Users.FirstOrDefaultAsync(u => u.Username == subject.Username);
@ -67,6 +72,17 @@ namespace LBPUnion.ProjectLighthouse.Controllers
await this.database.SaveChangesAsync();
// Check for duplicate photo subjects
List<int> subjectUserIds = new(4);
foreach (PhotoSubject subject in photo.Subjects)
{
if (subjectUserIds.Contains(subject.UserId))
{
return this.BadRequest();
}
subjectUserIds.Add(subject.UserId);
}
photo.PhotoSubjectIds = photo.Subjects.Select(subject => subject.PhotoSubjectId.ToString()).ToArray();
// photo.Slot = await this.database.Slots.FirstOrDefaultAsync(s => s.SlotId == photo.SlotId);