示例#1
0
        public async Task <APIResult> PostAsync(SuggestionRequestDTO suggestionRequestDTO)
        {
            token        = appStatus.SystemStatus.Token;
            encodingType = EnctypeMethod.JSON;
            needSave     = false;
            isCollection = false;
            routeUrl     = $"";

            #region 要傳遞的參數
            //Dictionary<string, string> dic = new Dictionary<string, string>();
            WebQueryDictionary dic = new WebQueryDictionary();

            // ---------------------------- 另外兩種建立 QueryString的方式
            //dic.Add(Global.getName(() => memberSignIn_QS.app), memberSignIn_QS.app);
            //dic.AddItem<string>(() => 查詢資料QueryString.strHospCode);
            //dic.Add("Price", SetMemberSignUpVM.Price.ToString());
            dic.Add(LOBGlobal.JSONDataKeyName, JsonConvert.SerializeObject(suggestionRequestDTO));
            #endregion

            var mr = await this.SendAsync(dic, HttpMethod.Post, CancellationToken.None);

            //mr.Success = false;
            //mr.Message = "測試用的錯誤訊息";
            return(mr);
        }
        public async Task <IActionResult> PostSuggestion([FromBody] SuggestionRequestDTO suggestionRequestDTO)
        {
            var claimSID = User.FindFirst(JwtRegisteredClaimNames.Sid)?.Value;

            if (claimSID == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest,
                                                   ErrorMessageEnum.杖中沒有發現指定使用者ID);
                return(BadRequest(apiResult));
            }
            UserID = Convert.ToInt32(claimSID);
            var fooUser = await _context.LobUsers.Include(x => x.Department).FirstOrDefaultAsync(x => x.Id == UserID);

            if (fooUser == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound,
                                                   ErrorMessageEnum.沒有發現指定的該使用者資料);
                return(NotFound(apiResult));
            }

            Suggestion fooObject = new Suggestion()
            {
                Subject    = suggestionRequestDTO.Subject,
                Message    = suggestionRequestDTO.Message,
                SubmitTime = suggestionRequestDTO.SubmitTime,
                User       = fooUser,
            };

            _context.Suggestions.Add(fooObject);
            await _context.SaveChangesAsync();

            SuggestionResponseDTO SuggestionResponseDTO = new SuggestionResponseDTO()
            {
                Subject    = fooObject.Subject,
                Message    = fooObject.Message,
                SubmitTime = fooObject.SubmitTime,
                User       = new UserDTO()
                {
                    Id = fooUser.Id
                },
            };

            apiResult = APIResultFactory.Build(true, StatusCodes.Status200OK,
                                               ErrorMessageEnum.None, payload: SuggestionResponseDTO);
            return(Ok(apiResult));
        }