Пример #1
0
        //ExportCSV
        public async Task <JsonResult> ExportUsers()
        {
            var response = await userService.GetAllExportDetailsAsync();

            var dt = response.ExportTable;

            var sb = new StringBuilder();

            foreach (DataColumn col in dt.Columns)
            {
                sb.Append(col.ColumnName + ',');
            }

            sb.Remove(sb.Length - 1, 1);
            sb.Append(Environment.NewLine);

            foreach (DataRow row in dt.Rows)
            {
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    sb.Append(row[i].ToString().Replace(",", "") + ",");
                }

                sb.Append(Environment.NewLine);
            }

            string id       = Guid.NewGuid().ToString();
            string filename = $"users-address-export-{string.Format("{0:yyyy-MM-dd}", DateTime.Today)}.csv";

            var myString    = sb.ToString();
            var myByteArray = System.Text.Encoding.UTF8.GetBytes(myString);
            var ms          = new MemoryStream(myByteArray);

            ms.Position  = 0;
            TempData[id] = ms.ToArray();

            return(Json(new
            {
                id,
                filename
            }));
        }