Example #1
0
        public async Task <CreateUphBahanBakuResponse> Handle(CreateUphBahanBakuRequest request, CancellationToken cancellationToken)
        {
            var result = new CreateUphBahanBakuResponse();

            var data = request;

            var entity = new UphBahanBaku
            {
                UphID  = data.UphID,
                id_uph = data.id_uph,

                id_bahan_baku   = data.id_bahan_baku,
                JenisKomoditiID = data.JenisKomoditiID,
                JenisTernakID   = data.JenisTernakID,
                SatuanID        = data.SatuanID,
                TotalKebutuhan  = data.TotalKebutuhan,
                AsalBahanBaku   = string.Join(",", request.AsalBahanBakus),
                Nilai           = data.Nilai
            };

            await _context.UphBahanBakus.AddAsync(entity);

            await _context.SaveChangesAsync(cancellationToken);

            result.UphBahanBakuID = entity.UphBahanBakuID;

            return(result);
        }
Example #2
0
        public async Task <SeedUphBahanBakuResponse> Handle(SeedUphBahanBakuRequest request, CancellationToken cancellationToken)
        {
            var result = new SeedUphBahanBakuResponse();

            var getAllBahanBaku = await _entityRepository.GetAllBahanBaku();

            List <UphBahanBaku> uphBahanBakus = new List <UphBahanBaku>();

            // collect temporary data from db
            var uphs = await _context.Uphs.AsNoTracking().ToListAsync(cancellationToken);

            var jenisTernaks = await _context.JenisTernaks.AsNoTracking().ToListAsync(cancellationToken);

            var jenisKomoditis = await _context.JenisKomoditis.AsNoTracking().ToListAsync(cancellationToken);

            var satuans = await _context.Satuans.AsNoTracking().ToListAsync(cancellationToken);

            var users = await _context.Users.AsNoTracking().ToListAsync(cancellationToken);

            var existingDatas = await _context.UphBahanBakus.AsNoTracking().ToListAsync(cancellationToken);

            #region Handle UPH BahanBaku
            foreach (var data in getAllBahanBaku)
            {
                if (existingDatas.Any(x => x.id_bahan_baku == data.id_bahan_baku))
                {
                    continue;
                }

                UphBahanBaku uphBahanBaku = new UphBahanBaku();

                string?uphID, jenisTernakID, jenisKomodtiID, satuanID, userID = "";

                uphBahanBaku = uphBahanBakus.FirstOrDefault(x => x.id_bahan_baku == data.id_bahan_baku);

                if (uphBahanBaku == null)
                {
                    var getUphID          = uphs.FirstOrDefault(x => x.id_uph == data.id_uph);
                    var getJenisTernakID  = jenisTernaks.FirstOrDefault(x => x.Name.Contains(data.jenis_ternak));
                    var getJenisKomodtiID = jenisKomoditis.FirstOrDefault(x => x.Name.Contains(data.bahan_utama));
                    var getSatuanID       = satuans.FirstOrDefault(x => x.Name.Contains(data.satuan));
                    var getUserID         = users.FirstOrDefault(x => x.id == data.user);

                    uphID          = getUphID != null ? getUphID.UphID : null;
                    jenisTernakID  = getJenisTernakID != null ? getJenisTernakID.JenisTernakID : null;
                    jenisKomodtiID = getJenisKomodtiID != null ? getJenisKomodtiID.JenisKomoditiID : null;
                    satuanID       = getSatuanID != null ? getSatuanID.SatuanID : null;
                    userID         = getUserID != null ? getUserID.UserID : null;

                    System.Console.WriteLine($"BEGIN Insert UphBahanBaku");

                    uphBahanBaku = new UphBahanBaku
                    {
                        id_bahan_baku = data.id_bahan_baku,
                        id_uph        = data.id_uph,

                        UphID           = uphID,
                        JenisKomoditiID = jenisKomodtiID,
                        JenisTernakID   = jenisTernakID,
                        SatuanID        = satuanID,

                        TotalKebutuhan = data.kebutuhan,
                        AsalBahanBaku  = data.asal,
                        Nilai          = data.nilai,
                        CreatedBy      = userID
                    };

                    uphBahanBakus.Add(uphBahanBaku);

                    _context.UphBahanBakus.Add(uphBahanBaku);

                    System.Console.WriteLine($"END Insert UphBahanBaku");
                }
            }

            await _context.SaveChangesAsync(cancellationToken);

            #endregion

            return(result);
        }