public virtual DeleteResponse DeleteCollection(IModelCondition <T> condition) { try { return(Mapper.DeleteCollection(condition)); } catch (Exception exception) { return(new DeleteResponse(exception)); } }
public virtual EntityCollectionResponse <T> RetrieveCollection(IModelCondition <T> condition) { try { return(Mapper.RetrieveCollection(condition)); } catch (Exception exception) { return(new EntityCollectionResponse <T>(exception)); } }
public virtual EntityCollectionResponse <T> RetrieveCollection(IModelCondition <T> condition) { var columns = GetColumns(); var wherecondition = MountWhereFromCondition(condition); var query = $"select * from {typeof(T).Name} {wherecondition}"; using (var connection = context) { connection.Open(); return(new EntityCollectionResponse <T>(connection.Query <T>(query))); } }
private string MountWhereFromCondition(IModelCondition <T> condition) { if (condition.IsNull()) { return(string.Empty); } var properties = condition.GetType().GetProperties(); if (properties.Length == 0) { return(string.Empty); } var sb = new StringBuilder(); sb.Append("WHERE "); foreach (var property in properties) { if (!property.GetValue(condition).IsNull()) { if (property.PropertyType.Name.ToLower().Contains("string")) { sb.Append($"{property.Name} = '{property.GetValue(condition)}' AND "); } else if (property.PropertyType.Name.ToLower().Contains("bool")) { sb.Append($"{property.Name} = {Convert.ToInt16(property.GetValue(condition))} AND "); } else { sb.Append($"{property.Name} = {property.GetValue(condition)} AND "); } } } sb.Remove(sb.Length - 4, 4); return(sb.ToString()); }
public virtual EntityResponse <T> RetrieveFirst(IModelCondition <T> condition) { try { var response = this.RetrieveCollection(condition); if (!response.Success) { throw response.Exception; } if (response.Collection.IsEmpty()) { throw new DatabaseEntryNotFoundException { } } ; return(new EntityResponse <T>(response.Collection.First())); } catch (Exception exception) { return(new EntityResponse <T>(exception)); } }
public virtual EntityCollectionResponse <T> RetrieveCollection(IModelCondition <T> condition) { return(this.Rule.RetrieveCollection(condition)); }
public DeleteResponse DeleteCollection(IModelCondition <T> condition) { throw new NotImplementedException(); }