-
Notifications
You must be signed in to change notification settings - Fork 0
/
Repository.cs
145 lines (112 loc) · 4.07 KB
/
Repository.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Sql;
using System.Data.SqlClient;
using Model;
using System.Configuration;
namespace Repository
{
public interface IRepository<T>
{
List<T> FindAll();
T FindByID(string id);
bool Add(T x);
bool Update(T x);
bool Remove(T x);
}
public class BookRepositoryDB : IRepository<book>
{
private string _connectionString;
public BookRepositoryDB()
{
_connectionString = configFile.getSetting("pubsDBConnectionString");
}
public bool Add(book x)
{
throw new NotImplementedException();
}
public List<book> FindAll()
{
List<book> books = new List<book>();
string sql = "SELECT title_id, title, type, T.pub_id AS p_id, pub_name, price, pubdate FROM titles T ";
sql += "JOIN publishers P ";
sql += "ON P.pub_id = T.pub_id";
try
{
using (SqlConnection connection = new SqlConnection(_connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(sql, connection))
{
using (SqlDataReader dataReader = command.ExecuteReader())
{
while (dataReader.Read()) // foward only and readonly
{
DateTime time; // = Convert.ToDateTime(dataReader["pubdate"]);
decimal price; // = Convert.ToDecimal(dataReader["price"]);
try
{
price = Convert.ToDecimal(dataReader["price"]);
}
catch(Exception ex)
{
price = 0.0M;
}
try
{
time = Convert.ToDateTime(dataReader["pubdate"]);
}
catch(Exception ex)
{
time = DateTime.Now;
}
book b = new book {
Id = dataReader["title_id"].ToString(),
Title = dataReader["title"].ToString(),
Price = price,
Type = dataReader["type"].ToString(),
PubDate = time
};
b.Pub = new publisher();
b.Pub.id = dataReader["p_id"].ToString();
b.Pub.name = dataReader["pub_name"].ToString(); ;
books.Add(b);
} // end read loop
}// end use reader
}// end use command
}// end use connection
}
catch (SqlException)
{
return default(List<book>);
}
return books;
}
public book FindByID(string id)
{
throw new NotImplementedException();
}
public bool Remove(book x)
{
throw new NotImplementedException();
}
public bool Update(book x)
{
throw new NotImplementedException();
}
public bool removeAuthorFromBook(string au_id, string book_id)
{
return true;
}
public bool addAuthorToBook(string au_id, string book_id)
{
return true;
}
public List<book> getBooksByAuthor(string au_id)
{
}
}