creazione primi repository e interfacce

This commit is contained in:
Riccardo Usardi committed 2025-07-04 19:12:25 +02:00
1 parent b7983dae8e
commit 0a6744e8b0
19 files changed
+644 -39

No files matched your search

@@ -0,0 +1,88 @@
using Microsoft.Extensions.Configuration;
using MySqlConnector;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using uWine.Core.Domain.Entities;
using uWine.Core.Domain.Repositories;
namespace uWine.Core.Infrastructure.Repository
{
public class MariaDbContactRepository : MariaDbServerRepository, IContactRepository
{
public MariaDbContactRepository(IConfiguration configuration) : base(configuration)
{
}
public void InsertOwnerContact(Contact contact, int ownerId)
{
using (var connection = Connection())
{
connection.Open();
var cmd = new MySqlCommand("sp_insert_owner_contact", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@OwnerId", ownerId);
cmd.Parameters.AddWithValue("@ContactTypeId", contact.ContactType.Id);
cmd.Parameters.AddWithValue("@Contact", contact.Value);
cmd.Parameters.AddWithValue("@Priority", contact.Priority);
cmd.Parameters.AddWithValue("@Note", contact.Notes);
}
}
public ContactType GetContactType(int contactTypeId)
{
using (var connection = Connection())
{
connection.Open();
var cmd = new MySqlCommand("SELECT * FROM t_contact_type WHERE id = @id", connection);
cmd.Parameters.AddWithValue("@id", contactTypeId);
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
{
return ContactType.FromRecord(reader);
}
}
}
return new ContactType();
}
public void InsertContactType(ContactType contactType)
{
using (var connection = Connection())
{
connection.Open();
using var cmd = new MySqlCommand("INSERT INTO t_contact_types(type, description) VALUES (@type, @description)", connection);
cmd.Parameters.AddWithValue("@type", contactType.Type);
cmd.Parameters.AddWithValue("@description", contactType.Description);
cmd.ExecuteNonQuery();
}
}
public List<Contact> OwnerContacts(int ownerId)
{
var contacts = new List<Contact>();
using (var connection = Connection())
{
connection.Open();
using var cmd = new MySqlCommand("sp_get_owner_contacts", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@OwnerId", ownerId);
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
var contact = Contact.FromRecord(reader);
contact.ContactType = GetContactType(reader.GetInt32("contact_type_id"));
contacts.Add(contact);
}
}
return contacts;
}
}
}
}