/// <summary> /// Update an User with Patch Document /// </summary> /// <param name="patchMovie">Patch document</param> /// <param name="idMovie">id Movie</param> /// <param name="idUser">id User</param> /// <returns>Result</returns> public async Task <BLResult <Movie> > PatchMovie(JsonPatchDocument <Movie> patchMovie, int idMovie, int idUser) { DBResult <Movie> dbResult; DBResult <AuditMovieLog> dbResultAudit; BLResult <Movie> result = new BLResult <Movie>(); // Validating input data if (patchMovie == null) { result.Message = "Invalid data"; return(result); } // Validating allowed operations var op = patchMovie.Operations.Where(o => o.path.Equals("/Image") || o.path.Equals("/LikesCounter")).Count(); if (op > 0) { result.Message = "Patch operation not allowed"; return(result); } // Patchin user dbResult = await movieDataAccess.PatchMovie(patchMovie, idMovie); if (dbResult.Success) { result.Success = true; result.Item = dbResult.Item; // Adding Audit Log dbResultAudit = movieDataAccess.AddAuditLog(dbResult.Item, idUser); if (!dbResult.Success) { // Only return message result.Message = dbResultAudit.Message; } } else { result.Message = dbResult.Message; } return(result); }