protected void Step2_Personal_Deactivate(object sender, EventArgs e) { using (WebUserInfosController wuic = new WebUserInfosController()) { // add new info WebUserInfo info = new WebUserInfo() { FName = txtFirstName.Text, MInitial = string.IsNullOrWhiteSpace(txtMiddleInitial.Text) ? (char?)null : (char)txtMiddleInitial.Text.ToCharArray(0, 1)[0], LName = txtLastName.Text, UserID = UserID.Value }; wuic.AddNew(info); } }
// The return type can be changed to IEnumerable, however to support // paging and sorting, the following parameters must be added: // int maximumRows // int startRowIndex // out int totalRowCount // string sortByExpression public IQueryable gvAllUsers_GetData() { using (WebUsersController wuc = new WebUsersController()) using(WebUserInfosController wuic = new WebUserInfosController()) { var allInfo = wuic.Get().Select(i=> new { UserID = i.UserID, FirstName = i.FName, LastName = i.LName }); var allUsers = wuc.Get(); var joined = allUsers.GroupJoin(allInfo, i => i.UserID, j => j.UserID, (i, j) => new { Login = i, Info = j.FirstOrDefault() }); return joined.Select(i => new UserResult() { Email = i.Login.Email, FirstName = i.Info == null ? null : i.Info.FirstName, LastName = i.Info == null ? null : i.Info.LastName, UserID = i.Login.UserID }).OrderBy(i => i.LastName).ThenBy(i => i.FirstName).AsQueryable<UserResult>(); } }