public IActionResult GetAll(string name, string clientType, uint skip, uint limit) { var criterias = new UserClientSearchDto() { UserName = User.Identity.Name, Name = name, ClientType = clientType, Skip = skip, Limit = limit }; var count = _service.SearchCount(criterias); Request.HttpContext.Response.Headers.Add("X-Total-Count", count.ToString()); if (Request.Method.Equals("head", StringComparison.OrdinalIgnoreCase)) { return(Ok()); } else { var clients = _service.Search(criterias); var currentUrl = Request.GetDisplayUrl(); return(Ok(clients.ToSearchResult <UserClientListDto>(currentUrl, count, criterias))); } }
public int SearchCount(UserClientSearchDto criterias) { Validate(criterias, ExtendValidationSearchCriterias); var count = 0; using (var c = RepositoriesFactory.CreateContext()) { var userClientRepo = RepositoriesFactory.GetUserClientRepository(c); count = userClientRepo.GetAllByCriteriasCount(criterias.UserName, criterias.Name, true, GetClientTypeId(criterias.ClientType)); } return(count); }
public IEnumerable <UserClientListDto> Search(UserClientSearchDto criterias) { Validate(criterias, ExtendValidationSearchCriterias); IList <UserClient> clients = null; var clientTypeId = GetClientTypeId(criterias.ClientType); using (var context = RepositoriesFactory.CreateContext()) { var clientRepo = RepositoriesFactory.GetUserClientRepository(context); clients = clientRepo.GetAllByCriterias(criterias.UserName, criterias.Name, true, clientTypeId, criterias.Skip, criterias.Limit).ToList(); } return(clients != null?clients.ToDto(criterias.UserName) : new List <UserClientListDto>()); }
private IList <ValidationResult> ExtendValidationSearchCriterias(UserClientSearchDto c) { var resource = this.GetErrorStringLocalizer(); IList <ValidationResult> result = new List <ValidationResult>(); using (var context = RepositoriesFactory.CreateContext()) { var userRepo = RepositoriesFactory.GetUserRepository(context); var user = userRepo.GetByUserName(c.UserName); if (user == null || !user.IsValid) { result.Add(new ValidationResult(String.Format(resource["SearchClientInvalidUser"], c))); } } if (c.Limit - c.Skip > 50) { result.Add(new ValidationResult(String.Format(resource["SearchClientAskTooMuch"], c))); } return(result); }