89 lines
3.2 KiB
C#
89 lines
3.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|