Beispiel #1
0
        public async Task <IActionResult> ValidatePostForm1([FromBody] ExtContingentArrival extContingentArrival)
        {
            var contingent = await _context.Contingents.SingleOrDefaultAsync(m => m.ContingentLeaderNo == extContingentArrival.ContingentLeaderNo);

            if (contingent == null)
            {
                return(BadRequest(new { message = "Not a contingent leader - " + extContingentArrival.ContingentLeaderNo }));
            }

            var people = await _context.Person.ToListAsync();

            var contingentArrival = fillFromExt(extContingentArrival);

            /* Make CAPerson entries */
            foreach (string mino in extContingentArrival.Minos)
            {
                var caPerson = new CAPerson();
                caPerson.Mino   = mino;
                caPerson.CANav  = contingentArrival;
                caPerson.person = people.SingleOrDefault(m => m.Mino == mino);
                DataUtilities.FillCAPerson(User, Url, caPerson, people.ToArray(), contingent.ContingentLeaderNo, false);
                contingentArrival.CAPeople.Add(caPerson);
            }

            return(Ok(contingentArrival));
        }
Beispiel #2
0
        private ContingentArrival fillFromExt(ExtContingentArrival extContingentArrival)
        {
            var contingentArrival = new ContingentArrival();

            contingentArrival.CreatedOn          = DateTime.UtcNow.AddHours(5).AddMinutes(30);
            contingentArrival.FillerMiNo         = extContingentArrival.FillerMiNo;
            contingentArrival.Male               = extContingentArrival.Male;
            contingentArrival.Female             = extContingentArrival.Female;
            contingentArrival.MaleOnSpotDemand   = extContingentArrival.MaleOnSpotDemand;
            contingentArrival.FemaleOnSpotDemand = extContingentArrival.FemaleOnSpotDemand;
            contingentArrival.ContingentLeaderNo = extContingentArrival.ContingentLeaderNo;
            return(contingentArrival);
        }
Beispiel #3
0
        public async Task <IActionResult> PostForm1([FromBody] ExtContingentArrival extContingentArrival)
        {
            /* Check if contingent exists */
            var contingent = await _context.Contingents.SingleOrDefaultAsync(m => m.ContingentLeaderNo == extContingentArrival.ContingentLeaderNo);

            if (contingent == null)
            {
                return(BadRequest(new { message = "Not a contingent leader - " + extContingentArrival.ContingentLeaderNo }));
            }

            /* Add contingent arrival */
            var contingentArrival = fillFromExt(extContingentArrival);

            _context.ContingentArrival.Add(contingentArrival);
            await _context.SaveChangesAsync();

            var people = await _context.Person.ToListAsync();

            /* Make CAPerson entries */
            foreach (string mino in extContingentArrival.Minos)
            {
                var caPerson = new CAPerson();
                caPerson.Mino   = mino;
                caPerson.CANav  = contingentArrival;
                caPerson.person = people.SingleOrDefault(m => m.Mino == caPerson.Mino);
                DataUtilities.FillCAPerson(User, Url, caPerson, people.ToArray(), contingent.ContingentLeaderNo, false);
                _context.CAPerson.Add(caPerson);
            }

            await _context.SaveChangesAsync();

            /* Send email */
            try {
                StringBuilder body = new StringBuilder();
                body.Append($"Hello {extContingentArrival.FillerMiNo}!\n\n");
                body.Append($"Your request for accommodation has been registered ");
                body.Append($"and the token number allotted to you is {contingentArrival.ContingentArrivalNo}.\n\n");
                body.Append($"Proceed to Hospitality Desk 1 for further action. ");
                body.Append($"Keep this token number and ID cards of all members with you availing accommodation ready.\n\n");

                body.Append($"Enlisted below are the details filled by you:\n");
                body.Append($"Male: {contingentArrival.Male}\n");
                body.Append($"Female: {contingentArrival.Female}\n");
                body.Append($"On-Spot Requests (Male): {contingentArrival.MaleOnSpotDemand}\n");
                body.Append($"On-Spot Requests (Female): {contingentArrival.FemaleOnSpotDemand}\n\n");

                foreach (var caPerson in contingentArrival.CAPeople)
                {
                    body.Append($"{caPerson.Mino}");
                    string flags = caPerson.flags == "" ? "OK" : caPerson.flags;
                    if (caPerson.person != null)
                    {
                        body.Append($"- {caPerson.person.Name} - {caPerson.person.Sex}");
                    }
                    body.Append($" - {flags}\n");
                }

                SmtpClient client = new SmtpClient("localhost");
                client.UseDefaultCredentials = true;

                MailMessage mailMessage = new MailMessage();
                mailMessage.From = new MailAddress("*****@*****.**", "Mood Indigo");
                mailMessage.To.Add(extContingentArrival.FillerEmail);
                mailMessage.Bcc.Add("*****@*****.**");
                mailMessage.Body    = body.ToString();
                mailMessage.Subject = $"Accommodation Token #{contingentArrival.ContingentArrivalNo}";
                client.SendAsync(mailMessage, null);
            } catch {
                // No email sent :(
            }

            DataUtilities.UpdateWebSock(null, _hubContext);
            return(CreatedAtAction("GetContingentArrival", new { id = contingentArrival.ContingentArrivalNo }, contingentArrival));
        }