public void Delete(string id) { var db = new Database(Connection); using (var cmd = db.GetSqlStringCommand(DELETE_SQL)) { db.AddInParameter(cmd, "id", DbType.String, id); db.ExecuteNonQuery(cmd); //TODO: Remove from cache } }
public Document Get(string id) { Document document; var db = new Database(Connection); using(var cmd = db.GetSqlStringCommand(GET_SQL)) { db.AddInParameter(cmd, "id", DbType.String, id); using (var reader = db.ExecuteReader(cmd, true)) { if (!reader.Read()) return null; document = HydrateDocument(reader); //TODO: Caching } } return document; }
public IEnumerable<DocumentSummary> ListDocuments(string docStore, string docType) { var docs = new List<DocumentSummary>(); var db = new Database(docStore); using(var cmd = db.GetSqlStringCommand(SELECT_DOCS)) { db.AddInParameter(cmd, "type", DbType.String, docType); using(var reader = db.ExecuteReader(cmd)) while(reader.Read()) { var summary = new DocumentSummary() { Id = DBNullConvert.ToString(reader[0]), CreateDate = DBNullConvert.To<DateTime>(reader[1]), ModifyDate = DBNullConvert.To<DateTime>(reader[2]) }; docs.Add(summary); } } return docs; }
public IEnumerable<Document> Get(string[] ids) { //TODO: check cache, build new id array for remaining items var @params = ids.Select((id, index) => String.Format("@id{0}", index)).ToArray(); var sql = String.Format(GET_MANY_SQL, String.Join(",", @params)); IList<Document> documents = new List<Document>(); var db = new Database(Connection); using(var cmd = db.GetSqlStringCommand(sql)) { for (int i = 0; i < ids.Length; i++) db.AddInParameter(cmd, @params[i], DbType.String, ids[i]); using (var reader = db.ExecuteReader(cmd, true)) { while (reader.Read()) { Document doc = HydrateDocument(reader); //TODO: Caching documents.Add(doc); } } } return documents; }
private void Update(Document document) { var db = new Database(Connection); using (var cmd = db.GetSqlStringCommand(PUT_UPDATE_SQL)) { db.AddInParameter(cmd, "id", DbType.String, document.Id); db.AddInParameter(cmd, "doc", DbType.String, document.Content); db.AddInParameter(cmd, "meta", DbType.String, document.Metadata); db.AddInParameter(cmd, "modify", DbType.DateTime, document.ModifyDate); db.ExecuteNonQuery(cmd); } }
public IEnumerable<Document> GetAll(string type) { IList<Document> documents = new List<Document>(); var db = new Database(Connection); using(var cmd = db.GetSqlStringCommand(GET_ALL_OF_TYPE_SQL)) { db.AddInParameter(cmd, "type", DbType.String, type); using(var reader = db.ExecuteReader(cmd)) { while(reader.Read()) { var doc = HydrateDocument(reader); //TODO: Caching documents.Add(doc); } } } return documents; }