Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //------------------------------------------------------------------------------
- // <auto-generated>
- // This code was generated by a tool.
- // Changes to this file will be lost if the code is regenerated.
- // </auto-generated>
- //------------------------------------------------------------------------------
- namespace draugiem_wpf_v01.domain
- {
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using draugiem_wpf_v01.shared;
- using Npgsql;
- public class MessageRepository
- {
- private static NpgsqlConnection conection = new NpgsqlConnection("Server=localhost;Port=5432;Database=draugiem_v13;User Id=draugiem;Password=draugiem;");
- private DataTable dt_messages = new DataTable();
- private NpgsqlDataAdapter adapter_message()
- {
- NpgsqlDataAdapter adapter = new NpgsqlDataAdapter();
- NpgsqlCommand upCmd = new NpgsqlCommand("UPDATE messages SET message_id=@message_id, sender_id=@sender_id, receiver_id=@receiver_id, content=@content,"
- + "header=@header, date_sent=@date_sent WHERE message_id=@message_id", conection);
- NpgsqlCommand sCmd = new NpgsqlCommand("SELECT * FROM messages", conection);
- NpgsqlCommand delCmd = new NpgsqlCommand("DELETE FROM messages WHERE message_id=@message_id", conection);
- NpgsqlCommand addCmd = new NpgsqlCommand("INSERT INTO messages (sender_id,receiver_id,content,header,date_sent)"
- + "VALUES(@sender_id,@receiver_id,@content,@header,@date_sent)", conection);
- upCmd.Parameters.Add(new NpgsqlParameter("@sender_id", NpgsqlTypes.NpgsqlDbType.Integer, sizeof(int), "sender_id"));
- upCmd.Parameters.Add(new NpgsqlParameter("@receiver_id", NpgsqlTypes.NpgsqlDbType.Integer, sizeof(int), "receiver_id"));
- upCmd.Parameters.Add(new NpgsqlParameter("@content", NpgsqlTypes.NpgsqlDbType.Text, 0, "content"));
- upCmd.Parameters.Add(new NpgsqlParameter("@header", NpgsqlTypes.NpgsqlDbType.Varchar, 255, "header"));
- upCmd.Parameters.Add(new NpgsqlParameter("@date_sent", NpgsqlTypes.NpgsqlDbType.Date, 0, "date_sent"));
- upCmd.Parameters.Add(new NpgsqlParameter("@message_id", NpgsqlTypes.NpgsqlDbType.Integer, sizeof(int), "message_id"));
- addCmd.Parameters.Add(new NpgsqlParameter("@sender_id", NpgsqlTypes.NpgsqlDbType.Integer, sizeof(int), "sender_id"));
- addCmd.Parameters.Add(new NpgsqlParameter("@receiver_id", NpgsqlTypes.NpgsqlDbType.Integer, sizeof(int), "receiver_id"));
- addCmd.Parameters.Add(new NpgsqlParameter("@content", NpgsqlTypes.NpgsqlDbType.Text, 0, "content"));
- addCmd.Parameters.Add(new NpgsqlParameter("@header", NpgsqlTypes.NpgsqlDbType.Varchar, 255, "header"));
- addCmd.Parameters.Add(new NpgsqlParameter("@date_sent", NpgsqlTypes.NpgsqlDbType.Date, 0, "date_sent"));
- delCmd.Parameters.Add(new NpgsqlParameter("@message_id", NpgsqlTypes.NpgsqlDbType.Integer, sizeof(int), "message_id"));
- adapter.SelectCommand = sCmd;
- adapter.UpdateCommand = upCmd;
- adapter.InsertCommand = addCmd;
- adapter.DeleteCommand = delCmd;
- return adapter;
- }
- public List<MessageDTO> loadAllUserMessages(int user_id, string type, string name, DateTime from, DateTime to)
- {
- read_data();
- List<MessageDTO> messagesList = new List<MessageDTO>();
- foreach (DataRow dr in dt_messages.Rows)
- {
- MessageDTO message = new MessageDTO();
- if ((Convert.ToInt32(dr["receiver_id"]) == user_id || Convert.ToInt32(dr["sender_id"]) == user_id))
- {
- if (from != DateTime.MinValue && to != DateTime.MinValue)
- {
- TimeSpan duration = new TimeSpan(0, 23, 59, 59);
- to = to.Add(duration);
- if (from <= Convert.ToDateTime(dr["date_sent"]) && to >= Convert.ToDateTime(dr["date_sent"]))
- {
- bool isNameFound = FindNameInSendrReceiver(name, dr);
- //int FirstChr = Convert.ToString(dr["header"]).IndexOf(name);
- //int SecondChr = Convert.ToString(dr["header"]).IndexOf(name);
- if (string.IsNullOrEmpty(name) || isNameFound)
- {
- message = SwitchTypes(user_id, type, messagesList, dr, message);
- }
- }
- duration = new TimeSpan(0, -23, -59, -59);
- to = to.Add(duration);
- }
- else if (!string.IsNullOrEmpty(name))
- {
- bool isNameFound = FindNameInSendrReceiver(name, dr);
- if (isNameFound)
- {
- message = SwitchTypes(user_id, type, messagesList, dr, message);
- }
- }
- else
- {
- message = SwitchTypes(user_id, type, messagesList, dr, message);
- }
- }
- }
- return messagesList;
- }
- private MessageDTO SwitchTypes(int user_id, string type, List<MessageDTO> messagesList, DataRow dr, MessageDTO message)
- {
- switch (type)
- {
- case "ALL":
- message = getMessage(dr, user_id);
- messagesList.Add(message);
- break;
- case "SENT":
- if (Convert.ToInt32(dr["sender_id"]) == user_id)
- {
- message = getMessage(dr, user_id);
- messagesList.Add(message);
- }
- break;
- case "RECEIVED":
- if (Convert.ToInt32(dr["receiver_id"]) == user_id)
- {
- message = getMessage(dr, user_id);
- messagesList.Add(message);
- }
- break;
- default:
- break;
- }
- return message;
- }
- private static bool FindNameInSendrReceiver(string name, DataRow dr)
- {
- string[] str = name.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- bool isNameFound = false;
- if (str.Length < 3)
- {
- foreach (var item in str)
- {
- UserRepository ur = new UserRepository();
- UserDTO receiverUser = ur.getUser(Convert.ToInt32(dr["receiver_id"]));
- UserDTO senderUser = ur.getUser(Convert.ToInt32(dr["sender_id"]));
- if (receiverUser.first_name.IndexOf(item) > -1 || receiverUser.last_name.IndexOf(item) > -1
- || senderUser.first_name.IndexOf(item) > -1 || senderUser.last_name.IndexOf(item) > -1)
- {
- isNameFound = true;
- }
- }
- }
- return isNameFound;
- }
- private MessageDTO getMessage(DataRow dr, int user_id)
- {
- MessageDTO message = new MessageDTO();
- message.receiver_id = Convert.ToInt32(dr["receiver_id"]);
- message.sender_id = Convert.ToInt32(dr["sender_id"]);
- message.message_id = Convert.ToInt32(dr["message_id"]);
- message.header = Convert.ToString(dr["header"]);
- message.content = Convert.ToString(dr["content"]);
- message.date_sent = Convert.ToDateTime(dr["date_sent"]);
- message.isRecieved = (Convert.ToInt32(dr["sender_id"]) == user_id) ? false : true;
- return message;
- }
- public MessageDTO getMessageByMessageId(int message_id)
- {
- read_data();
- MessageDTO message = new MessageDTO();
- foreach (DataRow dr in dt_messages.Rows)
- {
- if (Convert.ToInt32(dr["message_id"]) == message_id)
- {
- message = getMessage(dr, -1);
- }
- }
- return message;
- }
- public void read_data()
- {
- dt_messages = new DataTable();
- adapter_message().Fill(dt_messages);
- }
- public void composeNewMessage(int receiver_id, int sender_id, string header, string content)
- {
- read_data();
- DataRow newMessage = dt_messages.NewRow();
- newMessage["receiver_id"] = receiver_id;
- newMessage["sender_id"] = sender_id;
- newMessage["header"] = header;
- newMessage["content"] = content;
- newMessage["date_sent"] = DateTime.Now;
- dt_messages.Rows.Add(newMessage);
- adapter_message().Update(dt_messages);
- }
- public void deleteMessageByMessageId(int message_id)
- {
- read_data();
- foreach (DataRow dr in dt_messages.Rows)
- {
- if (Convert.ToInt32(dr["message_id"]) == message_id)
- {
- //dt_messages.Rows.Remove(dr);
- dt_messages.Rows[dt_messages.Rows.IndexOf(dr)].Delete();
- break;
- }
- }
- adapter_message().Update(dt_messages);
- dt_messages.AcceptChanges();
- }
- }
- }
Add Comment
Please, Sign In to add comment