public void Save(GoCanvasLoggingDbContext dbContext) { if (HasXMLBody) { var record = new ResponseLog() { ResponseBody = $"{this.ToString()}" }; try { MemoryStream ms = new MemoryStream(); this.Request.Body.Seek(0, SeekOrigin.Begin); this.Request.Body.CopyTo(ms); ms.Seek(0, SeekOrigin.Begin); var xmlSerializer = new XmlSerializer(typeof(SubmissionNotification)); SubmissionNotification submission_notification = (SubmissionNotification)xmlSerializer.Deserialize(ms); } catch (Exception e) { record.ResponseType = 1; } try { dbContext.ResponseLogs.Add(record); dbContext.SaveChanges(); } catch (Exception e) { using (dbContext.Database.BeginTransaction(IsolationLevel.Unspecified)) { dbContext.Database.ExecuteSqlRaw($"INSERT INTO [tblResponseLog]([ResponseBody])VALUES('ResponseBody Logger FAILED::{e}|{this.ToString()}');"); } try { using (dbContext.Database.BeginTransaction(IsolationLevel.Unspecified)) { dbContext.Database.ExecuteSqlRaw($"INSERT INTO [tblResponseLog]([ResponseBody])VALUES('{this.ToString()}');"); } } catch (Exception exception) { using (dbContext.Database.BeginTransaction(IsolationLevel.Unspecified)) { dbContext.Database.ExecuteSqlRaw($"INSERT INTO [tblResponseLog]([ResponseBody])VALUES('ResponseBody Logger FAILED::{e}|{this.ToString()}');"); } } } } }
public async Task <IActionResult> New() { try { MemoryStream ms = new MemoryStream(); this.Request.Body.Seek(0, SeekOrigin.Begin); await this.Request.Body.CopyToAsync(ms); //await this.ControllerContext.HttpContext.Request.BodyReader.CopyToAsync(ms); ms.Seek(0, SeekOrigin.Begin); var xmlSerializer = new XmlSerializer(typeof(SubmissionNotification)); SubmissionNotification submission_notification = (SubmissionNotification)xmlSerializer.Deserialize(ms); Log($"Submission XML: {submission_notification.ToString()}"); submission_notification.Save(dbContext); return(Ok()); } catch (Exception e) { return(Ok()); } }