Ejemplo n.º 1
0
        public SuratDinasModel Propose(SuratDinasAddDto suratDinas)
        {
            //  CHECK ARGUMENT
            suratDinas.Empty().Throw("Data Surat Dinas kosong");

            //  CONVERT DTO >> MODEL
            var sd = new SuratDinasModel
            {
                TglJamCreate = DateTime.Now,
                PegID        = suratDinas.PegID,
                NoSurat      = suratDinas.NoSurat,
                NoKontrak    = suratDinas.NoKontrak,
                TglMulai     = suratDinas.TglMulai,
                TglSelesai   = suratDinas.TglSelesai,
                Keperluan    = suratDinas.Keperluan,
                TransportID  = suratDinas.TransportID,
                KMAwal       = suratDinas.KMAwal,
                RSID         = suratDinas.RSID,
                JenisBiayaID = suratDinas.JenisBiayaID,
                KasBon       = suratDinas.KasBon,
                ListApproval =
                    from c in suratDinas.ListApproval
                    select new SuratDinasApprovalModel
                {
                    PegID          = c.PegID,
                    ApprovalTypeID = c.ApprovalTypeID,
                }
            };

            //  VALIDATE MODEL
            Validate(sd);

            //  UPDATE REPO
            using (var trans = TransHelper.NewScope())
            {
                //  generate id
                sd.SuratDinasID = _paramNoBL.GenNewID("LG", ParamNoLengthEnum.Code_13);

                foreach (var item in sd.ListApproval)
                {
                    item.SuratDinasID = sd.SuratDinasID;
                }

                //  insert ke db
                _suratDinasDal.Insert(sd);
                _suratDinasApprovalDal.Delete(sd);
                foreach (var item in sd.ListApproval)
                {
                    _suratDinasApprovalDal.Insert(item);
                }

                //  commit changes
                trans.Complete();
            }

            return(sd);
        }
 public IHttpActionResult CreateSuratDinas(SuratDinasAddDto surat)
 {
     try
     {
         var result = _suratDinasBL.Propose(surat);
         return(Ok(result));
     }
     catch (ArgumentException ex)
     {
         return(BadRequest(ex.Message));
     }
 }