public Task <IList <ITransactionType> > GetTransactionTypesAsync(ITransactionTypeFilter filter) { return(Task.Factory.StartNew <IList <ITransactionType> >(() => { return GetTransactionTypes(filter); })); }
public IList <ITransactionType> GetTransactionTypes(ITransactionTypeFilter filter) { SqlQueryBuilder sqlQueryBuilder = new SqlQueryBuilder(); sqlQueryBuilder.Select = " SELECT * "; sqlQueryBuilder.From = " FROM [dbo].[TransactionType] "; if (filter.Id.HasValue) { sqlQueryBuilder.Where.Add(new SqlWhere() { Where = "Id = @Id", Param = new SqlParameter("@Id", filter.Id.Value) }); } if (filter.Income.HasValue) { sqlQueryBuilder.Where.Add(new SqlWhere() { Where = "Income = @Income", Param = new SqlParameter("@Income", filter.Income.Value) }); } if (!string.IsNullOrWhiteSpace(filter.Color)) { sqlQueryBuilder.Where.Add(new SqlWhere() { Where = "Color = @Color", Param = new SqlParameter("@Color", filter.Color) }); } if (!string.IsNullOrWhiteSpace(filter.Name)) { sqlQueryBuilder.Where.Add(new SqlWhere() { Where = "Name = @Name", Param = new SqlParameter("@Name", filter.Name) }); } var table = SqlService.GetDataTable(sqlQueryBuilder); var myEnumerable = table.AsEnumerable(); return((from item in myEnumerable select new TransactionType { Income = item.Field <bool>("Income"), Color = item.Field <string>("Color"), Name = item.Field <string>("Name"), Description = item.Field <string>("Description"), Id = item.Field <int>("Id") }).ToList <ITransactionType>()); }