コード例 #1
0
        public async Task <IActionResult> GetDesk1([FromQuery] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var contingentArrival = await _context.ContingentArrival
                                    .Include(m => m.CAPeople)
                                    .Include(m => m.RoomAllocation)
                                    .ThenInclude(m => m.Room)
                                    .ThenInclude(m => m.LocationNavigation)
                                    .SingleOrDefaultAsync(m => m.ContingentArrivalNo == id);

            if (contingentArrival == null)
            {
                return(NotFound());
            }

            List <string> minos = contingentArrival.CAPeople.Select(m => m.Mino).ToList();

            Person[] people = await _context.Person.Where(m => minos.Contains(m.Mino))
                              .Include(m => m.allottedCA)
                              .ToArrayAsync();

            foreach (CAPerson caPerson in contingentArrival.CAPeople)
            {
                DataUtilities.FillCAPerson(User, Url, caPerson, people, contingentArrival.ContingentLeaderNo);
            }

            var linksMaker = new LinksMaker(User, Url);

            foreach (var roomA in contingentArrival.RoomAllocation)
            {
                linksMaker.FillRoomAllocationLinks(roomA);
            }

            setAllotted(contingentArrival);

            await _context.SaveChangesAsync();

            contingentArrival.PeopleFemale = contingentArrival.CAPeople.Count(m => m.Sex.ToUpper() == "F");
            contingentArrival.PeopleMale   = contingentArrival.CAPeople.Count(m => m.Sex.ToUpper() == "M");

            linksMaker.FillContingentArrivalLinks(contingentArrival);

            return(Ok(contingentArrival));
        }
コード例 #2
0
        public async Task <IActionResult> ApproveContingentArrival([FromRoute] int cano, [FromBody] ContingentArrival contingentArrivalPut)
        {
            var contingentArrival = await _context.ContingentArrival
                                    .Include(m => m.CAPeople)
                                    .SingleOrDefaultAsync(m => m.ContingentArrivalNo == cano);

            if (contingentArrival == null || contingentArrival.Approved)
            {
                return(NotFound());
            }

            /* Set M/F count from posted data */
            contingentArrival.Male               = contingentArrivalPut.Male;
            contingentArrival.Female             = contingentArrivalPut.Female;
            contingentArrival.MaleOnSpotDemand   = contingentArrivalPut.MaleOnSpotDemand;
            contingentArrival.FemaleOnSpotDemand = contingentArrivalPut.FemaleOnSpotDemand;
            contingentArrival.Remark             = contingentArrivalPut.Remark;

            /* Mark people as done with */
            String[] minos  = contingentArrival.CAPeople.Select(cap => cap.Mino).ToArray();
            Person[] people = await _context.Person.Where(m => minos.Contains(m.Mino)).ToArrayAsync();

            var linksMaker = new LinksMaker(User, Url);

            foreach (CAPerson caPerson in contingentArrival.CAPeople)
            {
                linksMaker.FillCAPersonLinks(caPerson);
                Person person = people.SingleOrDefault(m => m.Mino == caPerson.Mino);
                if (person != null)
                {
                    person.allottedCA = contingentArrival;
                    _context.Update(person);
                }
                DataUtilities.FillCAPerson(User, Url, caPerson, people, contingentArrival.ContingentLeaderNo, false);
            }

            /* Approve! */
            contingentArrival.Approved = true;

            Utilities.Log(_context, HttpContext, $"Approve subcontingent {contingentArrival.ContingentArrivalNo} {contingentArrival.ContingentLeaderNo})", 2, true);
            await _context.SaveChangesAsync();

            DataUtilities.UpdateWebSock(null, _hubContext);

            linksMaker.FillContingentArrivalLinks(contingentArrival);
            return(Ok(contingentArrival));
        }
コード例 #3
0
        public async Task <IActionResult> UnApproveContingentArrival([FromRoute] int cano)
        {
            var contingentArrival = await _context.ContingentArrival
                                    .Include(m => m.CAPeople)
                                    .SingleOrDefaultAsync(m => m.ContingentArrivalNo == cano);

            if (contingentArrival == null || !contingentArrival.Approved)
            {
                return(NotFound());
            }

            /* Mark people as done with */
            String[] minos  = contingentArrival.CAPeople.Select(cap => cap.Mino).ToArray();
            Person[] people = await _context.Person
                              .Include(p => p.allottedCA)
                              .Where(m => minos.Contains(m.Mino)).ToArrayAsync();

            var linksMaker = new LinksMaker(User, Url);

            foreach (CAPerson caPerson in contingentArrival.CAPeople)
            {
                linksMaker.FillCAPersonLinks(caPerson);
                Person person = people.SingleOrDefault(m => m.Mino == caPerson.Mino);
                if (person != null && person.allottedCA.ContingentArrivalNo == contingentArrival.ContingentArrivalNo)
                {
                    person.allottedCA = null;
                    _context.Update(person);
                }
                DataUtilities.FillCAPerson(User, Url, caPerson, people, contingentArrival.ContingentLeaderNo, false);
            }

            /* UnApprove! */
            contingentArrival.Approved = false;

            Utilities.Log(_context, HttpContext, $"Unapprove subcontingent {contingentArrival.ContingentArrivalNo} {contingentArrival.ContingentLeaderNo})", 1, true);
            await _context.SaveChangesAsync();

            DataUtilities.UpdateWebSock(null, _hubContext);

            linksMaker.FillContingentArrivalLinks(contingentArrival);
            return(Ok(contingentArrival));
        }