private async Task <List <ReviewTask_RA> > GetData(SqlDataReader reader)
        {
            List <ReviewTask_RA> lst = new List <ReviewTask_RA>();

            //1. try catch verhindert applicatie crash
            try
            {
                while (await reader.ReadAsync())
                {
                    ReviewTask_RA s = new ReviewTask_RA();

                    s.Id      = (Guid)reader["Id"];
                    s.Name    = !Convert.IsDBNull(reader["Name"]) ? (string)reader["Name"] : "";
                    s.Comment = !Convert.IsDBNull(reader["Comment"]) ? (string)reader["Comment"] : "";
                    s.Score   = Convert.ToInt32(reader["Score"]);
                    s.MovieId = !Convert.IsDBNull(reader["MovieId"]) ? (string)reader["MovieId"] : "";
                    s.UserId  = !Convert.IsDBNull(reader["UserId"]) ? (string)reader["UserId"] : "";
                    lst.Add(s);
                }
            }
            catch (Exception exc)
            {
                Console.Write(exc.Message); //later loggen
            }
            finally
            {
                reader.Close();  //Niet vergeten. Beperkt aantal verbindingen (of kosten)
            }
            return(lst);
        }
        public async Task <ReviewTask_RA> Add(ReviewTask_RA review)
        {
            using (SqlConnection con = new SqlConnection(connectionString))
            { //TO DO: Gender, DateOfBirth, Password
                string     SQL = "Insert into Review(Id, Name, Comment, Score, MovieId, UserId)"; SQL += " Values(@Id, @Name, @Comment, @Score, @MovieId, @UserId)";
                SqlCommand cmd = new SqlCommand(SQL, con);
                cmd.Parameters.AddWithValue("@Id", Guid.NewGuid());
                cmd.Parameters.AddWithValue("@Name", review.Name);
                cmd.Parameters.AddWithValue("@Comment", review.Comment ?? ""); //EducationId is NULLABLE! int?
                cmd.Parameters.AddWithValue("@Score", review.Score);
                cmd.Parameters.AddWithValue("@MovieId", review.MovieId);
                cmd.Parameters.AddWithValue("@UserId", review.UserId);
                con.Open();
                await cmd.ExecuteNonQueryAsync(); //enkel uitvoeren, geen reader

                con.Close();
                return(review);
            }
        }
        public async Task UpdateReview(ReviewTask_RA review)
        {
            using (SqlConnection con = new SqlConnection(connectionString))
            { //TO DO: Gender, DateOfBirth, Password
                try
                {
                    string     SQL = "UPDATE Review SET Comment = @Comment, Score = @Score WHERE UserId = @UserId AND Id = @Id";
                    SqlCommand cmd = new SqlCommand(SQL, con);
                    cmd.Parameters.AddWithValue("@Comment", review.Comment);
                    cmd.Parameters.AddWithValue("@Score", review.Score);
                    cmd.Parameters.AddWithValue("@UserId", review.UserId);
                    cmd.Parameters.AddWithValue("@Id", review.Id);
                    con.Open();
                    await cmd.ExecuteNonQueryAsync(); //enkel uitvoeren, geen reader

                    con.Close();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
 public async Task Update([FromBody] ReviewTask_RA review)
 {
     await this.dataProvider.UpdateReview(review);
 }
 public async Task Add([FromBody] ReviewTask_RA review)
 {
     await this.dataProvider.Add(review);
 }