コード例 #1
0
ファイル: REDCapExportService.cs プロジェクト: jibrel/leaf
        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);
        }
コード例 #2
0
        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));
            }
        }