Advertisement
Guest User

Untitled

a guest
May 27th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.22 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using System.Data.SqlClient;
  3.  
  4. namespace Database
  5. {
  6.     public class AutoFac<T> where T : new()
  7.     {
  8.         private string table;
  9.         private Mapper<T> mapper = new Mapper<T>();
  10.  
  11.         public AutoFac()
  12.         {
  13.             table = typeof(T).Name;
  14.         }
  15.  
  16.  
  17.         public T Get(int ID)
  18.         {
  19.             using (var cmd = new SqlCommand("SELECT * FROM [" + table + "] WHERE ID=@ID", Conn.CreateConnection()))
  20.             {
  21.                 cmd.Parameters.AddWithValue("@ID", ID);
  22.  
  23.                 var r = cmd.ExecuteReader();
  24.                 T type = new T();
  25.  
  26.                 if (r.Read())
  27.                 {
  28.                     type = mapper.Map(r);
  29.                 }
  30.  
  31.                 r.Close();
  32.                 cmd.Connection.Close();
  33.                 return type;
  34.             }
  35.         }
  36.  
  37.         public List<T> GetAll()
  38.         {
  39.             using (var cmd = new SqlCommand("SELECT * FROM [[" + table + "]]", Conn.CreateConnection()))
  40.             {
  41.                 List<T> list = mapper.MapList(cmd.ExecuteReader());
  42.                 cmd.Connection.Close();
  43.                 return list;
  44.             }
  45.         }
  46.  
  47.         public List<T> GetAll(bool _desc)
  48.         {
  49.             var desc = "ASC";
  50.             if (_desc)
  51.             {
  52.                 desc = "DESC";
  53.             }
  54.  
  55.             using (var cmd = new SqlCommand("SELECT * FROM [" + table + "] ORDER BY " + desc, Conn.CreateConnection()))
  56.             {
  57.                 List<T> list = mapper.MapList(cmd.ExecuteReader());
  58.                 cmd.Connection.Close();
  59.                 return list;
  60.             }
  61.         }
  62.  
  63.  
  64.         public List<T> GetBy(string field, int value)
  65.         {
  66.             using (var cmd = new SqlCommand("SELECT * FROM [" + table + "] WHERE " + field + "=@KID", Conn.CreateConnection()))
  67.             {
  68.                 cmd.Parameters.AddWithValue("@KID", value);
  69.  
  70.                 List<T> list = mapper.MapList(cmd.ExecuteReader());
  71.                 cmd.Connection.Close();
  72.                 return list;
  73.             }
  74.         }
  75.  
  76.  
  77.         public void Delete(int ID)
  78.         {
  79.             using (var cmd = new SqlCommand("DELETE FROM [" + table + "] WHERE ID=@ID", Conn.CreateConnection()))
  80.             {
  81.                 cmd.Parameters.AddWithValue("ID", ID);
  82.                 cmd.ExecuteNonQuery();
  83.                 cmd.Connection.Close();
  84.             }
  85.         }
  86.  
  87.         public void DeleteBy(string field, int value)
  88.         {
  89.             using (var cmd = new SqlCommand("DELETE FROM [" + table + "] WHERE " + field + "=@value", Conn.CreateConnection()))
  90.             {
  91.                 cmd.Parameters.AddWithValue("@value", value);
  92.                 cmd.ExecuteNonQuery();
  93.                 cmd.Connection.Close();
  94.             }
  95.         }
  96.  
  97.         public void Insert(T pro)
  98.         {
  99.             string parms = "";
  100.             string fielsds = "";
  101.  
  102.             var mappings = mapper.CreateMap();
  103.  
  104.             foreach (var map in mappings)
  105.             {
  106.                 if (map.Key.ToLower() != "id")
  107.                 {
  108.                     fielsds += map.Value + ", ";
  109.                     parms += "@" + map.Key + ", ";
  110.                 }
  111.             }
  112.  
  113.             fielsds = fielsds.Substring(0, fielsds.Length - 2);
  114.             parms = parms.Substring(0, parms.Length - 2);
  115.  
  116.             using (var cmd = new SqlCommand("INSERT INTO [" + table + "] (" + fielsds + ") VALUES(" + parms + ")", Conn.CreateConnection()))
  117.             {
  118.  
  119.                 foreach (var prop in mappings)
  120.                 {
  121.                     if (prop.Key.ToLower() != "id")
  122.                     {
  123.                         cmd.Parameters.AddWithValue(prop.Key, pro.GetType().GetProperty(prop.Key).GetValue(pro, null));
  124.                     }
  125.                 }
  126.  
  127.                 cmd.ExecuteNonQuery();
  128.                 cmd.Connection.Close();
  129.             }
  130.         }
  131.  
  132.         public void Update(T pro)
  133.         {
  134.             string fAndP = "";
  135.             var mappings = mapper.CreateMap();
  136.  
  137.             foreach (var map in mappings)
  138.             {
  139.                 if (map.Key.ToLower() != "id")
  140.                 {
  141.                     fAndP += map.Value + "=@" + map.Key + ", ";
  142.                 }
  143.             }
  144.  
  145.             fAndP = fAndP.Substring(0, fAndP.Length - 2);
  146.  
  147.             using (var cmd = new SqlCommand("UPDATE [" + table + "] SET " + fAndP + " WHERE ID=@Id", Conn.CreateConnection()))
  148.             {
  149.  
  150.                 foreach (var prop in mappings)
  151.                 {
  152.                     cmd.Parameters.AddWithValue(prop.Key, pro.GetType().GetProperty(prop.Key).GetValue(pro, null));
  153.                 }
  154.  
  155.                 cmd.ExecuteNonQuery();
  156.                 cmd.Connection.Close();
  157.             }
  158.         }
  159.  
  160.         public List<T> Search(string searchWord, string searchIn)
  161.         {
  162.             using (var cmd = new SqlCommand("SELECT * FROM [" + table + "] WHERE " + searchIn + " LIKE @Search", Conn.CreateConnection()))
  163.             {
  164.                 cmd.Parameters.AddWithValue("@Search", "%" + searchWord + "%");
  165.  
  166.                 List<T> list = mapper.MapList(cmd.ExecuteReader());
  167.                 cmd.Connection.Close();
  168.                 return list;
  169.             }
  170.         }
  171.     }
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement