public IEnumerable <Customer> Find(CustomerSearchSpec spec) { var o = new Dictionary <string, object>(); var sql = BuildSql(spec, out o); if (sql == string.Empty) { throw new Exception("Empty Sql"); } var result = _context.Connection.Query <Customer>(sql, new DynamicParameters(o)); return(_context.Connection.Query <Customer>(sql, new DynamicParameters(o))); // return _context.Connection.Query<Customer>(sql); }
public ActionResult AdvanceSearch(LstSearch lstSearch) { try { if (!ModelState.IsValid) { return(RedirectToAction("Index")); } var resource = "Customer"; var customerSearchSpec = new CustomerSearchSpec(); var attributeToReturn = new List <string>(); var attributeList = _customerService.GetAttributeNameListByResource(resource).ToList(); attributeToReturn = attributeList.Select(x => x.AttributeName).ToList(); foreach (var searchOb in lstSearch.SearchVms) { var criteria = new Criteria(); criteria.Attribute = new ResourceAttribute() { AttributeType = (ResourceAttributeType)Enum.Parse(typeof(ResourceAttributeType), attributeList.Where(x => x.AttributeName.Equals(searchOb.AttributeName)).Select(x => x.DataType).First()), ResourceType = resource, Name = searchOb.AttributeName, }; criteria.Operator = (OperatorName)Enum.Parse(typeof(OperatorName), searchOb.Operator); var values = searchOb.FirstValue.Split(','); List <object> list = new List <object>(); foreach (var val in values) { list.Add(val); } criteria.Value = list; criteria.ValueToCompare = searchOb.ValueToCompare; customerSearchSpec.AddCriteria(criteria); } customerSearchSpec.AttributesToReturn = attributeToReturn; return(Json(_customerService.Find(customerSearchSpec))); } catch (Exception e) { Console.WriteLine(e); throw; } }
public IEnumerable <Customer> Find(CustomerSearchSpec spec) { return(_customerRepository.Find(spec)); }