コード例 #1
0
ファイル: UnitTest.cs プロジェクト: yeminyi/Demo
        private ScoreParameters GetScoreParaTestSession()
        {
            var session = new ScoreParameters()
            {
                PageSize  = 1,
                PageIndex = 0
            };

            return(session);
        }
コード例 #2
0
        public JsonResult Delete(int id)
        {
            var jsonSuccessResult = new JsonSuccessResult();

            try
            {
                ScoreParameters.Delete(id);
                jsonSuccessResult.Success = true;
            }
            catch (Exception ex)
            {
                jsonSuccessResult.Errors  = new string[] { ex.Message };
                jsonSuccessResult.Success = false;
            }

            return(new JsonResult()
            {
                Data = jsonSuccessResult
            });
        }
コード例 #3
0
ファイル: ScoreController.cs プロジェクト: yeminyi/Demo
        public async Task <IActionResult> Get(ScoreParameters scoreParameters)
        {
            //if (!_propertyMappingContainer.ValidateMappingExistsFor<ScoreResource, Score>(scoreParameters.OrderBy))
            //{
            //    return BadRequest("Can't finds fields for sorting.");
            //}

            //if (!_typeHelperService.TypeHasProperties<ScoreResource>(scoreParameters.Fields))
            //{
            //    return BadRequest("Fields not exist.");
            //}

            var scoreList = await _scoreRepository.GetAllScoresAsync(scoreParameters);

            var scoreResources = _mapper.Map <IEnumerable <Score>, IEnumerable <ScoreResource> >(scoreList);

            var result = scoreResources.ToDynamicIEnumerable(scoreParameters.Fields);

            var previousPageLink = scoreList.HasPrevious ?
                                   CreateScoreUri(scoreParameters, PaginationResourceUriType.PreviousPage) : null;

            var nextPageLink = scoreList.HasNext ?
                               CreateScoreUri(scoreParameters, PaginationResourceUriType.NextPage) : null;

            var meta = new
            {
                Pagesize        = scoreList.PageSize,
                PageIndex       = scoreList.PageIndex,
                TotalItemsCount = scoreList.TotalItemsCount,
                PageCount       = scoreList.PageCount,
                previousPageLink,
                nextPageLink
            };

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(meta, new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            }));

            return(Ok(result));
        }
コード例 #4
0
        public async Task <PaginatedList <Score> > GetAllScoresAsync(ScoreParameters scoreParameters)
        {
            var query = _myContext.Scores.AsQueryable();

            if (!string.IsNullOrEmpty(scoreParameters.GameTitle))
            {
                var title = scoreParameters.GameTitle.ToLowerInvariant();
                query = query.Where(x => x.GameTitle.ToLowerInvariant().Contains(title));
            }

            query = query.ApplySort(scoreParameters.OrderBy, _propertyMappingContainer.Resolve <ScoreResource, Score>());

            var count = await query.CountAsync();

            var data = await query
                       .Skip(scoreParameters.PageIndex *scoreParameters.PageSize)
                       .Take(scoreParameters.PageSize)
                       .ToListAsync();

            return(new PaginatedList <Score>(scoreParameters.PageIndex, scoreParameters.PageSize, count, data));
        }
コード例 #5
0
        public ActionResult Edit(EditScoreParameter editScoreParameter)
        {
            try
            {
                var parameter = Mapper.Map <ScoreParameter>(editScoreParameter);

                parameter.LastUpdate = DateTime.Now;

                ViewBag.Success = true;

                int scoreParameterID = parameter.ID;
                if (scoreParameterID == -1)
                {
                    ScoreParameters.Insert(parameter);
                    scoreParameterID = parameter.ID;

                    // ثبت و ویرایش گروه های انتخاب شده
                    SaveGroups(editScoreParameter, scoreParameterID);

                    UserNotifications.Send(UserID, String.Format("جدید - پارامتر امتیازدهی '{0}'", editScoreParameter.Title), "/Admin/ScoreParameters/Edit/" + editScoreParameter.ID, NotificationType.Success);
                    editScoreParameter = new EditScoreParameter();
                }
                else
                {
                    ScoreParameters.Update(parameter);

                    // ثبت و ویرایش گروه های انتخاب شده
                    SaveGroups(editScoreParameter, scoreParameterID);

                    editScoreParameter.Groups = GroupScoreParameters.GetByScoreParameterID(scoreParameterID).Select(item => item.GroupID).ToList();
                }
            }
            catch (Exception ex)
            {
                SetErrors(ex);
            }

            return(ClearView(editScoreParameter));
        }
コード例 #6
0
        public JsonResult Get(int pageIndex, int pageSize, string pageOrder, string title, string isActive)
        {
            bool?active = null;

            if (isActive != "-1")
            {
                active = Boolean.Parse(isActive);
            }

            var list = ScoreParameters.Get(pageIndex, pageSize, pageOrder, title, active);

            int total     = ScoreParameters.Count(title, active);
            int totalPage = (int)Math.Ceiling((decimal)total / pageSize);

            if (pageSize > total)
            {
                pageSize = total;
            }

            if (list.Count < pageSize)
            {
                pageSize = list.Count;
            }

            JsonResult result = new JsonResult()
            {
                Data = new
                {
                    TotalPages = totalPage,
                    PageIndex  = pageIndex,
                    PageSize   = pageSize,
                    Rows       = list
                },
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };

            return(result);
        }
コード例 #7
0
ファイル: ScoreController.cs プロジェクト: yeminyi/Demo
        private string CreateScoreUri(ScoreParameters parameters, PaginationResourceUriType uriType)
        {
            switch (uriType)
            {
            case PaginationResourceUriType.PreviousPage:
                var previousParameters = new
                {
                    pageIndex = parameters.PageIndex - 1,
                    pageSize  = parameters.PageSize,
                    orderBy   = parameters.OrderBy,
                    fields    = parameters.Fields,
                    title     = parameters.GameTitle
                };
                return(_urlHelper.Link("GetScores", previousParameters));

            case PaginationResourceUriType.NextPage:
                var nextParameters = new
                {
                    pageIndex = parameters.PageIndex + 1,
                    pageSize  = parameters.PageSize,
                    orderBy   = parameters.OrderBy,
                    fields    = parameters.Fields,
                    title     = parameters.GameTitle
                };
                return(_urlHelper.Link("GetScores", nextParameters));

            default:
                var currentParameters = new
                {
                    pageIndex = parameters.PageIndex,
                    pageSize  = parameters.PageSize,
                    orderBy   = parameters.OrderBy,
                    fields    = parameters.Fields,
                    title     = parameters.GameTitle
                };
                return(_urlHelper.Link("GetScores", currentParameters));
            }
        }
コード例 #8
0
        public ActionResult Edit(int?id)
        {
            EditScoreParameter parameter;

            if (id.HasValue)
            {
                var editScore = ScoreParameters.GetByID(id.Value);

                parameter = new EditScoreParameter
                {
                    ID       = editScore.ID,
                    IsActive = editScore.IsActive,
                    Title    = editScore.Title,
                    Groups   = GroupScoreParameters.GetByScoreParameterID(id.Value).Select(item => item.GroupID).ToList()
                };
            }
            else
            {
                parameter = new EditScoreParameter();
            }

            return(View(parameter));
        }
コード例 #9
0
 public void renderScore(string source, ScoreParameters parms,
                         Func<string, int, int, ScoreParameters, int> scoreFunction)
 {
     scoreFunction(source, 0, source.Length - 1, parms);
     parms.Render();
 }