Esempio n. 1
0
        public async Task <IActionResult> PutPerson([FromRoute] string id, [FromBody] Person person)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != person.Mino)
            {
                return(BadRequest());
            }

            Utilities.Log(_context, HttpContext, $"Update person {person.Mino} {person.Name}", 1, true);
            _context.Entry(person).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PersonExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 2
0
        public async Task <IActionResult> PutBuilding([FromRoute] string id, [FromBody] Building building)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != building.Location)
            {
                return(BadRequest());
            }

            _context.Entry(building).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BuildingExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 3
0
        public async Task <IActionResult> PutContingent([FromRoute] string id, [FromBody] Contingent contingents)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != contingents.ContingentLeaderNo)
            {
                return(BadRequest());
            }

            _context.Entry(contingents).State = EntityState.Modified;

            Utilities.Log(_context, HttpContext, $"Update contingent {contingents.ContingentLeaderNo}", 1, true);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ContingentsExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 4
0
        public async Task <IActionResult> PutRoom([FromRoute] int id, [FromBody] Room room)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != room.RoomId)
            {
                return(BadRequest());
            }

            Utilities.Log(_context, HttpContext, $"Update room {room.RoomId} ({room.Location} {room.RoomName})", 2, true);

            _context.Entry(room).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RoomExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            UpdateLayoutWebSocket(new [] { room });
            return(NoContent());
        }
Esempio n. 5
0
        public async Task <IActionResult> PutRoomAllocation([FromRoute] int id, [FromBody] RoomAllocation roomAllocation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != roomAllocation.Sno)
            {
                return(BadRequest());
            }

            _context.Entry(roomAllocation).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RoomAllocationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            RoomAllocation ra = _context.RoomAllocation.Include(m => m.Room)
                                .Where(m => m.Sno == roomAllocation.Sno).FirstOrDefault();

            if (ra != null)
            {
                UpdateLayoutWebSocket(new Room[] { ra.Room });
            }

            return(NoContent());
        }
Esempio n. 6
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));
        }