Example #1
0
 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);
 }
Example #2
0
 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;
     }
 }
Example #3
0
        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)));
        }
Example #4
0
        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 }));
        }
Example #5
0
        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 }));
        }