Advertisement
riste5

Clients.cs

Nov 16th, 2024
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.35 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data.SqlClient;
  5. using System.Diagnostics.Eventing.Reader;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace Hotel_Management_System
  12. {
  13.     internal class Clients
  14.     {
  15.         private Int64 client_id { get; set; }
  16.         private string name { get; set; }
  17.         private string surname { get; set; }
  18.         private string email { get; set; }
  19.         private string phone { get; set; }
  20.         private string city { get; set; }
  21.         private string address { get; set; }
  22.         private string password { get; set; }
  23.         private DateTime date { get; set; }
  24.         private Int64 hotel_id { get; set; }
  25.         private bool isSaveAllowed { get; set; }
  26.         private bool isUpdateAllowed { get; set; }
  27.        
  28.         public bool CheckIfExists()
  29.         {
  30.             DatabaseConnection conn = new DatabaseConnection();  
  31.             using (SqlCommand cmd = conn.executeCommand("SELECT email FROM clients WHERE email = @em AND hotel_id = :hid"))
  32.             {
  33.                 cmd.Parameters.AddWithValue("@email", this.email);
  34.                 cmd.Parameters.AddWithValue("@hid", this.hotel_id);
  35.                 SqlDataReader reader = cmd.ExecuteReader();
  36.                 if (reader.Read())
  37.                 {
  38.                     string email = reader.GetString(3);
  39.                     if (string.IsNullOrEmpty(email))
  40.                     {
  41.                         return false;
  42.                     }
  43.                     reader.Close();
  44.                     this.isSaveAllowed = false;
  45.                     this.isUpdateAllowed = true;
  46.                     return true;
  47.                 }
  48.             }
  49.             return false;
  50.         }
  51.         public void getDataByClientId(Int64 clientId)
  52.         {
  53.             DatabaseConnection conn = new DatabaseConnection();
  54.             using(SqlCommand cmd = conn.executeCommand("SELECT * FROM clients WHERE client_id = @id"))
  55.             {
  56.                 cmd.Parameters.AddWithValue("@id", clientId);
  57.                 SqlDataReader reader = cmd.ExecuteReader();
  58.                 if (reader.Read())
  59.                 {
  60.                     this.client_id = reader.GetInt64(0);
  61.                     this.name = reader.GetString(1);
  62.                     this.surname = reader.GetString(2);
  63.                     this.email = reader.GetString(3);
  64.                     this.phone = reader.GetString(4);
  65.                     this.city = reader.GetString(5);
  66.                     this.address = reader.GetString(6);
  67.                     this.password = reader.GetString(7);
  68.                     this.date = reader.GetDateTime(8);
  69.                     this.hotel_id = reader.GetInt64(9);
  70.                 }
  71.                 reader.Close();
  72.             }
  73.         }
  74.         public void PreSave() {
  75.             if (string.IsNullOrEmpty(this.name) || string.IsNullOrEmpty(this.surname) || string.IsNullOrEmpty(this.email) ||
  76.                 string.IsNullOrEmpty(this.phone) || string.IsNullOrEmpty(this.city) || string.IsNullOrEmpty(this.address) ||
  77.                 string.IsNullOrEmpty(this.password) || this.hotel_id < 1)
  78.             {
  79.                 this.isSaveAllowed = false;
  80.                 this.isUpdateAllowed = false;
  81.             } else
  82.             {
  83.                 if(this.client_id > 0)
  84.                 {
  85.                     this.isUpdateAllowed = true;
  86.                     this.isSaveAllowed = false;
  87.                 } else
  88.                 {
  89.                     this.isUpdateAllowed = false;
  90.                     this.isSaveAllowed = true;
  91.                 }
  92.             }
  93.         }
  94.         public void Update()
  95.         {
  96.             if (this.isUpdateAllowed)
  97.             {
  98.                 DatabaseConnection conn = new DatabaseConnection();
  99.                 using (SqlCommand cmd = conn.executeCommand("select client_id from clients where client_id = @cid"))
  100.                 {
  101.                     cmd.Parameters.AddWithValue("@cid", this.client_id);
  102.                     int count = cmd.ExecuteNonQuery();
  103.                     if (count > 0)
  104.                     {
  105.                         using (SqlCommand updatecmd = conn.executeCommand("update clients set name = @n, surname=@sur,email=@em,phone=@ph,city=@cit,address=@addr,password=@pass,date=@dat,hotel_id=@hid where client_id = @cid"))
  106.                         {
  107.                             updatecmd.Parameters.AddWithValue("@n", this.name);
  108.                             updatecmd.Parameters.AddWithValue("@sur", this.surname);
  109.                             updatecmd.Parameters.AddWithValue("@em", this.email);
  110.                             updatecmd.Parameters.AddWithValue("@ph", this.phone);
  111.                             updatecmd.Parameters.AddWithValue("@cit", this.city);
  112.                             updatecmd.Parameters.AddWithValue("@addr", this.address);
  113.                             updatecmd.Parameters.AddWithValue("@pass", this.password);
  114.                             updatecmd.Parameters.AddWithValue("@dat", this.date);
  115.                             updatecmd.Parameters.AddWithValue("@hid", this.hotel_id);
  116.                             updatecmd.Parameters.AddWithValue("@cid", this.client_id);
  117.                             updatecmd.ExecuteNonQuery();
  118.                             // since we already updated the data, we will disable updating and saving again until we change something.
  119.                             this.isSaveAllowed = false;
  120.                             this.isUpdateAllowed = false;
  121.                         }
  122.                     }
  123.                 }
  124.             }
  125.         }
  126.         public void Save()
  127.         {
  128.             this.PreSave();
  129.             switch (this.isSaveAllowed)
  130.             {
  131.                 case true:
  132.                     // let's check first if we already have loaded client and when we call this function we should only update the item;
  133.                     if(this.client_id > 0)
  134.                     {
  135.                         this.Update();
  136.                     } else
  137.                     {
  138.                         DatabaseConnection conn = new DatabaseConnection();
  139.                         using(SqlCommand cmd = conn.executeCommand("insert into clients values(@name,@surname,@email,@phone,@city,@address,@password,@date,@hotel)"))
  140.                         {
  141.                             cmd.Parameters.AddWithValue("@name", this.name);
  142.                             cmd.Parameters.AddWithValue("@surname", this.surname);
  143.                             cmd.Parameters.AddWithValue("@email", this.email);
  144.                             cmd.Parameters.AddWithValue("@phone", this.phone);
  145.                             cmd.Parameters.AddWithValue("@city", this.city);
  146.                             cmd.Parameters.AddWithValue("@address", this.address);
  147.                             cmd.Parameters.AddWithValue("@password", this.password);
  148.                             cmd.Parameters.AddWithValue("@date", this.date);
  149.                             cmd.Parameters.AddWithValue("@hotel", this.hotel_id);
  150.                             cmd.ExecuteScalar();
  151.                             this.isSaveAllowed = false;
  152.                             this.isUpdateAllowed = false;
  153.                         }
  154.                         conn.closeConnection();
  155.                     }
  156.                     break;
  157.             }
  158.         }
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement