public IHttpActionResult TaskAddHistory([FromBody] TaskAddHistory addHistory) { if (string.IsNullOrEmpty(addHistory.TaskId)) { return(BadRequest("A task id must exist")); } if (string.IsNullOrEmpty(addHistory.UserId)) { return(BadRequest("A user id must exist")); } if (string.IsNullOrEmpty(addHistory.Log)) { return(BadRequest("A log must exist")); } try { return(Ok(_dataAccess.TaskAddHistory(addHistory))); } catch (ArgumentException ex) { return(BadRequest(ex.Message)); } catch (Exception ex) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Conflict, ex.Message))); } }
public List <dynamic> TaskAddHistory(TaskAddHistory addHistory) { // get the task var taskDocument = _bucket.Get <Task>(addHistory.TaskId); if (!taskDocument.Success) { throw new ArgumentException("The task id does not exist"); } // add a new history item to it var createdAt = DateTime.Now.ToShortDateString(); var task = taskDocument.Value; task.History.Add(new History { Log = addHistory.Log, User = addHistory.UserId, CreatedAt = createdAt }); // save the task var updatedTask = new Document <Task> { Id = taskDocument.Id, Content = task }; _bucket.Upsert(updatedTask); // return var queryStr = @"SELECT ($1) AS log, (SELECT u.* FROM `" + _bucket.Name + @"` u USE KEYS c._id)[0] AS `user`, ($2) AS createdAt FROM `" + _bucket.Name + @"` c WHERE c._id = $3"; var query = QueryRequest.Create(queryStr); query.ScanConsistency(ScanConsistency.RequestPlus); query.AddPositionalParameter(addHistory.Log); query.AddPositionalParameter(createdAt); query.AddPositionalParameter(addHistory.UserId); var queryResult = _bucket.Query <dynamic>(query); return(ExtractResultOrThrow(queryResult)); }