示例#1
0
        public IActionResult GetOwnerById(Guid id, [FromQuery] OwnerQueryStringParams ownerParameters)
        {
            try
            {
                var owner = _repositoryWrapper.Owner.GetOwnerById(id);

                if (owner == null)
                {
                    return(NotFound());
                }
                else
                {
                    var ownerDto = _mapper.Map <OwnerDto>(owner);
                    return(Ok(ownerDto.shapeObject(ownerParameters.fields)));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, "Internal server error"));
            }
        }
示例#2
0
        public PagedList <Owner> GetOwners(OwnerQueryStringParams ownerParameters)
        {
            var y = RepositoryContext.Owners.FromSqlRaw($"EXEC FirstProcedure '144F038F-1A9E-4522-0D01-08D7D7359868'").ToList();

            foreach (var a in y)
            {
                Console.WriteLine("jjjjjjjjjjjjjjjjjj {}");
            }

            var owners = FindByCondition(o => o.DateOfBirth.Year >= ownerParameters.MinYearOfBirth &&
                                         o.DateOfBirth.Year <= ownerParameters.MaxYearOfBirth)
                         .Include(o => o.Accounts).OrderByQueryOrDefault(ownerParameters.OrderBy, "Name");
            var count = owners.Count();

            SearchByName(ref owners, ownerParameters.Name);
            var ownersList = owners.Paginate(ownerParameters.PageSize, ownerParameters.PageNumber)
                             .ToList();

            return(new PagedList <Owner>(ownersList,
                                         count,
                                         ownerParameters.PageNumber,
                                         ownerParameters.PageSize
                                         ));
        }
示例#3
0
        public IActionResult GetOwners([FromQuery] OwnerQueryStringParams ownerParameters)
        {
            if (!ownerParameters.ValidYearRange)
            {
                return(BadRequest("Max year of birth cannot be less than min year of birth"));
            }

            var owners    = _repositoryWrapper.Owner.GetOwners(ownerParameters);
            var ownersDto = _mapper.Map <IEnumerable <Owner>, IEnumerable <OwnerDto> >(owners);
            var metadata  = new
            {
                owners.TotalCount,
                owners.PageSize,
                owners.CurrentPage,
                owners.TotalPages,
                owners.HasNext,
                owners.HasPrevious
            };
            var shapedOwnersDto = ownersDto.SelectByFieldsQuery(ownerParameters.fields);

            foreach (ExpandoObject expandoOwner in shapedOwnersDto)
            {
                var    dict = ((IDictionary <string, object>)expandoOwner);
                Object value;
                dict.TryGetValue("OwnerId", out value);
                dict.Add("links", CreateLinksForOwner((Guid)value));
            }
            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
            LinkCollectionWrapper collectionWrapper = new LinkCollectionWrapper()
            {
                Value = shapedOwnersDto.ToList(),
                Links = CreateLinksForOwners(ownerParameters.fields)
            };

            return(Ok(collectionWrapper));
        }