public void setAllotted(ContingentArrival contingentArrival) { foreach (var x in contingentArrival.RoomAllocation) { /* Get count */ int count = 0; if (x.Partial < 0) { count = x.Room.Capacity; } else { count = x.Partial; } /* Check sex */ if (x.Room.LocationNavigation != null && x.Room.LocationNavigation.Sex != null && x.Room.LocationNavigation.Sex.ToUpper() == "M") { contingentArrival.AllottedMale += count; } else { contingentArrival.AllottedFemale += count; } } }
/// <summary> /// Fill Links object for ContingentArrival /// </summary> /// <param name="contingentArrival">ContingentArrival object</param> /// <returns></returns> public void FillContingentArrivalLinks(ContingentArrival contingentArrival) { var idObject = new { id = contingentArrival.ContingentArrivalNo }; var idObjectBuilding = new { id = contingentArrival.ContingentLeaderNo, cano = contingentArrival.ContingentArrivalNo }; var desk1obj = new { cano = contingentArrival.ContingentArrivalNo }; contingentArrival.Links = new LinkHelper() .SetOptions(User, typeof(ContingentArrivalsController), Url) .AddLink(nameof(ContingentArrivalsController.PutContingentArrival), idObject) .AddLink(nameof(ContingentArrivalsController.DeleteContingentArrival), idObject) .AddLink(nameof(ContingentArrivalsController.PostCAPerson), desk1obj, "add_caperson") .AddLink(nameof(ContingentArrivalsController.ApproveContingentArrival), desk1obj, "approve") .AddLink(nameof(ContingentArrivalsController.UnApproveContingentArrival), desk1obj, "unapprove") .SetOptions(User, typeof(ContingentsController), Url) .AddLink(nameof(ContingentsController.GetContingent), new { id = contingentArrival.ContingentLeaderNo }, "contingent") .SetOptions(User, typeof(ExportController), Url) .AddLink(nameof(ExportController.GetContingentArrivalBill), idObject, "bill") .SetOptions(User, typeof(RoomAllocationsController), Url) .AddLink(nameof(RoomAllocationsController.PostRoomAllocation), null, "create_room_allocation") .SetOptions(User, typeof(BuildingsController), Url) .AddLink(nameof(BuildingsController.GetBuildingsExtended), idObjectBuilding, "buildings") .AddLink(nameof(BuildingsController.GetBuildingsMin), idObjectBuilding, "buildings-min") .GetLinks(); }
public async Task <IActionResult> PutContingentArrival([FromRoute] int id, [FromBody] ContingentArrival contingentArrival) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != contingentArrival.ContingentArrivalNo) { return(BadRequest()); } _context.Entry(contingentArrival).State = EntityState.Modified; try { Utilities.Log(_context, HttpContext, $"Update subcontingent #{contingentArrival.ContingentArrivalNo} {contingentArrival.ContingentLeaderNo})", 1, true); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ContingentArrivalExists(id)) { return(NotFound()); } else { throw; } } DataUtilities.UpdateWebSock(null, _hubContext); return(NoContent()); }
public static int mattress(ContingentArrival ca, string sex) { int count = 0; foreach (RoomAllocation roomA in ca.RoomAllocation.Where(m => m.Room.LocationNavigation.Sex == sex)) { count += raMattress(roomA); } return(count); }
public static bool hasPartial(ContingentArrival ca, string sex) { foreach (RoomAllocation roomA in ca.RoomAllocation.Where(m => m.Room.LocationNavigation.Sex == sex)) { if (roomA.Partial > 0 && roomA.Partial < roomA.Room.Capacity) { return(true); } } return(false); }
public static string clName(ContingentArrival ca) { foreach (Person p in ca.ContingentLeaderNoNavigation.Person) { if (p.Mino == ca.ContingentLeaderNo) { return(p.Name); } } return("N/A"); }
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); }
public async Task <IActionResult> PostContingentArrival([FromBody] ContingentArrival contingentArrival) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } contingentArrival.CreatedOn = DateTime.UtcNow.AddHours(5).AddMinutes(30); _context.ContingentArrival.Add(contingentArrival); await _context.SaveChangesAsync(); new LinksMaker(User, Url).FillContingentArrivalLinks(contingentArrival); Utilities.Log(_context, HttpContext, $"Create subcontingent #{contingentArrival.ContingentArrivalNo} {contingentArrival.ContingentLeaderNo})", 0, true); return(CreatedAtAction("GetContingentArrival", new { id = contingentArrival.ContingentArrivalNo }, contingentArrival)); }
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)); }