public IActionResult ValidateParticipants([FromBody] Dictionary <string, string> santas) { if (Request.Headers.Authorization != AdminSecret) { return(Unauthorized()); } var response = new ValidationDto(); using (var db = new SantaContext()) { foreach (var santa in santas) { response.Santas.Add(santa.Key); var thisSanta = db.Santas?.Find(Guid.Parse(santa.Value)); if (thisSanta == null) { return(UnprocessableEntity("EI KLAPI")); } var symmetricEncryptDecrypt = new EncryptionFactory(); var decryptedName = symmetricEncryptDecrypt.Decrypt(thisSanta.DesignatedPerson, thisSanta.IVBase64, EncryptionKey); response.Receivers.Add(decryptedName); } } response.Santas = response.Santas.OrderBy(x => x).ToList(); response.Receivers = response.Receivers.OrderBy(x => x).ToList(); return(Ok(response)); }
public IActionResult Get(Guid code) { using (var db = new SantaContext()) { Santa?santa = db.Santas?.First(x => x.Id == code); if (santa != null) { var symmetricEncryptDecrypt = new EncryptionFactory(); var decryptedName = symmetricEncryptDecrypt.Decrypt(santa.DesignatedPerson, santa.IVBase64, EncryptionKey); db.LogEntries?.Add(new LogEntry(santa.Id, Request.Headers["User-Agent"], Request.Headers["X-Forwarded-For"])); db.SaveChanges(); var response = new SantaDto { Name = santa.Name, DesignatedPerson = decryptedName }; return(Ok(response)); } else { return(BadRequest()); } } }