Exemple #1
0
        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));
        }
Exemple #2
0
 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());
         }
     }
 }