SUBD/Database/Implements.cs

388 lines
11 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.101;Username=postgres;Password=postgres;Database=calendar");
}
public override bool 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();
return true;
}
public override bool UpdateUser(User user)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"UPDATE users SET name = @Name, email = @Email, birthday = @Birthday WHERE id = @Id", conn);
cmd.Parameters.AddWithValue("@Name", user.name);
cmd.Parameters.AddWithValue("@Email", user.email);
cmd.Parameters.AddWithValue("@Birthday", user.birthday);
cmd.Parameters.AddWithValue("@Id", user.Id);
cmd.ExecuteNonQuery();
return true;
}
public override bool DeleteUser(int id) {
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM users WHERE id = @Id", conn);
cmd.Parameters.AddWithValue("@Id", id);
cmd.ExecuteNonQuery();
return true;
}
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 User GetUser(string name)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM users WHERE name = '{name}'", 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", conn);
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 bool CreateType(Type type)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"INSERT INTO type (title) VALUES ('{type.title}')", conn);
cmd.ExecuteNonQuery();
return true;
}
public override bool DeleteType(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM type WHERE id = {id}", conn);
cmd.ExecuteNonQuery();
return true;
}
public override bool UpdateType(Type type)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"UPDATE type SET title = '{type.title}' WHERE id = {type.Id}", conn);
cmd.ExecuteNonQuery();
return true;
}
public override Type GetType(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM type 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 Type GetType(string title)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM type WHERE title = '{title}'", 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 type", 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 bool CreateData(Data data)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"INSERT INTO date (datetime, userid, typeid) VALUES (@Date, @User, @Type)", conn);
cmd.Parameters.AddWithValue("@Date", data.dateTime);
cmd.Parameters.AddWithValue("@User", data.userId);
cmd.Parameters.AddWithValue("@Type", data.typeId);
cmd.ExecuteNonQuery();
return true;
}
public override bool DeleteData(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM date WHERE id = {id}", conn);
cmd.ExecuteNonQuery();
return true;
}
public override bool UpdateData(Data data)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"UPDATE date SET datetime = @Date, userid = @User, typeid = @Type WHERE id = @Id", conn);
cmd.Parameters.AddWithValue("@Date", data.dateTime);
cmd.Parameters.AddWithValue("@User", data.userId);
cmd.Parameters.AddWithValue("@Type", data.typeId);
cmd.Parameters.AddWithValue("@Id", data.Id);
cmd.ExecuteNonQuery();
return true;
}
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 Data GetData(int UserId, int TypeId)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM date WHERE (userId = {UserId} AND typeId = {TypeId})", 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 bool CreateDescription(Description description)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"INSERT INTO description (id, title, description, place) VALUES (@Id, @Title, @Desc, @Place)", conn);
cmd.Parameters.AddWithValue("@Title", description.title);
cmd.Parameters.AddWithValue("@Desc", description.descript);
cmd.Parameters.AddWithValue("@Place", description.place);
cmd.Parameters.AddWithValue("@Id", description.Id);
cmd.ExecuteNonQuery();
return true;
}
public override bool UpdateDescription(Description description)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"UPDATE description SET title = @Title, description = @Desc, place = @Place WHERE id = @Id", conn);
cmd.Parameters.AddWithValue("@Title", description.title);
cmd.Parameters.AddWithValue("@Desc", description.descript);
cmd.Parameters.AddWithValue("@Place", description.place);
cmd.Parameters.AddWithValue("@Id", description.Id);
cmd.ExecuteNonQuery();
return true;
}
public override bool DeleteDescription(int id)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM description WHERE id = {id}", conn);
cmd.ExecuteNonQuery();
return true;
}
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 bool 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();
return true;
}
public override bool DeleteInvite(int userId, int typeId)
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM invited WHERE (userid = {userId} AND dateid = {typeId})", conn);
cmd.ExecuteNonQuery();
return true;
}
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;
}
public override bool DeleteUsers()
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM users", conn);
cmd.ExecuteNonQuery();
return true;
}
public override bool DeleteTypes()
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM type", conn);
cmd.ExecuteNonQuery();
return true;
}
public override bool DeleteDatas()
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM date", conn);
cmd.ExecuteNonQuery();
return true;
}
public override bool DeleteInvited()
{
using var conn = GetConnect();
conn.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM invited", conn);
cmd.ExecuteNonQuery();
return true;
}
}
}