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); }
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)); }
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(); }
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); }
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; }
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)); }