265 lines
7.5 KiB
C#
265 lines
7.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|