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));
        }