creazione primi repository e interfacce
This commit is contained in:
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user