using Google.Apis.Auth; using Google.Apis.Http; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Identity.Client.Platforms.Features.DesktopOs.Kerberos; using Microsoft.IdentityModel.Tokens; using System.Configuration; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text; using WebAPI.dataParsers; using WebAPI.Models; namespace WebAPI.Controllers { [ApiController] [Route("api/[controller]")] [Authorize] public class DataSetsController : Controller { private readonly AppDbContext db; public DataSetsController(AppDbContext _db) { db = _db; } [HttpGet] public IActionResult GetAll() { try { return Ok(db.DataSets.Where(x => !x.IsDeleted).ToList()); } catch (Exception e) { return BadRequest(e.ToString()); } } [HttpPost] public IActionResult Save(DataSet input) { try { Request.Headers.TryGetValue("userId", out var value); Guid currentUserId = new Guid(value); return Ok(AddDataSet(input, currentUserId).Id); } catch(Exception e) { return BadRequest(e.ToString()); } } [HttpPost] [DisableRequestSizeLimit] [Route("parseFile")] public IActionResult ParseFile() { var parser = new csvParser(); return Ok(parser.parse(Request.Form.Files[0])); } // private DataSet AddDataSet(DataSet input, Guid currentUserId) { input.Number = db.DataSets.Count() + 1; input.CreatedById = currentUserId; input.ModifiedById = currentUserId; input.CreatedAt = DateTime.UtcNow; input.ModifiedAt = DateTime.UtcNow; db.DataSets.Add(input); SaveDataRows(input.Id, input.DataRows, currentUserId); db.SaveChanges(); return input; } private void SaveDataRows(Guid id, ICollection dataRows, Guid currentUserId) { try { List ids = new List(); foreach (Models.DataRow dataRow in dataRows) { dataRow.CreatedById = currentUserId; dataRow.CreatedAt = DateTime.UtcNow; dataRow.ModifiedById = currentUserId; dataRow.ModifiedAt = DateTime.UtcNow; dataRow.DataSetId= id; db.DataRows.Add(dataRow); } } catch (Exception) { throw; } } } }