public async Task <ActionResult <OrderSummaryModel> > GetOrderSummaryAsync(string orderId) { var order = await _orderRepository.GetOrderByIdAsync(orderId); if (order is null) { return(NotFound()); } var primaryOrganisationId = User.GetPrimaryOrganisationId(); if (primaryOrganisationId != order.OrganisationId) { return(Forbid()); } int serviceRecipientsCount = await _serviceRecipientRepository.GetCountByOrderIdAsync(orderId); OrderSummaryModel orderSummaryModel = new OrderSummaryModel { OrderId = orderId, OrganisationId = order.OrganisationId, Description = order.Description.Value, Sections = new List <SectionModel> { SectionModel.Description, SectionModel.OrderingParty.WithStatus(order.IsOrderingPartySectionComplete() ? "complete" : "incomplete"), SectionModel.Supplier.WithStatus(order.IsSupplierSectionComplete() ? "complete" : "incomplete"), SectionModel.CommencementDate.WithStatus(order.IsCommencementDateSectionComplete() ? "complete" : "incomplete"), SectionModel.AssociatedServices, SectionModel .ServiceRecipients .WithStatus(order.IsServiceRecipientsSectionComplete() ? "complete" : "incomplete") .WithCount(serviceRecipientsCount), SectionModel.CatalogueSolutions.WithStatus(order.IsCatalogueSolutionsSectionComplete() ? "complete" : "incomplete"), SectionModel.AdditionalServices, SectionModel.FundingSource } }; return(Ok(orderSummaryModel)); }