public async Task <string> CreateProject(REDCapProjectRequest projectRequest) { var json = $"[{JsonConvert.SerializeObject(projectRequest, serializerSettings)}]"; var content = $"token={options.SuperToken}&content=project&format=json&data={json}"; var response = await SubmitApiCall(content); if (response.IsSuccessStatusCode) { var token = await response.Content.ReadAsStringAsync(); return(token); } logger.LogError("Failed to create REDCap project. Project:{@Project} StatusCode:{StatusCode} Reason:{Reason}", projectRequest, (int)response.StatusCode, response.ReasonPhrase); throw new ExportException((int)response.StatusCode); }
public async Task <ActionResult <string> > CreateProject([FromBody] REDCapProjectRequest project, [FromServices] IREDCapExportService exportService) { try { var token = await exportService.CreateProject(project); return(Ok(token)); } catch (ExportException ee) { return(StatusCode(ee.StatusCode)); } catch (Exception ex) { log.LogError("Failed to create REDCap project. Error:{Error}", ex.Message); return(StatusCode(StatusCodes.Status500InternalServerError)); } }