Пример #1
0
        public async Task <ActionResult <ReferralPrintRequestResponse> > ProcessSupports(string fileId, ProcessDigitalSupportsRequest request)
        {
            var noDeliveryMethod = request.Supports.Where(s => s.Method == SupportMethod.Unknown).ToArray();

            if (noDeliveryMethod.Any())
            {
                return(BadRequest(new ProblemDetails
                {
                    Status = (int)HttpStatusCode.BadRequest,
                    Title = "Some supports delivery methods are not defined",
                    Detail = string.Join(',', noDeliveryMethod.Select(r => $"{r.Category}-{r.SubCategory}"))
                }));
            }

            var userId         = currentUserId;
            var mappedSupports = mapper.Map <IEnumerable <EMBC.ESS.Shared.Contracts.Events.Support> >(request.Supports);

            foreach (var support in mappedSupports)
            {
                support.CreatedBy = new EMBC.ESS.Shared.Contracts.Events.TeamMember {
                    Id = userId
                };
                support.IssuedBy = new EMBC.ESS.Shared.Contracts.Events.TeamMember {
                    Id = userId
                };
                support.CreatedOn = DateTime.UtcNow;
                support.IssuedOn  = support.CreatedOn;
            }
            var printRequestId = await messagingClient.Send(new ProcessSupportsCommand
            {
                FileId           = fileId,
                Supports         = mappedSupports,
                RequestingUserId = userId,
                IncludeSummaryInReferralsPrintout = request.IncludeSummaryInPrintRequest
            });

            return(Ok(new ReferralPrintRequestResponse {
                PrintRequestId = printRequestId
            }));
        }
        public async Task <ActionResult <ReferralPrintRequestResponse> > ProcessSupports(string fileId, ProcessDigitalSupportsRequest request)
        {
            var userId         = currentUserId;
            var mappedSupports = mapper.Map <IEnumerable <EMBC.ESS.Shared.Contracts.Events.Support> >(request.Supports);

            foreach (var support in mappedSupports)
            {
                support.CreatedBy = new EMBC.ESS.Shared.Contracts.Events.TeamMember {
                    Id = userId
                };
                support.IssuedBy = new EMBC.ESS.Shared.Contracts.Events.TeamMember {
                    Id = userId
                };
                support.CreatedOn = DateTime.UtcNow;
                support.IssuedOn  = support.CreatedOn;
            }
            var printRequestId = await messagingClient.Send(new ProcessSupportsCommand
            {
                FileId           = fileId,
                Supports         = mappedSupports,
                RequestingUserId = userId,
                IncludeSummaryInReferralsPrintout = request.IncludeSummaryInPrintRequest
            });

            return(Ok(new ReferralPrintRequestResponse {
                PrintRequestId = printRequestId
            }));
        }