Esempio n. 1
0
 public GateTruckLastCheckUpVieModel(TruckIncomming model)
 {
     Model          = model;
     Items          = new ObservableCollection <IncommingNote>(Model.Notes);
     ApproveCommand = new Command(ApproveAction);
     RejectCommand  = new Command(RejectAction);
 }
Esempio n. 2
0
 public GateTruckLastCheckUp(TruckIncomming model)
 {
     InitializeComponent();
     BindingContext = new GateTruckLastCheckUpVieModel(model);
 }
        public async Task <TruckIncomming> Approve(int id, List <HasilPemeriksaan> hasil, bool status)
        {
            using (var transaction = await _context.Database.BeginTransactionAsync()){
                try
                {
                    if (hasil == null || hasil.Count <= 0)
                    {
                        throw new SystemException("Hasil Pemeriksaan Tidak Ditekuan..!");
                    }

                    var itemPengajuan = _context.PengajuanItems.Where(x => x.Id == id)
                                        .Include(x => x.Truck).AsNoTracking().FirstOrDefault();

                    if (itemPengajuan == null)
                    {
                        throw new SystemException("Data Truck Not Found..!");
                    }

                    var incomming = new TruckIncomming()
                    {
                        Truck   = itemPengajuan.Truck,
                        Notes   = new List <IncommingNote>(),
                        Created = DateTime.Now,
                        Status  = status
                    };

                    _context.ChangeTracker.Clear();
                    _context.Attach(incomming);
                    _context.Entry(incomming.Truck).State = EntityState.Unchanged;

                    foreach (var item in hasil)
                    {
                        if (!item.Hasil)
                        {
                            incomming.Notes.Add(new IncommingNote
                            {
                                Note = $"Tindak Lanjut : {item.TindakLanjut} \n\r Keterangan : {item.Keterangan}",
                                CompensationDeadline = item.CompensationDeadline
                            });
                        }
                    }

                    _context.TruckIncommings.Add(incomming);
                    var intResult = await _context.SaveChangesAsync();

                    if (intResult <= 0)
                    {
                        throw new SystemException("Data Pemeriksaaan Tidak Berhasil Dibuat, Coba Ulangi Lagi !");
                    }
                    await transaction.CommitAsync();

                    return(incomming);
                }
                catch (System.Exception ex)
                {
                    await transaction.RollbackAsync();

                    throw new SystemException(ex.Message);
                }
            }
        }