Пример #1
0
        public async Task <PaginatedList <Goal> > GetAsync(GoalQuery goalQuery)
        {
            var query = Context.Goals
                        .Include(g => g.Club)
                        .Include(g => g.Player)
                        .AsQueryable();

            if (goalQuery.MatchId.HasValue)
            {
                query = query.Where(g => g.MatchId == goalQuery.MatchId);
            }

            var columnsMap = new Dictionary <string, Expression <Func <Goal, object> > >()
            {
                ["id"]        = g => g.Id,
                ["club"]      = g => g.Club.Name,
                ["player"]    = g => g.Player.Name,
                ["goalType"]  = g => g.GoalType,
                ["isOwnGoal"] = g => g.IsOwnGoal,
                ["goalTime"]  = g => g.GoalTime,
            };

            query = query.Sort(goalQuery, columnsMap);

            return(await PaginatedList <Goal> .CreateAsync(query, goalQuery.PageNumber, goalQuery.PageSize));
        }
        /// <summary>
        /// 目标查询
        /// </summary>
        /// <param name="goalname"></param>
        /// <param name="goaltype"></param>
        /// <param name="goalleave"></param>
        /// <param name="goalrole"></param>
        /// <param name="goaluser"></param>
        /// <param name="strTime"></param>
        /// <param name="endTime"></param>
        /// <param name="goalstate"></param>
        /// <returns></returns>
        public GoalQuery GoalQueryList(int pageIndex, int pageSize, string goalname, int goaltype, int goalleave, string goalrole, string goaluser, string strTime, string endTime, int goalstate = 0)
        {
            string sql = string.Format("select goal.Goal_Name,indexlevel.IndexLevel_Grade,goaltype.GoalType_Name, " +
                                       "role.Role_Name,`user`.User_Name, goal.Goal_EndTime, feedback.Feedback_NowEvolve from goal " +
                                       "join indexlevel on goal.IndexLevel_Id = indexlevel.IndexLevel_Id " +
                                       "join goaltype on goal.GoalType_Id = goaltype.GoalType_Id " +
                                       "join role on Goal_DutyCommanyId = role.Role_Id " +
                                       "join user on Goal_DutyUserId = user.User_Id join feedback on goal.Feedback_Id = feedback.Feedback_Id where 1=1 ");

            if (goalstate != 0)
            {
                sql += string.Format("  and goal.GoalState_Id={0}", goalstate);
            }
            if (!string.IsNullOrEmpty(goalname))
            {
                sql += string.Format("  and goal.Goal_Name like '%{0}%'", goalname);
            }
            if (goaltype != 0)
            {
                sql += string.Format(" and goaltype.GoalType_Id={0}", goaltype);
            }
            if (goalleave != 0)
            {
                sql += string.Format(" and indexlevel.IndexLevel_Id={0}", goalleave);
            }
            if (!string.IsNullOrEmpty(goalrole))
            {
                sql += string.Format("  and role.Role_Name like '%{0}%'", goalrole);
            }
            if (!string.IsNullOrEmpty(goaluser))
            {
                sql += string.Format("  and user.User_Name like '%{0}%'", goaluser);
            }
            if (!string.IsNullOrEmpty(strTime) && !string.IsNullOrEmpty(endTime))
            {
                sql += string.Format("  and goal.Goal_EndTime BETWEEN '{0} 00:00:00' and '{1} 23:59:59'", strTime, endTime);
            }

            int    i        = (pageIndex - 1) * pageSize;
            string sqlcount = string.Format("select count(*) as count from ({0}) as a", sql);

            sql += string.Format(" limit {0},{1}", i, pageSize);


            var count = Context.TotalCount.FromSql(sqlcount).FirstOrDefault();

            var       query     = Context.GoalQuery.FromSql(sql).ToList();
            GoalQuery goalQuery = new GoalQuery
            {
                goalQueryList = query,
                TotalCount    = count.count
            };


            return(goalQuery);
        }
Пример #3
0
        public async Task <IActionResult> GetGoals(int matchId, [FromQuery] GoalQuery goalQuery)
        {
            goalQuery.MatchId = matchId;

            var goals = await _goalService.GetAsync(goalQuery);

            var returnGoals = _mapper.Map <PaginatedList <GoalListDto> >(goals);

            return(Ok(returnGoals));
        }
Пример #4
0
        public async Task GetAsync_WhenGoalDoesntExists_ShouldPerformCorrectly(
            SqlConnectionFactory sqlConnectionFactory)
        {
            // Arrange
            var goalId = Guid.NewGuid();
            var sut    = new GoalQuery(sqlConnectionFactory);

            // Act
            var result = await sut.GetAsync(goalId);

            // Asserts
            result.Should().BeNull();
        }
Пример #5
0
        public async Task GetAsync_ShouldPerformCorrectly(
            SqlConnectionFactory sqlConnectionFactory)
        {
            // Arrange
            var goalId = new Guid("ca41679d-ffb0-4899-a357-9f4de75d278a");
            var sut    = new GoalQuery(sqlConnectionFactory);

            // Act
            var result = await sut.GetAsync(goalId);

            // Asserts
            result.Should().NotBeNull();
            result.Id.Should().Be(new Guid("ca41679d-ffb0-4899-a357-9f4de75d278a"));
            result.Title.Should().Be("Check E-mails");
            result.Count.Should().Be(50);
        }
Пример #6
0
 public GoalsController(AllGoalsQuery allGoalsQuery,
                        UserGoalsQuery userGoalsQuery,
                        GoalQuery goalQuery,
                        CreateGoalCommand createGoalCommand,
                        UpdateGoalCommand updateGoalCommand,
                        DeleteGoalCommand deleteGoalCommand,
                        CompleteGoalCommand completeGoalCommand)
 {
     this.allGoalsQuery       = allGoalsQuery;
     this.userGoalsQuery      = userGoalsQuery;
     this.goalQuery           = goalQuery;
     this.createGoalCommand   = createGoalCommand;
     this.updateGoalCommand   = updateGoalCommand;
     this.deleteGoalCommand   = deleteGoalCommand;
     this.completeGoalCommand = completeGoalCommand;
 }
Пример #7
0
        public async Task GetAllAsync_ShouldReturnCorrectly(
            SqlConnectionFactory sqlConnectionFactory)
        {
            // Arrange
            var sut = new GoalQuery(sqlConnectionFactory);

            // Act
            var result = await sut.GetAllAsync();

            // Asserts
            result.Should().Contain(g =>
                                    g.Title == "Study English" &&
                                    g.Count == 110);
            result.Should().Contain(g =>
                                    g.Title == "Workout" &&
                                    g.Count == 77);
            result.Should().Contain(g =>
                                    g.Title == "Create Portfolio" &&
                                    g.Count == 40);
        }
 public async Task <PaginatedList <Goal> > GetAsync(GoalQuery goalQuery)
 {
     return(await _goalRepository.GetAsync(goalQuery));
 }