private rscd_Establishment GetOrCreateEstablishment(CheckingWindow checkingWindow, string id)
        {
            using (var context = new CrmServiceContext(_organizationService))
            {
                var establishmentDto =
                    context.rscd_EstablishmentSet.SingleOrDefault(
                        e => e.rscd_URN == id);
                if (establishmentDto == null)
                {
                    establishmentDto =
                        context.rscd_EstablishmentSet.SingleOrDefault(
                            e => e.rscd_LAEstab == id);
                }

                if (establishmentDto != null)
                {
                    return(establishmentDto);
                }

                School establishment = null;
                try
                {
                    establishment = _establishmentService.GetByURN(checkingWindow, new URN(id));
                }
                catch
                {
                }

                if (establishment == null)
                {
                    establishment = _establishmentService.GetByDFESNumber(checkingWindow, id);
                }

                if (establishment == null)
                {
                    return(null);
                }


                establishmentDto = new rscd_Establishment()
                {
                    rscd_Name               = establishment.SchoolName,
                    rscd_URN                = establishment.Urn.Value,
                    rscd_LAEstab            = establishment.DfesNumber.ToString(),
                    rscd_Schooltype         = establishment.SchoolType,
                    rscd_NumberofAmendments = 0
                };
                context.AddObject(establishmentDto);
                var result = context.SaveChanges();
                if (result.HasError)
                {
                    throw result.FirstOrDefault(e => e.Error != null)?.Error ?? new ApplicationException();
                }

                return(establishmentDto);
            }
        }
        public IActionResult Get(
            [FromRoute][SwaggerParameter("The URN of the school requesting amendments", Required = true)]
            string urn,
            [FromRoute][SwaggerParameter("The checking window to request amendments from", Required = true)]
            CheckingWindow checkingWindow)
        {
            var urnValue          = new URN(urn);
            var establishmentData = _establishmentService.GetByURN(checkingWindow, urnValue);
            var response          = new GetResponse <School>
            {
                Result = establishmentData,
                Error  = new Error()
            };

            return(Ok(response));
        }