public Db.Employee Get(Guid id) { using (var db = new Db.DataContext()) { return(db.Employees .Include(a => a.Department) .Include(a => a.Office) .Single(a => a.Id == id)); } }
public Db.Employee Patch(Guid id, JObject delta) { using (var db = new Db.DataContext()) { var record = db.Employees.Single(a => a.Id == id); Apply(record, delta); db.SaveChanges(); } return(Get(id)); }
//[Route("employees")] public IEnumerable <Models.EmpCard> Query(string q = null) { using (var db = new Db.DataContext()) { IQueryable <Db.Employee> query = db.Employees; if (!String.IsNullOrEmpty(q)) { var parts = q.Split(new[] { ' ', ',', ';' }, StringSplitOptions.RemoveEmptyEntries); var words = parts.Where(a => !a.StartsWith("#")).ToArray(); var hashes = parts.Where(a => a.StartsWith("#") && a.Length > 1).Select(a => a.Substring(1)).ToArray(); if (words.Any()) { var ftsQuery = FtsQuery(words); query = db.Employees.FromSql("SELECT * FROM Employee WHERE Contains(FTS, {0})", ftsQuery); } if (hashes.Any()) { var ftsQuery = FtsQuery(hashes); var deps = db.Departments .FromSql("SELECT * FROM Department WHERE Contains(FTS, {0})", ftsQuery) .Select(a => a.Id) .ToArray(); var offices = db.Offices .FromSql("SELECT * FROM Office WHERE Contains(FTS, {0})", ftsQuery) .Select(a => a.Id) .ToArray(); query = query.Where(a => deps.Contains(a.DepartmentId) || offices.Contains(a.OfficeId)); } } return(query .Select(e => new Models.EmpCard { Id = e.Id, FirstName = e.FirstName, LastName = e.LastName, Title = e.Title, OfficeName = e.Office.Name, DepartmentName = e.Department.Name, MobilePhone = e.MobilePhone, PrimaryEmail = e.PrimaryEmail, PictureUrl = e.PictureUrl }) .ToArray()); } }
// GET api/values public IEnumerable <Db.Office> Get(string q = null) { using (var db = new Db.DataContext()) { IQueryable <Db.Office> query = db.Offices; if (!String.IsNullOrWhiteSpace(q)) { query = query.Where(a => a.Name.StartsWith(q)); } return(query.ToArray()); } }
public Db.Employee Put(JObject data) { var record = new Db.Employee(); Apply(record, data); record.Id = Guid.NewGuid(); using (var db = new Db.DataContext()) { db.Employees.Add(record); db.SaveChanges(); } return(Get(record.Id)); }