118 lines
5.6 KiB
C#
118 lines
5.6 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using MySqlConnector;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
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 MariadbOwnerRepository : MariaDbServerRepository, IOwnerRepository
|
|
{
|
|
public MariadbOwnerRepository(IConfiguration configuration) : base(configuration)
|
|
{
|
|
|
|
}
|
|
|
|
public void Insert(Owner owner)
|
|
{
|
|
using (var connection = Connection())
|
|
{
|
|
connection.Open();
|
|
var cmd = new MySqlCommand($@"INSERT INTO t_owners (
|
|
first_name,
|
|
last_name,
|
|
company_name,
|
|
note
|
|
) VALUES (
|
|
@firstName,
|
|
@lastName,
|
|
@companyName,
|
|
@note )", connection);
|
|
cmd.Parameters.AddWithValue("@firstName", owner.Name);
|
|
cmd.Parameters.AddWithValue("@lastName", owner.Surname);
|
|
cmd.Parameters.AddWithValue("@companyName", owner.CompanyName);
|
|
cmd.Parameters.AddWithValue("@note", owner.Note);
|
|
cmd.ExecuteNonQuery();
|
|
}
|
|
}
|
|
|
|
public void AddAddress(int ownerId, Address address)
|
|
{
|
|
using (var connection = Connection())
|
|
{
|
|
connection.Open();
|
|
using var cmd = new MySqlCommand($@"INSERT INTO t_addresses (
|
|
owner_id,
|
|
country,
|
|
postal_code,
|
|
county,
|
|
province,
|
|
city,
|
|
street,
|
|
house_number,
|
|
latitude,
|
|
longitude,
|
|
active
|
|
) VALUES (
|
|
@ownerId,
|
|
@country,
|
|
@postal_code,
|
|
@county,
|
|
@province,
|
|
@city,
|
|
@street,
|
|
@house_number,
|
|
@latitude,
|
|
@longitude,
|
|
@active ); LAST_INSERT_ID();", connection);
|
|
cmd.Parameters.AddWithValue("@ownerId", ownerId);
|
|
cmd.Parameters.AddWithValue("@country", address.Country);
|
|
cmd.Parameters.AddWithValue("@postal_code", address.PostalCode);
|
|
cmd.Parameters.AddWithValue("@county", address.County);
|
|
cmd.Parameters.AddWithValue("@province", address.Province);
|
|
cmd.Parameters.AddWithValue("@city", address.City);
|
|
cmd.Parameters.AddWithValue("@street", address.Street);
|
|
cmd.Parameters.AddWithValue("@house_number", address.HouseNumber);
|
|
cmd.Parameters.AddWithValue("@latitude", address.Latitude);
|
|
cmd.Parameters.AddWithValue("@longitude", address.Longitude);
|
|
cmd.Parameters.AddWithValue("@active", address.Active ? 1 : 0);
|
|
using (var reader = cmd.ExecuteReader())
|
|
{
|
|
if (reader.Read())
|
|
{
|
|
address.Id = reader.GetInt32(0);
|
|
}
|
|
}
|
|
|
|
using var cmd2 = new MySqlCommand("INSERT INTO t_owners_addresses (owner_id, address_id) VALUES (@ownerId, @addressId)", connection);
|
|
cmd2.Parameters.AddWithValue("@ownerId", ownerId);
|
|
cmd2.Parameters.AddWithValue("@addressId", address.Id);
|
|
cmd2.ExecuteNonQuery();
|
|
}
|
|
}
|
|
|
|
public Owner Simple(int ownerId)
|
|
{
|
|
using (var connection = Connection())
|
|
{
|
|
connection.Open();
|
|
using var cmd = new MySqlCommand("SELECT * FROM t_owners WHERE id = @id", connection);
|
|
cmd.Parameters.AddWithValue("@id", ownerId);
|
|
using (var reader = cmd.ExecuteReader())
|
|
{
|
|
if (reader.Read())
|
|
{
|
|
var owner = Owner.FromRecord(reader);
|
|
}
|
|
}
|
|
|
|
}
|
|
return new Owner();
|
|
}
|
|
}
|
|
}
|