public async Task <IHttpActionResult> Put(int sessionId, [FromBody] dtoCM.Session dtoItem) { try { if (!base.OnActionExecuting(out HttpStatusCode httpStatusCode, out string message)) { return(Content(httpStatusCode, message)); } if (dtoItem == null) { return(BadRequest()); } dtoItem.SessionId = sessionId; var updatedDBItem = _factory.Create(dtoItem); // map RunCustomLogicBeforeUpdatePut(ref updatedDBItem, sessionId); var result = await Repo.UpdateAsync(updatedDBItem); RunCustomLogicAfterUpdatePut(ref updatedDBItem, ref result); if (result.Status == cghEnums.RepositoryActionStatus.Updated) { // map to dto var updatedDTOItem = _factory.Create(result.Entity); return(Ok(updatedDTOItem)); } else if (result.Status == cghEnums.RepositoryActionStatus.NotFound) { return(NotFound()); } Warn("Unable to update object via Web API", LogMessageType.Instance.Warn_WebApi, result.Exception, httpResponseStatusCode: 400, url: Request.RequestUri.ToString()); return(BadRequest()); } catch (Exception ex) { Error(message: ex.Message, logMessageType: LogMessageType.Instance.Exception_WebApi, ex: ex); if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } return(InternalServerError()); } }
public async Task <IHttpActionResult> Post([FromBody] dtoCM.Session dtoItem) { try { if (!base.OnActionExecuting(out HttpStatusCode httpStatusCode, out string message)) { return(Content(httpStatusCode, message)); } if (dtoItem == null) { return(BadRequest()); } // try mapping & saving var newDBItem = _factory.Create(dtoItem); var result = await Repo.InsertAsync(newDBItem); RunCustomLogicAfterInsert(ref newDBItem, ref result); if (result.Status == cghEnums.RepositoryActionStatus.Created) { // map to dto var newDTOItem = _factory.Create(result.Entity); var uriFormatted = Request.RequestUri.ToString().EndsWith("/") == true?Request.RequestUri.ToString().Substring(0, Request.RequestUri.ToString().Length - 1) : Request.RequestUri.ToString(); return(Created($"{uriFormatted}/{newDTOItem.SessionId}", newDTOItem)); } Warn("Unable to create object via Web API", LogMessageType.Instance.Warn_WebApi, result.Exception, httpResponseStatusCode: 400, url: Request.RequestUri.ToString()); return(BadRequest()); } catch (Exception ex) { Error(message: ex.Message, logMessageType: LogMessageType.Instance.Exception_WebApi, ex: ex); if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } return(InternalServerError()); } }
public Session(ILoggingService log, IDataService <IWebApiDataServiceCM> dataService, xDTO.Session dto) : this(log, dataService) { _dto = dto; }
public Session(ILoggingService log, IDataService <IWebApiDataServiceCM> dataService) : base(log, dataService) { _dto = new xDTO.Session(); OnLazyLoadRequest += HandleLazyLoadRequest; }