Beispiel #1
0
        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)));
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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>());
        }
Beispiel #4
0
        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);
        }