Exemplo n.º 1
0
 public void FillCAPersonLinks(CAPerson caPerson)
 {
     caPerson.Links = new LinkHelper()
                      .SetOptions(User, typeof(ContingentArrivalsController), Url)
                      .AddLink(nameof(ContingentArrivalsController.DeleteCAPerson), new { id = caPerson.Sno })
                      .GetLinks();
 }
Exemplo n.º 2
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));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> PostCAPerson([FromRoute] int cano, [FromBody] CAPerson caPerson)
        {
            caPerson.CANav = await _context.ContingentArrival.SingleOrDefaultAsync(m => m.ContingentArrivalNo == cano);

            // Do not allow changing approved CAs
            if (caPerson.CANav.Approved)
            {
                return(Unauthorized());
            }

            _context.CAPerson.Add(caPerson);

            Utilities.Log(_context, HttpContext, $"Add person {caPerson.Mino} to subcontingent #{caPerson.CANav.ContingentArrivalNo} {caPerson.CANav.ContingentLeaderNo})", 2, true);
            await _context.SaveChangesAsync();

            Person[] people = await _context.Person.Where(m => m.Mino == caPerson.Mino).ToArrayAsync();

            DataUtilities.FillCAPerson(User, Url, caPerson, people, caPerson.CANav.ContingentLeaderNo);

            return(CreatedAtAction("PostCAPerson", new { id = caPerson.Sno }, caPerson));
        }
Exemplo n.º 4
0
        public static void FillCAPerson(ClaimsPrincipal user, IUrlHelper url, CAPerson caPerson, Person[] people, string clno, bool links = true)
        {
            if (links)
            {
                new LinksMaker(user, url).FillCAPersonLinks(caPerson);
            }
            var person = people.SingleOrDefault(m => m.Mino == caPerson.Mino);

            if (person != null)
            {
                caPerson.person = person;

                if (links)
                {
                    new LinksMaker(user, url).FillPersonLinks(person);
                }

                caPerson.Sex = person.Sex;
                if (person.ContingentLeaderNo != clno)
                {
                    // Bad Contingent Leader
                    caPerson.flags += "BCL";
                }
                if (person.allottedCA != null)
                {
                    // Person already approved (in another subcontingent etc)
                    caPerson.flags += "PAA";
                }
            }
            else
            {
                // No Registered Person
                caPerson.flags += "NRP";
                caPerson.Sex    = "?";
            }
        }
Exemplo n.º 5
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));
        }