SUBD/ConsoleApp1/Implements.cs

265 lines
7.5 KiB
C#
Raw Normal View History

using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Database
{
public class Implements : Abstracts
{
private NpgsqlConnection GetConnect()
{
return new NpgsqlConnection("Host=192.168.56.100;Username=postgres;Password=postgres;Database=calendar");
}
public override void CreateUser(User user)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand("INSERT INTO users (name, email, birthday) " +
"VALUES (@Name, @Email, @Birthday)", conn);
cmd.Parameters.AddWithValue("@Name", user.name);
cmd.Parameters.AddWithValue("@Email", user.email);
cmd.Parameters.AddWithValue("@Birthday", user.birthday);
cmd.ExecuteNonQuery();
}
public override void UpdateUser(User user)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"UPDATE users SET name = {user.name}, email = {user.email}, birthday = {user.birthday} WHERE id = {user.Id}", conn);
cmd.ExecuteNonQuery();
}
public override void DeleteUser(int id) {
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM users WHERE id = {id}", conn);
cmd.ExecuteNonQuery();
}
public override User GetUser(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM users WHERE id = {id}", conn);
using var reader = cmd.ExecuteReader();
if (reader.Read())
{
return new User
{
Id = reader.GetInt32(0),
name = reader.GetString(1),
email = reader.GetString(2),
birthday = reader.GetDateTime(3),
};
}
return null;
}
public override List<User> GetUsers()
{
List<User> users = new List<User>();
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand("SELECT * FROM users");
using var reader = cmd.ExecuteReader();
while (reader.Read())
{
users.Add(new User
{
Id = reader.GetInt32(0),
name = reader.GetString(1),
email = reader.GetString(2),
birthday = reader.GetDateTime(3),
});
}
return users;
}
public override void CreateType(Type type)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"INSERT INTO types (title) VALUES ({type.title})", conn);
cmd.ExecuteNonQuery();
}
public override void DeleteType(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM types WHERE id = {id}", conn);
cmd.ExecuteNonQuery();
}
public override void UpdateType(Type type)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"UPDATE types SET title = {type.title} WHERE id = {type.Id}", conn);
cmd.ExecuteNonQuery();
}
public override Type GetType(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM types WHERE id = {id}", conn);
using var reader = cmd.ExecuteReader();
if (reader.Read())
{
return new Type
{
Id = reader.GetInt32(0),
title = reader.GetString(1)
};
}
return null;
}
public override List<Type> GetTypes()
{
List<Type> types = new List<Type>();
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM types", conn);
using var reader = cmd.ExecuteReader();
while (reader.Read())
{
types.Add(new Type { Id = reader.GetInt32(0), title = reader.GetString(1) });
}
return types;
}
public override void CreateData(Data data)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"INSERT INTO date (datetime, userid, typeid) VALUES ({data.dateTime}, {data.userId}, {data.typeId})", conn);
cmd.ExecuteNonQuery();
}
public override void DeleteData(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM date WHERE id = {id}", conn);
cmd.ExecuteNonQuery();
}
public override void UpdateData(Data data)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"UPDATE date SET datetime = {data.dateTime}, userid = {data.userId}, typeid = {data.typeId} WHERE id = {data.Id}", conn);
cmd.ExecuteNonQuery();
}
public override Data GetData(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM date WHERE id = {id}", conn);
using var reader = cmd.ExecuteReader();
if (reader.Read())
{
return new Data
{
Id = reader.GetInt32(0),
dateTime = reader.GetDateTime(1),
userId = reader.GetInt32(2),
typeId = reader.GetInt32(3)
};
}
return null;
}
public override List<Data> GetDatas()
{
List<Data> list = new List<Data>();
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM date", conn);
using var reader = cmd.ExecuteReader();
while (reader.Read())
{
list.Add( new Data
{
Id = reader.GetInt32(0),
dateTime = reader.GetDateTime(1),
userId = reader.GetInt32(2),
typeId = reader.GetInt32(3)
});
}
return list;
}
public override void CreateDescription(Description description)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"INSERT INTO date (id, title, description, place) VALUES ({description.Id}, {description.title}, {description.descript}, {description.place})", conn);
cmd.ExecuteNonQuery();
}
public override void UpdateDescription(Description description)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"UPDATE date SET title = {description.title}, description = {description.descript}, place = {description.place} WHERE id = {description.Id}", conn);
cmd.ExecuteNonQuery();
}
public override void DeleteDescription(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM description WHERE id = {id}", conn);
cmd.ExecuteNonQuery();
}
public override Description GetDescription(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM description WHERE id = {id}", conn);
using var reader = cmd.ExecuteReader();
if (reader.Read())
{
return new Description
{
Id = reader.GetInt32(0),
title = reader.GetString(1),
descript = reader.GetString(2),
place = reader.GetString(3)
};
}
return null;
}
public override void CreateInvite(Invited invited)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"INSERT INTO invited (userId, dateId) VALUES ({invited.userId}, {invited.typeId})", conn);
cmd.ExecuteNonQuery();
}
public override void DeleteInvite(int userId, int typeId)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM invited WHERE userid = {userId}, typeid = {typeId})", conn);
cmd.ExecuteNonQuery();
}
public override List<Invited> GetInvited(int id)
{
List<Invited> list = new();
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM invited WHERE dateid = {id}", conn);
using var reader = cmd.ExecuteReader();
while (reader.Read())
{
list.Add(new Invited
{
userId = reader.GetInt32(0),
typeId = reader.GetInt32(1),
});
}
return list;
}
}
}