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