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."));
        }