Exemplo n.º 1
0
        /// <summary>
        /// 驗證車隊搜尋指令資料
        /// </summary>
        /// <param name="teamSearchCommand">teamSearchCommand</param>
        /// <returns>bool</returns>
        private bool VerifyTeamSearchCommand(TeamSearchCommandDto teamSearchCommand)
        {
            if (teamSearchCommand == null)
            {
                return(false);
            }

            if (string.IsNullOrEmpty(teamSearchCommand.SearcherID))
            {
                return(false);
            }

            if (string.IsNullOrEmpty(teamSearchCommand.SearchKey))
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Post(TeamSearchCommandDto teamSearchCommand)
        {
            try
            {
                Tuple <IEnumerable <TeamInfoDto>, string> result = await this.teamService.SearchTeam(teamSearchCommand);

                if (string.IsNullOrEmpty(result.Item2))
                {
                    return(Ok(result.Item1));
                }

                return(BadRequest(result.Item2));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Search Team Error >>> SearcherID:{teamSearchCommand.SearcherID} SearchKey:{teamSearchCommand.SearchKey}\n{ex}");
                return(BadRequest("搜尋車隊資訊列表發生錯誤."));
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 搜尋車隊
        /// </summary>
        /// <param name="teamSearchCommand">teamSearchCommand</param>
        /// <returns>Tuple(TeamInfoDtos, string)</returns>
        public async Task <Tuple <IEnumerable <TeamInfoDto>, string> > SearchTeam(TeamSearchCommandDto teamSearchCommand)
        {
            try
            {
                bool verifyTeamSearchCommandResult = this.VerifyTeamSearchCommand(teamSearchCommand);
                if (!verifyTeamSearchCommandResult)
                {
                    this.logger.LogError($"Search Team Fail For Verify TeamSearchCommand >>> SearcherID:{teamSearchCommand.SearcherID} SearchKey:{teamSearchCommand.SearchKey}");
                    return(Tuple.Create <IEnumerable <TeamInfoDto>, string>(null, "搜尋車隊失敗"));
                }

                int searchOpenStatus             = (int)TeamSearchStatusType.Open;
                IEnumerable <TeamData> teamDatas = await this.teamRepository.GetTeamDataListByTeamName(teamSearchCommand.SearchKey, false);

                IEnumerable <TeamData> allowTeamDatas = teamDatas.Where(data => !data.TeamBlacklistIDs.Contains(teamSearchCommand.SearcherID) && data.TeamSearchStatus == searchOpenStatus);
                return(Tuple.Create(this.mapper.Map <IEnumerable <TeamInfoDto> >(allowTeamDatas), string.Empty));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Search Team Error >>> SearcherID:{teamSearchCommand.SearcherID} SearchKey:{teamSearchCommand.SearchKey}\n{ex}");
                return(Tuple.Create <IEnumerable <TeamInfoDto>, string>(null, "搜尋車隊發生錯誤."));
            }
        }