public IActionResult DownloadHeaderCSVJS([FromBody] Dictionary <string, object> param)
        {
            // ログインチェック
            if (!isLogin(param))
            {
                return(Unauthorized());
            }

            var searchCondition = new UserSearchCondition();

            if (param.ContainsKey("requestData"))
            {
                // パラメータの設定
                var requestData = param["requestData"] as Newtonsoft.Json.Linq.JObject;
                searchCondition = getUserSearchCondition(requestData);
            }

            var csvData = new System.Text.StringBuilder();

            try
            {
                // データ取得とCSV文字列取得
                var models    = service.GetAllUsers(searchCondition);
                var generator = new CSVGenerator <UserModel>();
                foreach (var model in models)
                {
                    generator.Add(model);
                }
                csvData.AppendLine(generator.GetCSV(true, getDownloadColumnUserModel()));
            }
            catch (Exception ex)
            {
                logger.LogCritical("{0}", ex.Message);
                return(BadRequest());
            }

            var status  = ResponseDTO.Results.OK;
            var message = string.Empty;
            var data    = new Dictionary <string, string>();

            if (csvData.Length > 0)
            {
                data.Add("csv", csvData.ToString());

                // サンプルのファイル名
                string fileName = string.Format("テスト_{0:yyyyMMddHHmmss}.csv", DateTime.Now);
                fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);
                data.Add("filename", fileName);
            }
            else
            {
                status  = ResponseDTO.Results.NG;
                message = SearchResultZero;
            }

            return(Json(new ResponseDTO(status, message, data)));
        }
        public ActionResult DownloadHeaderCSV(string json)
        {
            var csvData = new System.Text.StringBuilder();

            try
            {
                if (!string.IsNullOrEmpty(json))
                {
                    var param = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, object> >(json);

                    // ログインチェック
                    if (!isLogin(param))
                    {
                        return(LocalRedirect("/"));
                    }

                    // 検索条件の存在確認
                    if (param.ContainsKey("requestData"))
                    {
                        var requestData = Newtonsoft.Json.JsonConvert.DeserializeObject <UserSearchCondition>(param["requestData"].ToString());

                        // データ取得とCSV文字列取得
                        var models    = service.GetAllUsers(requestData);
                        var generator = new CSVGenerator <UserModel>();
                        foreach (var model in models)
                        {
                            generator.Add(model);
                        }
                        csvData.AppendLine(generator.GetCSV(true, getDownloadColumnUserModel()));
                    }
                }
            }
            catch (Exception ex)
            {
                logger.LogCritical("{0}", ex.Message);
                return(LocalRedirect("/"));
            }

            // サンプルのファイル名
            string fileName = string.Format("テスト_{0:yyyyMMddHHmmss}.csv", DateTime.Now);

            fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);

            // ファイル名を設定
            Response.Headers.Add("Content-Disposition", "attachment; filename=" + fileName);

            return(Content(csvData.ToString(), "text/csv"));
        }