예제 #1
0
        public async Task <CreateProdukOlahanResponse> Handle(CreateProdukOlahanRequest request, CancellationToken cancellationToken)
        {
            var result = new CreateProdukOlahanResponse();

            var entity = new ProdukOlahan
            {
                Name            = request.Name,
                JenisKomoditiID = request.JenisKomoditiID
            };

            await _context.ProdukOlahans.AddAsync(entity);

            await _context.SaveChangesAsync(cancellationToken);

            return(result);
        }
예제 #2
0
        public async Task <SeedProdukOlahanResponse> Handle(SeedProdukOlahanRequest request, CancellationToken cancellationToken)
        {
            var result = new SeedProdukOlahanResponse();

            var dataJSON = _fileService.ReadJSONFile <ProdukOlahanJSON>(FilePath.ProdukOlahanJSON);

            List <ProdukOlahan> produkOlahans = new List <ProdukOlahan>();

            var listDataJSON = dataJSON.rows.ToList();

            // collect data from db to temporary List
            var jenisKomoditis = await _context.JenisKomoditis
                                 .ToListAsync(cancellationToken);

            foreach (var data in listDataJSON)
            {
                ProdukOlahan produkOlahan = new ProdukOlahan();

                produkOlahan = produkOlahans
                               .SingleOrDefault(x => x.ProdukOlahanID == data.id_olahan);

                if (produkOlahan == null)
                {
                    string jenisKomoditiID = jenisKomoditis.Where(x => x.id_komoditi == data.id_komoditi_fk).FirstOrDefault().JenisKomoditiID ?? "";

                    produkOlahan = new ProdukOlahan
                    {
                        id_olahan       = data.id_olahan,
                        JenisKomoditiID = jenisKomoditiID,
                        Name            = data.nama_olahan
                    };

                    produkOlahans.Add(produkOlahan);

                    _context.ProdukOlahans.Add(produkOlahan);
                }
            }

            await _context.SaveChangesAsync(cancellationToken);

            result.IsSuccessful = true;

            return(result);
        }