public PollingStationCommissionUI(PollingStationCommission c) { this.Id = c.Id; this.ElectionFk = c.ElectionFk; this.Location = c.Location; this.DigitalLocation = c.DigitalLocation; this.Description = c.Description; this.ElectionFk = c.ElectionFk; this.President = new PersonUI(c.PresidentFkNavigation.PersonFkNavigation); }
public void UpdatePollingStationCommission(PollingStationCommission c) { c.Location = this.Location; c.DigitalLocation = this.DigitalLocation; c.Description = this.Description; c.ElectionFk = this.ElectionFk; if (this.President != null) { c.PresidentFk = this.President.Id; } }
public async Task <List <PollingStationCommissionUI> > NewPSCommissions(Guid id, PollingStationCommissionUI commission) { var com = new PollingStationCommission(); com.Id = Guid.NewGuid(); commission.Id = com.Id; commission.UpdatePollingStationCommission(com); _context.PollingStationCommission.Add(com); await _context.SaveChangesAsync(); var q = from c in _context.PollingStationCommission where c.ElectionFk == id select c; return((await q.ToListAsync()).ConvertAll(c => new PollingStationCommissionUI(c))); }
public async Task <IActionResult> AddPSCommission(PollingStationCommissionUI comm, Guid?presidentFK) { var c = new PollingStationCommission(); c.Id = Guid.NewGuid(); comm.UpdatePollingStationCommission(c); _context.PollingStationCommission.Add(c); await _context.SaveChangesAsync(); if (presidentFK.HasValue) { var memb = new PollingStationCommissioner(); memb.Id = Guid.NewGuid(); memb.PersonFk = presidentFK.Value; memb.PollingStationCommissionFk = c.Id; c.PresidentFk = memb.Id; _context.PollingStationCommissioner.Add(memb); await _context.SaveChangesAsync(); } return(RedirectToAction("EditPollingStations", new { id = comm.ElectionFk })); }
public async Task <IActionResult> ClonePSCommissions(Guid src, Guid dst) { var srce = await _context.Election.FindAsync(src); var dste = await _context.Election.FindAsync(dst); var updatedgid = false; var presidents = new Dictionary <PollingStationCommission, PollingStationCommissioner>(); if (srce.PollStartDate >= DateTime.Today) { if (srce.PollingStationGroupId.HasValue) { dste.PollingStationGroupId = srce.PollingStationGroupId; } else { var newgid = Guid.NewGuid(); srce.PollingStationGroupId = newgid; dste.PollingStationGroupId = newgid; updatedgid = true; } } var commissions = await(from c in _context.PollingStationCommission where c.ElectionFk == src select c).ToListAsync(); foreach (var com in commissions) { if (updatedgid) { com.PollingStationGroupId = srce.PollingStationGroupId; } var ncom = new PollingStationCommission() { Id = Guid.NewGuid(), Location = com.Location, DigitalLocation = com.DigitalLocation, Description = com.Description, ElectionFk = dste.Id, PollingStationGroupId = com.PollingStationGroupId }; _context.PollingStationCommission.Add(ncom); var members = await(from m in _context.PollingStationCommissioner where m.PollingStationCommissionFk == com.Id select m).ToListAsync(); foreach (var mem in members) { var nmem = new PollingStationCommissioner() { Id = Guid.NewGuid(), PersonFk = mem.PersonFk, AvailableForRemoteRecognition = mem.AvailableForRemoteRecognition, PollingStationCommissionFk = ncom.Id, VirtualRoom = mem.VirtualRoom }; if (com.PresidentFk.HasValue && com.PresidentFk == mem.Id) { presidents.Add(ncom, nmem); } _context.PollingStationCommissioner.Add(nmem); } var remids = await(from m in _context.RemoteIdentificationCommissioner where m.PollingStationCommissionFk == com.Id select m).ToListAsync(); foreach (var remid in remids) { var nremid = new RemoteIdentificationCommissioner() { Id = Guid.NewGuid(), PersonFk = remid.PersonFk, AvailableForRemoteRecognition = remid.AvailableForRemoteRecognition, PollingStationCommissionFk = ncom.Id, VirtualRoom = remid.VirtualRoom }; _context.RemoteIdentificationCommissioner.Add(nremid); } } await _context.SaveChangesAsync(); // Needed to avoid circular dependencies foreach (var c in presidents.Keys) { c.PresidentFk = presidents[c].Id; } await _context.SaveChangesAsync(); return(RedirectToAction("EditPollingStations", new { id = dste.Id })); }