public async Task <IActionResult> DeleteHours(string id, [FromBody] HoursDto hours) { ObjectId _id; if (!ObjectId.TryParse(id, out _id)) { return(BadRequest(id + " is not a valid id.")); } var date = DateTimeOffset.FromUnixTimeMilliseconds(hours.Date).ToString("dd/MM/yyyy", DateTimeFormatInfo.InvariantInfo); var filter = Builders <BsonDocument> .Filter.Eq("_id", _id); var update = Builders <BsonDocument> .Update.Unset($"Hours.{hours.Project}.{date}"); var result = await userCollection.UpdateOneAsync(filter, update); if (!result.IsAcknowledged) { return(BadRequest("Something went wrong.")); } if (result.MatchedCount == 0) { return(BadRequest("User not found.")); } if (result.ModifiedCount == 0) { return(BadRequest("Hours was not deleted.")); } return(Ok("Hours successfully deleted.")); }
public async Task <IActionResult> InsertHours(string id, [FromBody] HoursDto hours) { if (hours == null) { return(BadRequest("The body is empty.")); } ObjectId _id; if (!ObjectId.TryParse(id, out _id)) { return(BadRequest(id + " is not a valid id.")); } var bson_obj = new BsonDocument { { "Hours", hours.Hours }, { "Notes", hours.Notes == null ? "" : hours.Notes } }; var date = DateTimeOffset.FromUnixTimeMilliseconds(hours.Date).ToString("dd/MM/yyyy", DateTimeFormatInfo.InvariantInfo); var filter = Builders <BsonDocument> .Filter.Eq("_id", _id); var update = Builders <BsonDocument> .Update.Set($"Hours.{hours.Project}.{date}", bson_obj); var result = await userCollection.UpdateOneAsync(filter, update); if (!result.IsAcknowledged) { return(BadRequest("Something went wrong.")); } if (result.MatchedCount == 0) { return(BadRequest("User not found.")); } if (result.ModifiedCount == 0) { return(BadRequest("Hours have not been logged.")); } return(Ok("Hours successfully logged.")); }