コード例 #1
0
        public async Task <PortfolioChangeRequests> UpdatePortfolioChangeRequests(PortfolioChangeRequests portfolioChangeRequest, bool auditLog)
        {
            PortfolioChangeRequests _portfolioChangeRequest = await _context.PortfolioChangeRequests
                                                              .Where(p => p.PortfolioChangeRequestId.Equals(portfolioChangeRequest.PortfolioChangeRequestId)).FirstOrDefaultAsync();

            if (_portfolioChangeRequest != null)
            {
                _portfolioChangeRequest.FinalValue = portfolioChangeRequest.FinalValue;
                _portfolioChangeRequest.Status     = ChangeRequestsKindApp.UpdateCompleted;

                PortfolioChangeRequests _savedRequest = _context.PortfolioChangeRequests.Update(_portfolioChangeRequest).Entity;
                await _context.SaveChangesAsync();

                if (auditLog)
                {
                    await _auditClient.WriteLogEntry(AuditLogEntryAction.Update, AuditLogEntryStatus.Success, "portfolio", portfolioChangeRequest.ApplicationNumber.ToString(), "Portfolio has been updated", _savedRequest);
                }

                return(_savedRequest);
            }
            else
            {
                return(null);
            }
        }
コード例 #2
0
        public async Task <CommandStatus> Handle(ChangePortfolioCommand request, CancellationToken cancellationToken)
        {
            var application = await this._applicationRepository.GetAsync(request.ApplicationNumber);

            if (application == null)
            {
                return(new CommandStatus {
                    CommandResult = StandardCommandResult.NOT_FOUND
                });
            }
            PortfolioChangeRequests portfolioChangeRequest = new PortfolioChangeRequests
            {
                ApplicationId      = application.ApplicationId,
                ChangeRequestTime  = DateTime.UtcNow,
                InitialValue       = application.OrganizationUnitCode,
                RequestedValue     = request.RequestedValue,
                RequestDescription = request.RequestDescription,
                Status             = ChangeRequestsKindApp.Update
            };
            var result = await _changePortfolioRepository.PostPortfolioChangeRequests(portfolioChangeRequest, request.AuditLog);

            var msgBuilder = _messageEventFactory.CreateBuilder("offer", "application-portfolio-change-requested")
                             .AddHeaderProperty("application-number", request.ApplicationNumber.GetApplicationNumber())
                             .AddBodyProperty("change-request-id", result.PortfolioChangeRequestId);

            _logger.LogInformation("Sennding message {BrokerMessageName} event to broker on topic {BrokerTopicName} for application: {ApplicationNumber}", "application-portfolio-change-requested", "offer", request.ApplicationNumber);

            _eventBus.Publish(msgBuilder.Build());
            return(new CommandStatus {
                CommandResult = StandardCommandResult.OK
            });
        }
コード例 #3
0
        public async Task <PortfolioChangeRequests> PostPortfolioChangeRequests(PortfolioChangeRequests portfolioChangeRequest, bool auditLog)
        {
            try
            {
                PortfolioChangeRequests _savedRequest = _context.PortfolioChangeRequests.Add(portfolioChangeRequest).Entity;
                await _context.SaveChangesAsync();

                if (auditLog)
                {
                    await _auditClient.WriteLogEntry(AuditLogEntryAction.Add, AuditLogEntryStatus.Success, "portfolio", portfolioChangeRequest.ApplicationNumber.ToString(), "Portfolio added", _savedRequest);
                }
                return(_savedRequest);
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #4
0
        public async Task <CommandStatus> Handle(ChangePortfolioAcceptCommand request, CancellationToken cancellationToken)
        {
            var application = await this._applicationRepository.GetAsync(request.ApplicationNumber);

            if (application == null)
            {
                return(new CommandStatus {
                    CommandResult = StandardCommandResult.NOT_FOUND
                });
            }

            PortfolioChangeRequests postPortfolioChangeRequest = new PortfolioChangeRequests
            {
                PortfolioChangeRequestId = request.PortfolioChangeRequestId,
                ApplicationId            = application.ApplicationId,
                FinalValue = request.FinalValue
            };
            var result = await _changePortfolioRepository.UpdatePortfolioChangeRequests(postPortfolioChangeRequest, request.AuditLog);

            return(new CommandStatus {
                CommandResult = StandardCommandResult.OK
            });
        }
コード例 #5
0
        public async Task <PortfolioChangeRequests> GetRequest(long applicationNumber, long portfolioChangeRequestId)
        {
            try
            {
                PortfolioChangeRequests portfolioChangeRequests = await _context.PortfolioChangeRequests.
                                                                  Where(p => p.PortfolioChangeRequestId.Equals(portfolioChangeRequestId) &&
                                                                        p.ApplicationId.Equals(applicationNumber)).FirstOrDefaultAsync();

                if (portfolioChangeRequests != null)
                {
                    await _auditClient.WriteLogEntry(AuditLogEntryAction.Get, AuditLogEntryStatus.Success, "portfolio", applicationNumber.ToString(), "Portfolio change request", portfolioChangeRequests);

                    return(portfolioChangeRequests);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception)
            {
                return(null);
            }
        }