public IActionResult Remove([FromQuery] PersonNameCondition c) { #if DEBUG DataConnection.TurnTraceSwitchOn(); DataConnection.WriteTraceLine = (msg, context) => Debug.WriteLine(msg, context); #endif using (var db = new peppaDB()) { var count = db.PersonName .Where(c.CreatePredicate()) .Delete(); return(Ok(count)); } }
public IActionResult Count([FromQuery] PersonNameCondition c) { #if DEBUG DataConnection.TurnTraceSwitchOn(); DataConnection.WriteTraceLine = (msg, context) => Debug.WriteLine(msg, context); #endif using (var db = new peppaDB()) { var count = c == null?db.PersonName.Count() : db.PersonName.Count(predicate: c.CreatePredicate()); return(Ok(count)); } }
public IActionResult Search([FromQuery] PersonNameCondition c, [FromQuery] bool with_PersonNameType, [FromQuery] bool with_Staff, [FromQuery] bool with_Teacher, [FromQuery] string[] order, int currentPage = 1, int pageSize = 10, DateTime?p_when = null) { #if DEBUG DataConnection.TurnTraceSwitchOn(); DataConnection.WriteTraceLine = (msg, context) => Debug.WriteLine(msg, context); #endif using (var db = new peppaDB()) { var q = db.PersonName .LoadWith(with_PersonNameType, _ => _.PersonNameType) .LoadWith(with_Staff, _ => _.Staff) .LoadWith(with_Teacher, _ => _.Teacher) .IsActiveAt(p_when) ; var filtered = c == null ? q : q.Where(c.CreatePredicate()); var ordered = order.Any() ? filtered.SortBy(order) : filtered; var result = ordered.Skip((currentPage - 1) * pageSize).Take(pageSize).ToList(); return(Ok(result)); } }
public IEnumerable <PersonName> Search([FromUri] bool with_PersonNameType, [FromUri] bool with_Staff, [FromUri] PersonNameCondition c) { #if DEBUG DataConnection.TurnTraceSwitchOn(); DataConnection.WriteTraceLine = (msg, context) => Debug.WriteLine(msg, context); #endif using (var db = new peppaDB()) { var q = db.PersonName; #region LoadWith if (with_PersonNameType) { q = q.LoadWith(_ => _.PersonNameType); } if (with_Staff) { q = q.LoadWith(_ => _.Staff); } #endregion var list = (c == null ? q : q.Where(c.CreatePredicate())).ToList(); return(list); } }