public ActionResult Delete(int?id, AdSearch search) { var ads = _listAdCommand.Execute(search); var singleAd = ads.Where(w => w.Id == id).First(); return(View(singleAd)); }
private IEnumerable <AdListDto> GetAds(AdSearch request) { if (User.Identity.IsAuthenticated) { request.FollowerUserId = GetUserId().Result; } return(_listAdCommand.Execute(request)); }
public void TestMethod3() { WindowsIdentity wi = WindowsIdentity.GetCurrent(); Assert.IsNotNull(wi); AdSearch adSearch = new AdSearch(AdSearch.GetDomainFromUserAccount(wi.Name)); Assert.IsNotNull(adSearch.FindEmail(wi.Name)); }
public ActionResult Edit(int?id, AdSearch search) { var ads = _listAdCommand.Execute(search); var editAd = ads.Where(w => w.Id == id).SingleOrDefault(); return(View(new CreateAdDto() { Id = editAd.Id, Subject = editAd.Subject, Description = editAd.Description })); }
public IActionResult GetAll([FromQuery] AdSearch request) { try { var response = _getAdsCommand.Execute(request); return(Ok(response)); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public IEnumerable <AdListDto> Execute(AdSearch request) { var ads = _context.Ads .Include(x => x.Category) .Include(x => x.User) .Include(x => x.Followers) .Include(x => x.Comments) .AsQueryable(); if (!string.IsNullOrEmpty(request.CategoryName)) { ads = ads.Where(x => x.Category.Name == request.CategoryName); } if (!string.IsNullOrEmpty(request.Subject)) { ads = ads.Where(w => w.Subject.Contains(request.Subject)); } if (!string.IsNullOrEmpty(request.Description)) { ads = ads.Where(w => w.Description.Contains(request.Description)); } if (!string.IsNullOrEmpty(request.Email)) { ads = ads.Where(w => w.User.Email == request.Email); } if (request.Id > 0) { ads = ads.Where(w => w.Id == request.Id); } return(ads.Select(s => new AdListDto() { Id = s.Id, Description = s.Description, Subject = s.Subject, UserName = s.User.UserName, CategoryName = s.Category.Name, AddedDateTime = s.AddedDateTime, IsFollowed = s.Followers.Any(x => x.UserId == request.FollowerUserId) }).ToList()); }
public IEnumerable <ListAdDto> Execute(AdSearch request) { var ads = Context.Ads .Include(x => x.SubCategory) .ThenInclude(x => x.Category) .Include(x => x.User) .ToList().AsQueryable(); if (!string.IsNullOrEmpty(request.Subject)) { ads = ads.Where(w => w.Subject.ToLower().Contains(request.Subject.ToLower())); } if (!string.IsNullOrEmpty(request.CategoryName)) { ads = ads.Where(s => s.SubCategory.Category.Name.ToLower() == request.CategoryName.ToLower()); } if (!string.IsNullOrEmpty(request.Description)) { ads = ads.Where(s => s.Description.ToLower().Contains(request.Description.ToLower())); } if (!string.IsNullOrEmpty(request.SubCategoryName)) { ads = ads.Where(s => s.SubCategory.Name.ToLower() == request.SubCategoryName.ToLower()); } return(ads.Select(s => new ListAdDto() { Id = s.Id, Subject = s.Subject, Description = s.Description, UserName = s.User.Email, CategoryName = s.SubCategory.Category.Name, SubCategoryName = s.SubCategory.Name }).ToList()); }
public IActionResult Index(AdSearch model) { return(View(GetAds(model))); }
private IEnumerable <ListAdDto> GetAds(AdSearch request) { return(_listAdCommand.Execute(request)); }
/// <summary> /// Search AD for a list of users /// </summary> /// <param name="queryString">Display Name Query, do not append '*'</param> /// <returns>List of Users by their AD guids and names</returns> public ICollection <Tuple <Guid, string> > SearchUsers(string searchString) { IAdSearch userSearch = new AdSearch(); return(userSearch.SearchDirectoryUsers(searchString)); }
/// <summary> /// Gets the AD display name of a User directly from an AD identifier /// </summary> /// <param name="userGuid"></param> /// <returns></returns> public string GetDisplayName(Guid userGuid) { IAdSearch userSearch = new AdSearch(); return(userSearch.GetUserDisplayName(userGuid)); }
public ActionResult SaveUsers(ICollection <int> roleIds, ICollection <Guid> users, string submitButton) { if (submitButton == "Remove") { if (users != null) { List <UserDetailsModel> model = new List <UserDetailsModel>(); IAdSearch searcher = new AdSearch(); foreach (var user in users) { string displayName; try { displayName = searcher.GetUserDisplayName(user); } catch (Exception) { displayName = "Name not found"; } model.Add(new UserDetailsModel { UserDto = new UserDto { AdGuid = user }, DisplayName = displayName }); } return(View("ConfirmDeleteUsers", model)); } } if (users != null && roleIds != null && users.Any() && roleIds.Any()) { foreach (var user in users) { IUserDto userDto = null; //the dto, user is just the guid try { userDto = _userManager.GetUser(user); } catch (Exception) { /* user does not exist */ } if (userDto == null) /* first add anyone new if not found above*/ { UserDto newUser = new UserDto { AdGuid = user }; ScriptExecutor scriptExecutor = new ScriptExecutor(); ScriptFileController scriptController = new ScriptFileController(); try { var scriptGuid = scriptController.GetScript(UserId, ConfigHelper.GetDepartmentScriptId()).ScriptFile; newUser.DepartmentId = (from d in _departmentController.GetDepartments(UserId) where d.Name == scriptExecutor.GetUserDepartment(user, scriptGuid) select d.Id).FirstOrDefault(); userDto = _userManager.ModifyUser(UserId, newUser, EntityModification.Create); } catch (Exception exception) { TempData["MessageType"] = WebMessageType.Failure; TempData["Message"] = $"Failed to save adding a user, error: {exception.Message}"; return(RedirectToAction("ManageUsers")); } } //Remove roles from the user where all the roleIds do not match the ID foreach (var role in userDto.Roles.Where(x => roleIds.All(y => y != x.Id))) { try { /* useless is a lazy loading work around */ var useless = _userManager.RemoveRoleFromUsers(UserId, role, new List <IUserDto> { userDto }); foreach (var unused in useless) { /* do nothing */ } } catch (Exception) { /* ignore if user did not have role somehow */ } } //add roles foreach (var roleId in roleIds) { try { var useless = _userManager.AddRolesToUser(UserId, userDto.Id, new List <IRoleDto> { new RoleDto { Id = roleId } }); foreach (var unused in useless) { /*do nothing */ } //lazy loading work around } catch (Exception exception) { TempData["MessageType"] = WebMessageType.Failure; TempData["Message"] = $"Failed to save user changes, error: {exception.Message}"; return(RedirectToAction("ManageUsers")); } } } TempData["MessageType"] = WebMessageType.Success; //successful assumed now TempData["Message"] = "Successfully saved users"; } else { TempData["MessageType"] = WebMessageType.Info; TempData["Message"] = "No changes made"; } return(RedirectToAction("ManageUsers")); }
/// <summary> /// Apply a filter on the results /// </summary> /// <param name="id">role Id</param> /// <param name="pageId">page of results</param> /// <returns></returns> public ActionResult FilterByRole(int id, int pageId = 0) { UserControlsModel controls = new UserControlsModel { CurrentPage = pageId, SelectedRole = id }; /*construct model for view */ var model = new ManageUsersModel { Controls = controls, ReturningSearch = false }; model.Roles = _userManager.GetRoles(UserId).ToList(); //stop forgetting these roles, ok? controls.Roles = from r in _userManager.GetRoles(UserId) select new Tuple <int, string>(r.Id, r.Name); IEnumerable <IUserDto> users = new List <UserDto>(); if (id == 0) { users = (from u in _userManager.GetUsers(UserId) select u); } else if (id > 0) { users = (from u in _userManager.GetUsers(UserId) where u.Roles.Any(role => role.Id == id) select u); } List <UserDetailsModel> modelUsers = new List <UserDetailsModel>(); IAdSearch searcher = new AdSearch(); foreach (var user in users) { string displayName = null; //debugging with no AD if (user.Name == null) { try { displayName = searcher.GetUserDisplayName(user.AdGuid); } catch { displayName = "Name not found"; } } else { displayName = user.Name; } modelUsers.Add(new UserDetailsModel { UserDto = user, DisplayName = displayName }); } modelUsers = modelUsers.OrderBy(o => o.DisplayName).ToList(); if (modelUsers.Count() > _userPageSize) //pagination { model.Controls.TotalPages = ((modelUsers.Count() + _userPageSize - 1) / _userPageSize); //# pages modelUsers = modelUsers.Skip(_userPageSize * pageId).Take(_userPageSize).ToList(); //contents of the page } model.Users = modelUsers; return(View("ManageUsers", model)); }