Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #4
0
        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));
            }
        }