示例#1
0
        public RecordsDto GetItems(int pageSize, int pageNumber, string search)
        {
            pageSize = 3;
            var query = _recordRepository.GetAllQueryable();

            if (!string.IsNullOrEmpty(search))
            {
                query = query.Where(g => g.Client.Name.ToUpper().Contains(search.ToUpper()));
            }
            var _totalRecords = query.Count(); //kilkist zagalna
            var _pageCount    = (int)Math.Ceiling(_totalRecords / (double)pageSize);

            var items = query.Include(a => a.Client)
                        .Include(a => a.Procedure)
                        .Include(a => a.Product)
                        .Skip((pageSize * pageNumber) - pageSize)
                        .Take(pageSize)
                        .ToList()
                        .Select(s => s.MapToDto())
                        .ToList();
            var dto = new RecordsDto
            {
                pageItems = items,
                pageCount = _pageCount
            };

            return(dto);
        }
示例#2
0
        public static RecordsViewModel MapToViewModel(this RecordsDto dto)
        {
            if (dto == null)
            {
                return(null);
            }

            return(new RecordsViewModel
            {
                Items = dto.pageItems.Select(g => g.MapToViewModel()).ToList(),
                Count = dto.pageCount
            });
        }
示例#3
0
        public Option <JObject> CreateRecordsDto(User user, TimeFrame timeFrame)
        {
            var topTrackList = _billboardDbContext.TopTrackLists.FirstOrDefault(ttl => (ttl.TimeFrame == timeFrame) && (ttl.User.Id == user.Id));

            if (topTrackList == null)
            {
                return(Option.None <JObject>());
            }

            var tracks = _billboardDbContext.Tracks.Where(t => t.TopTrackList.TopTrackListId == topTrackList.TopTrackListId).ToList();

            var numberOnes  = tracks.OrderByDescending(t => t.TimeAtNumberOne).Take(3);
            var topInCharts = tracks.OrderByDescending(t => t.TimeOnChart).Take(3);

            var recordsDto = new RecordsDto
            {
                LongestNumberOne       = CreateSingleRecordList(numberOnes),
                LongestTimeInChart     = CreateSingleRecordList(topInCharts),
                LongestNumberOneCons   = null,
                LongestTimeInChartCons = null
            };

            return(Option.Some(JObject.Parse(JsonConvert.SerializeObject(recordsDto))));
        }
        /// <summary>
        /// this method is used to create a success resoponse with successStatus class object for early return situations
        /// </summary>
        /// <param name="code">status code</param>
        /// <param name="data">data for response</param>
        /// <param name="records">records for pagination</param>
        /// <returns>it will return a success response with particular statusCode</returns>
        public static HttpResponseMessage CreateCompleteSuccessResponse(HttpStatusCode code, object data, RecordsDto records)
        {
            var successStatus = new SuccessStatusDto()
            {
                Data = data, Record = records
            };

            return(CreateResponse(code, successStatus));
        }