public IActionResult DownloadTemplate() { try { byte[] csvInBytes; var csv = Service.DownloadTemplate(); string fileName = "Machine Spinnings Template.csv"; csvInBytes = csv.ToArray(); var file = File(csvInBytes, "text/csv", fileName); return(file); } catch (Exception e) { Dictionary <string, object> Result = new Utils.ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }
public IActionResult GetLoaderByUnitType(int page = 1, int size = 25, string order = "{}", [Bind(Prefix = "Select[]")] List <string> select = null, string keyword = null, string filter = "{}") { try { Lib.Helpers.ReadResponse <MachineSpinningModel> read = Service.ReadNoOnly(page, size, order, select, keyword, filter); List <MachineSpinningViewModel> dataVM = Mapper.Map <List <MachineSpinningViewModel> >(read.Data); dataVM = dataVM.Where(x => x.Types.Any(y => y.Type.Equals("Blowing", StringComparison.OrdinalIgnoreCase))).ToList(); Dictionary <string, object> Result = new Utils.ResultFormatter(ApiVersion, General.OK_STATUS_CODE, General.OK_MESSAGE) .Ok(Mapper, dataVM, page, size, read.Count, dataVM.Count, read.Order, read.Selected); return(Ok(Result)); } catch (Exception e) { Dictionary <string, object> Result = new Utils.ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }
public async Task <IActionResult> PostCSVFileAsync() { try { if (Request.Form.Files.Count > 0) { VerifyUser(); var uploadedFile = Request.Form.Files[0]; var reader = new StreamReader(uploadedFile.OpenReadStream()); var fileHeader = new List <string>(reader.ReadLine().Split(",")); var validHeader = _service.CsvHeader.SequenceEqual(fileHeader, StringComparer.OrdinalIgnoreCase); if (validHeader) { reader.DiscardBufferedData(); reader.BaseStream.Seek(0, SeekOrigin.Begin); reader.BaseStream.Position = 0; var csv = new CsvReader(reader); csv.Configuration.IgnoreQuotes = false; csv.Configuration.Delimiter = ","; csv.Configuration.RegisterClassMap <BudgetingCategoryMap>(); csv.Configuration.HeaderValidated = null; var data = csv.GetRecords <BudgetingCategory>().ToList(); Tuple <bool, List <object> > Validated = _service.UploadValidate(data, Request.Form.ToList()); reader.Close(); if (Validated.Item1) /* If Data Valid */ { await _service.UploadData(data); var response = new ResultFormatter(ApiVersion, General.CREATED_STATUS_CODE, General.OK_MESSAGE).Ok(); return(Created(HttpContext.Request.Path, response)); } else { using (var memoryStream = new MemoryStream()) { using (var streamWriter = new StreamWriter(memoryStream)) using (var csvWriter = new CsvWriter(streamWriter)) { csvWriter.WriteRecords(Validated.Item2); } return(File(memoryStream.ToArray(), ContentType, FileName)); } } } else { var response = new Utils.ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, General.CSV_ERROR_MESSAGE).Fail(); return(NotFound(response)); } } else { var response = new Utils.ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.NO_FILE_ERROR_MESSAGE).Fail(); return(BadRequest(response)); } } catch (TypeConverterException ex) { var response = new Utils.ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, "Rate diisi huruf\n" + ex.Message).Fail(); return(StatusCode((int)HttpStatusCode.InternalServerError, response)); } catch (Exception e) { var response = new Utils.ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message).Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, response)); } }
public async Task <IActionResult> PostCSVFileAsync() { try { if (Request.Form.Files.Count > 0) { VerifyUser(); var UploadedFile = Request.Form.Files[0]; StreamReader Reader = new StreamReader(UploadedFile.OpenReadStream()); List <string> FileHeader = new List <string>(Reader.ReadLine().Split(",")); var ValidHeader = Service.CsvHeader.SequenceEqual(FileHeader, StringComparer.OrdinalIgnoreCase); if (ValidHeader) { Reader.DiscardBufferedData(); Reader.BaseStream.Seek(0, SeekOrigin.Begin); Reader.BaseStream.Position = 0; CsvReader Csv = new CsvReader(Reader); Csv.Configuration.IgnoreQuotes = false; Csv.Configuration.Delimiter = ","; Csv.Configuration.RegisterClassMap <MachineSpinningService.MachineSpinningMap>(); Csv.Configuration.HeaderValidated = null; List <MachineSpinningCsvViewModel> Data = Csv.GetRecords <MachineSpinningCsvViewModel>().ToList(); Tuple <bool, List <object> > Validated = Service.UploadValidate(Data, Request.Form.ToList()); Reader.Close(); if (Validated.Item1) /* If Data Valid */ { List <MachineSpinningModel> data = Service.MapFromCsv(Data); await Service.UploadData(data); Dictionary <string, object> Result = new Utils.ResultFormatter(ApiVersion, General.CREATED_STATUS_CODE, General.OK_MESSAGE) .Ok(); return(Created(HttpContext.Request.Path, Result)); } else { using (MemoryStream memoryStream = new MemoryStream()) { using (StreamWriter streamWriter = new StreamWriter(memoryStream)) using (CsvWriter csvWriter = new CsvWriter(streamWriter)) { csvWriter.WriteRecords(Validated.Item2); } return(File(memoryStream.ToArray(), ContentType, FileName)); } } } else { Dictionary <string, object> Result = new Utils.ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, General.CSV_ERROR_MESSAGE) .Fail(); return(NotFound(Result)); } } else { Dictionary <string, object> Result = new Utils.ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.NO_FILE_ERROR_MESSAGE) .Fail(); return(BadRequest(Result)); } } catch (TypeConverterException ex) { Dictionary <string, object> Result = new Utils.ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, "Tahun, Delivery atau Kapasitas diisi huruf\n" + ex.Message) .Fail(); return(StatusCode((int)HttpStatusCode.InternalServerError, Result)); } catch (Exception e) { Dictionary <string, object> Result = new Utils.ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }