示例#1
0
        public void ActivateAmendment(ResaAmendment amendment, bool active = true)
        {
            var scope             = serviceScopeFactory.CreateScope();
            var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();

            resolutionService.ActivateAmendment(amendment, active);
            if (amendment is ResaDeleteAmendment delAmendment)
            {
                OperativeParagraphChanged?.Invoke(this, delAmendment.TargetParagraph);
            }
            else if (amendment is ResaChangeAmendment changeAmendment)
            {
                OperativeParagraphChanged?.Invoke(this, changeAmendment.TargetParagraph);
            }
            else if (amendment is ResaMoveAmendment moveAmendment)
            {
                OperativeParagraphChanged?.Invoke(this, moveAmendment.SourceParagraph);
                OperativeParagraphChanged?.Invoke(this, moveAmendment.VirtualParagraph);
                ResolutionChanged?.Invoke(this, Resolution);
            }
            else if (amendment is ResaAddAmendment addAmendment)
            {
                ResolutionChanged?.Invoke(this, Resolution);
                OperativeParagraphChanged?.Invoke(this, addAmendment.VirtualParagraph);
            }
        }
示例#2
0
        public void SubmitAmendment(ResaAmendment amendment)
        {
            if (amendment is ResaDeleteAmendment deleteAmendment)
            {
                var resolution = amendment.Resolution;

                var scope             = serviceScopeFactory.CreateScope();
                var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();
                resolutionService.SubmitDeleteAmendment(deleteAmendment);

                ResolutionChanged?.Invoke(this, resolution);
            }
            else if (amendment is ResaChangeAmendment changeAmendment)
            {
                var scope             = serviceScopeFactory.CreateScope();
                var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();
                resolutionService.SubmitChangeAmendment(changeAmendment);
                OperativeParagraphChanged?.Invoke(this, changeAmendment.TargetParagraph);
            }
            else if (amendment is ResaMoveAmendment moveAmendment)
            {
                var scope             = serviceScopeFactory.CreateScope();
                var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();
                resolutionService.SubmitMoveAmendment(moveAmendment);
                ResolutionChanged?.Invoke(this, Resolution);
            }
            else if (amendment is ResaAddAmendment addAmendment)
            {
                var scope             = serviceScopeFactory.CreateScope();
                var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();
                resolutionService.SubmitAddAmendment(addAmendment);
                ResolutionChanged?.Invoke(this, Resolution);
            }
        }
示例#3
0
        public void UpdateOperativeParagraph(ResaOperativeParagraph paragraph)
        {
            using var scope = serviceScopeFactory.CreateScope();
            var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();

            resolutionService.UpdateOperativeParagraph(paragraph);
            OperativeParagraphChanged?.Invoke(this, paragraph);
        }
示例#4
0
        public void RevokeChangeAmendment(ResaChangeAmendment amendment)
        {
            using var scope = serviceScopeFactory.CreateScope();
            var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();

            resolutionService.RevokeChangeAmendment(amendment);

            OperativeParagraphChanged?.Invoke(this, amendment.TargetParagraph);
        }
示例#5
0
        public void AddChangeAmendment(ResaOperativeParagraph paragraph, int roleId, string newText)
        {
            using var scope = serviceScopeFactory.CreateScope();
            var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();

            resolutionService.AddChangeAmendment(paragraph, roleId, newText);

            OperativeParagraphChanged?.Invoke(this, paragraph);
        }
示例#6
0
 private void NotifyOnAmendentChange(ResaAmendment amendment)
 {
     if (amendment is ResaDeleteAmendment delete)
     {
         OperativeParagraphChanged?.Invoke(this, delete.TargetParagraph);
     }
     else if (amendment is ResaChangeAmendment change)
     {
         OperativeParagraphChanged?.Invoke(this, change.TargetParagraph);
     }
     else if (amendment is ResaMoveAmendment move)
     {
         OperativeParagraphChanged?.Invoke(this, move.SourceParagraph);
     }
 }
示例#7
0
        public void MoveOperativeParagraphUp(ResaOperativeParagraph paragraph)
        {
            // Make update in database
            using var scope = serviceScopeFactory.CreateScope();
            var resolutionService = scope.ServiceProvider.GetRequiredService <ResolutionService>();

            resolutionService.MoveOperativeParagraphUp(paragraph);

            // Make update in exchange
            if (paragraph.Parent == null)
            {
                var oldIndex = this.Resolution.OperativeParagraphs.IndexOf(paragraph);
                this.Resolution.OperativeParagraphs.Swap(oldIndex, oldIndex - 1);
                OperativeParagraphChanged?.Invoke(this, paragraph);
                ResolutionChanged?.Invoke(this, Resolution);
            }
            else
            {
                var oldIndex = paragraph.Parent.Children.IndexOf(paragraph);
                paragraph.Parent.Children.Swap(oldIndex, oldIndex - 1);
                OperativeParagraphChanged?.Invoke(this, paragraph);
                ResolutionChanged?.Invoke(this, Resolution);
            }
        }