public async Task <int> Add(Homework newHomework) { if (newHomework is null) { throw new ArgumentNullException(nameof(newHomework)); } var newHomeworkEntity = new Entities.Homework { Title = newHomework.Title, Description = newHomework.Description, Link = newHomework.Link.ToString() }; using (var connection = new SqlConnection(_connectionString)) { await connection.OpenAsync(); var command = new SqlCommand(@" INSERT INTO Homeworks (Title, [Description], Link, CreatedDate, UpdatedDate) VALUES (@Title, @Description, @Link, @CreatedDate, @UpdatedDate ); SET @Id = scope_identity();" , connection); command.Parameters.AddWithValue("@Title", newHomeworkEntity.Title); command.Parameters.AddWithValue("@Description", newHomeworkEntity.Description); command.Parameters.AddWithValue("@Link", newHomeworkEntity.Link); command.Parameters.AddWithValue("@CreatedDate", newHomeworkEntity.CreatedDate); command.Parameters.AddWithValue("@UpdatedDate", newHomeworkEntity.UpdatedDate); var resultParameter = new SqlParameter { Direction = System.Data.ParameterDirection.Output, SqlDbType = System.Data.SqlDbType.Int, ParameterName = "@Id" }; command.Parameters.Add(resultParameter); await command.ExecuteNonQueryAsync(); if (command.Parameters["@Id"].Value is int homeworkId) { return(homeworkId); } else { throw new InvalidOperationException($"value id cannot be converted: {command.Parameters["@Id"].Value}"); } } }
public async Task Update(Homework homework) { if (homework is null) { throw new ArgumentNullException(nameof(homework)); } var updatedHomeworkEntity = new Entities.Homework { Id = homework.Id, Title = homework.Title, Description = homework.Description, Link = homework.Link.ToString() }; using (var connection = new SqlConnection(_connectionString)) { await connection.OpenAsync(); var command = new SqlCommand(@" UPDATE Homeworks SET Title = @Title, [Description] = @Description, Link = @Link, UpdatedDate = @UpdatedDate WHERE Id = @Id" , connection); command.Parameters.AddWithValue("@Id", updatedHomeworkEntity.Id); command.Parameters.AddWithValue("@Title", updatedHomeworkEntity.Title); command.Parameters.AddWithValue("@Description", updatedHomeworkEntity.Description); command.Parameters.AddWithValue("@Link", updatedHomeworkEntity.Link); command.Parameters.AddWithValue("@UpdatedDate", updatedHomeworkEntity.UpdatedDate); await command.ExecuteNonQueryAsync(); } }