コード例 #1
0
        public void AddAddAmendment(ResaElement resolution, int roleId, string newText)
        {
            _context.Update(resolution);
            var paragraph = new ResaOperativeParagraph()
            {
                AllowAmendments = false,
                IsVirtual       = true,
                IsLocked        = true,
                OrderIndex      = resolution.OperativeParagraphs.Count,
                Parent          = null,
                Resolution      = resolution,
                Text            = newText
            };

            resolution.OperativeParagraphs.Add(paragraph);
            _context.OperativeParagraphs.Add(paragraph);
            var amendment = new ResaAddAmendment()
            {
                Resolution       = resolution,
                Submitter        = _context.Delegates.Find(roleId),
                VirtualParagraph = paragraph
            };

            resolution.AddAmendments.Add(amendment);
            _context.ResolutionAddAmendments.Add(amendment);
            _context.SaveChanges();
        }
コード例 #2
0
        public ResaPreambleParagraph CreatePreambleParagraph([NotNull] ResaElement resolution, string text = "")
        {
            if (resolution == null)
            {
                throw new ArgumentNullException("This method CreatePReambleParagraph received an resolution element null");
            }

            _context.Update(resolution);

            var paragraph = new ResaPreambleParagraph()
            {
                ResaElement = resolution,
                OrderIndex  = _context.PreambleParagraphs.Count(n => n.ResolutionId == resolution.ResaElementId),
                Text        = text
            };

            if (resolution.PreambleParagraphs == null)
            {
                resolution.PreambleParagraphs = new List <ResaPreambleParagraph>();
            }
            resolution.PreambleParagraphs.Add(paragraph);
            _context.PreambleParagraphs.Add(paragraph);
            _context.SaveChanges();
            return(paragraph);
        }
コード例 #3
0
        public ResaElement CreateResolutionForCommittee(string committeeId, int?roleId)
        {
            ConferenceDelegateRole role = null;

            if (roleId != null)
            {
                role = _context.Delegates.FirstOrDefault(n => n.RoleId == roleId.Value);
            }

            Committee committee = _context.Committees.FirstOrDefault(n => n.CommitteeId == committeeId);

            var element = new ResaElement()
            {
                Topic         = "Neuer Resolutionsentwurf",
                SubmitterName = role?.RoleName ?? "-",
                SubmitterRole = role,
                CommitteeName = committee?.Name ?? "-",
            };
            var auth = new ResolutionAuth()
            {
                Resolution = element,
                Committee  = committee,
            };

            _context.ResolutionAuths.Add(auth);
            _context.Resolutions.Add(element);
            _context.SaveChanges();
            _logger.LogInformation("New Resolution with id {0} for committee {1} created.", element.ResaElementId, committeeId);
            return(element);
        }
コード例 #4
0
 public void TestCreateResolution()
 {
     resolution = new ResaElement();
     _context.Resolutions.Add(resolution);
     _context.SaveChanges();
     Assert.AreEqual(1, _context.Resolutions.Count());
 }
コード例 #5
0
        public void RemoveResolution(ResaElement resolution)
        {
            _context.Update(resolution);
            _context.PreambleParagraphs.RemoveRange(resolution.PreambleParagraphs);
            _context.ResolutionAddAmendments
            .RemoveRange(_context.ResolutionAddAmendments
                         .Where(n => n.Resolution.ResaElementId == resolution.ResaElementId));

            _context.ResolutionChangeAmendments
            .RemoveRange(_context.ResolutionChangeAmendments
                         .Where(n => n.Resolution.ResaElementId == resolution.ResaElementId));

            _context.ResolutionDeleteAmendments
            .RemoveRange(_context.ResolutionDeleteAmendments
                         .Where(n => n.Resolution.ResaElementId == resolution.ResaElementId));

            _context.ResolutionMoveAmendments
            .RemoveRange(_context.ResolutionMoveAmendments
                         .Where(n => n.Resolution.ResaElementId == resolution.ResaElementId));

            _context.OperativeParagraphs
            .RemoveRange(_context.OperativeParagraphs
                         .Where(n => n.Resolution.ResaElementId == resolution.ResaElementId));

            _context.Resolutions.Remove(resolution);

            _context.SaveChanges();
        }
コード例 #6
0
        public ResaElement CreateResolution()
        {
            var element = new ResaElement();

            _context.Resolutions.Add(element);
            _context.SaveChanges();
            _logger.LogInformation("New Resolution with id {0} created.", element.ResaElementId);
            return(element);
        }
コード例 #7
0
        public void RevokeSupport(ResaElement resolution, int roleId)
        {
            var scope             = serviceScopeFactory.CreateScope();
            var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();

            resolutionService.RevokeSupport(resolution, roleId);

            ResolutionChanged?.Invoke(this, resolution);
        }
コード例 #8
0
        public void RevokeSupport(ResaElement resolution, int roleId)
        {
            var support = resolution.Supporters.FirstOrDefault(n => n.Role.RoleId == roleId);

            if (support != null)
            {
                resolution.Supporters.Remove(support);
                _context.Update(support);
                _context.ResolutionSupporters.Remove(support);
                _context.SaveChanges();
            }
        }
コード例 #9
0
        public void SupportResolution(ResaElement resolution, int roleId)
        {
            _context.Update(resolution);
            var support = new ResaSupporter()
            {
                Role       = _context.Delegates.Find(roleId),
                Resolution = resolution,
            };

            resolution.Supporters.Add(support);
            _context.ResolutionSupporters.Add(support);
            _context.SaveChanges();
        }
コード例 #10
0
        public ResaOperativeParagraph CreateOperativeParagraph([NotNull] ResaElement resolution, string text = "")
        {
            _context.Update(resolution);
            var operativeParagraph = new ResaOperativeParagraph()
            {
                Resolution = resolution,
                OrderIndex = _context.OperativeParagraphs.Count(n => n.Resolution.ResaElementId == resolution.ResaElementId),
                Text       = text
            };

            resolution.OperativeParagraphs.Add(operativeParagraph);
            _context.OperativeParagraphs.Add(operativeParagraph);
            _context.SaveChanges();
            return(operativeParagraph);
        }
コード例 #11
0
    public void TestCreateAResolution()
    {
        var resolution = new ResaElement();
        var auth       = new ResolutionAuth();

        auth.Resolution = resolution;
        auth.Conference = _context.Conferences.Find("munsh22");
        auth.Committee  = _context.Committees.Find("munsh22-gv");
        _context.Resolutions.Add(resolution);
        _context.ResolutionAuths.Add(auth);
        _context.SaveChanges();

        Assert.AreEqual(1, _context.ResolutionAuths.Count());
        Assert.AreEqual(1, _context.Resolutions.Count());
    }
コード例 #12
0
        public IList <ResaOperativeParagraph> GetOperativeParagraphs(ResaElement resolution, ResaOperativeParagraph parent = null)
        {
            var paragraphs = _context.OperativeParagraphs
                             .Where(n => n.Resolution == resolution && n.Parent == parent)
                             .Include(n => n.ChangeAmendments)
                             .Include(n => n.MoveAmendments)
                             .OrderBy(n => n.OrderIndex)
                             .ToList();

            foreach (var paragraph in paragraphs)
            {
                paragraph.Resolution       = resolution;
                paragraph.DeleteAmendments = GetDeleteAmendments(paragraph);
            }
            return(paragraphs);
        }
コード例 #13
0
    public void TestRemoveResolutionDeletePreambleParagraphs()
    {
        var resolution        = new ResaElement();
        var preambleParagraph = new ResaPreambleParagraph();

        resolution.PreambleParagraphs.Add(preambleParagraph);
        _context.Resolutions.Add(resolution);
        _context.SaveChanges();

        Assert.AreEqual(1, _context.Resolutions.Count());
        Assert.AreEqual(1, _context.PreambleParagraphs.Count());

        _context.Resolutions.Remove(resolution);
        _context.SaveChanges();
        Assert.AreEqual(0, _context.Resolutions.Count());
        Assert.AreEqual(0, _context.PreambleParagraphs.Count());
    }
コード例 #14
0
    public void TestRemoveResolutionDeletesOperativeParagraphs()
    {
        var resolution         = new ResaElement();
        var operativeParagraph = new ResaOperativeParagraph();

        resolution.OperativeParagraphs.Add(operativeParagraph);
        _context.Resolutions.Add(resolution);
        _context.SaveChanges();

        Assert.AreEqual(1, _context.Resolutions.Count());
        Assert.AreEqual(1, _context.OperativeParagraphs.Count());

        _context.Resolutions.Remove(resolution);
        _context.SaveChanges();
        Assert.AreEqual(0, _context.Resolutions.Count());
        Assert.AreEqual(0, _context.OperativeParagraphs.Count());
    }
コード例 #15
0
    public void TestRemovingResolutionRemovesAuth()
    {
        var resolution = new ResaElement();
        var auth       = new ResolutionAuth();

        resolution.Authorizations.Add(auth);
        _context.Resolutions.Add(resolution);
        _context.SaveChanges();
        Assert.AreEqual(1, _context.Resolutions.Count());
        Assert.AreEqual(1, _context.ResolutionAuths.Count(), "Expected to have a resolution auth, but there were none...");

        Assert.AreEqual(_context.Resolutions.First().ResaElementId, _context.ResolutionAuths.First().Resolution.ResaElementId);

        // Perform deletion
        _context.Resolutions.Remove(resolution);
        _context.SaveChanges();
        Assert.AreEqual(0, _context.Resolutions.Count());
        Assert.AreEqual(0, _context.ResolutionAuths.Count());
    }
コード例 #16
0
    public void TestRemoveParentOperativeParagraphRemovesChildren()
    {
        var resolution         = new ResaElement();
        var operativeParagraph = new ResaOperativeParagraph();
        var subParagraph       = new ResaOperativeParagraph();

        subParagraph.Resolution = resolution;
        operativeParagraph.Children.Add(subParagraph);
        resolution.OperativeParagraphs.Add(operativeParagraph);

        _context.Resolutions.Add(resolution);
        _context.SaveChanges();

        Assert.AreEqual(1, _context.Resolutions.Count());
        Assert.AreEqual(2, _context.OperativeParagraphs.Count());

        _context.OperativeParagraphs.Remove(operativeParagraph);
        _context.SaveChanges();
        Assert.AreEqual(0, _context.OperativeParagraphs.Count());
    }
コード例 #17
0
    public void TestRemoveOperativeParagraphRemovesMoveAmendments()
    {
        var resolution      = new ResaElement();
        var operativeParaph = new ResaOperativeParagraph();

        resolution.OperativeParagraphs.Add(operativeParaph);
        var moveAmendment = new ResaMoveAmendment();

        moveAmendment.SourceParagraph = operativeParaph;
        operativeParaph.MoveAmendments.Add(moveAmendment);
        _context.Resolutions.Add(resolution);
        _context.SaveChanges();

        Assert.AreEqual(1, _context.Resolutions.Count());
        Assert.AreEqual(1, _context.ResolutionMoveAmendments.Count());
        Assert.AreEqual(1, _context.OperativeParagraphs.Count());

        _context.OperativeParagraphs.Remove(operativeParaph);
        _context.SaveChanges();

        Assert.AreEqual(1, _context.Resolutions.Count());
        Assert.AreEqual(0, _context.ResolutionMoveAmendments.Count());
        Assert.AreEqual(0, _context.ResolutionDeleteAmendments.Count());
    }
コード例 #18
0
    public void TestRemoveOperativeParagraphRemovesChangeAmendment()
    {
        var resolution         = new ResaElement();
        var operativeParagraph = new ResaOperativeParagraph();

        resolution.OperativeParagraphs.Add(operativeParagraph);
        var changeAmendment = new ResaChangeAmendment();

        operativeParagraph.ChangeAmendments.Add(changeAmendment);

        _context.Resolutions.Add(resolution);
        _context.SaveChanges();

        Assert.AreEqual(1, _context.Resolutions.Count());
        Assert.AreEqual(1, _context.OperativeParagraphs.Count());
        Assert.AreEqual(1, _context.ResolutionChangeAmendments.Count());

        _context.OperativeParagraphs.Remove(operativeParagraph);
        _context.SaveChanges();

        Assert.AreEqual(1, _context.Resolutions.Count());
        Assert.AreEqual(0, _context.OperativeParagraphs.Count());
        Assert.AreEqual(0, _context.ResolutionChangeAmendments.Count());
    }
コード例 #19
0
 public void TestCanCreateInstance()
 {
     resolution = new ResaElement();
     Assert.NotNull(resolution);
 }
コード例 #20
0
 public int UpdateResaElement(ResaElement element)
 {
     _context.Update(element);
     return(_context.SaveChanges());
 }