public static Personal PersonalGet(int Id) { Personal o = new Personal(); try { o.Id = Id; PersonalMng oMng = new PersonalMng(); oMng.O_Personal = o; oMng.selById(); Personal_archivosMng oPAMng = new Personal_archivosMng(); Personal_archivos oPA = new Personal_archivos() { Id_personal = Id }; oPAMng.O_Personal_archivos = oPA; oPAMng.selByIdPersonal(); o.lstArchivos = oPAMng.Lst; o.PQr = PersonalQRGetByIdPersona(Id); } catch { throw; } return(o); }
public static void PersonalUdt(Personal o, int id_usuario) { IDbTransaction trans = null; try { Personal oAnt = PersonalCtrl.PersonalGet(o.Id); //Comienza la transanccion trans = GenericDataAccess.BeginTransaction(); PersonalMng oMng = new PersonalMng(); oMng.O_Personal = o; oMng.udt(trans); Personal_qrMng oPQRMng = new Personal_qrMng(); Personal_qr oPQR = new Personal_qr() { Id_personal = o.Id }; oPQRMng.O_Personal_qr = oPQR; oPQRMng.dltByIdPersonal(trans); o.PQr = PersonalQRAdd(trans, o); if (string.Compare(oAnt.PQr.Idf, o.PQr.Idf) != 0) { PersonalUdtFiles(oAnt, o); } //else // PersonalAddFiles(o.lstArchivos, o, trans); if (o.lstArchivos.Count > 0) { Personal_archivosMng oPAMng = new Personal_archivosMng(); Personal_archivos oPA = new Personal_archivos() { Id_personal = o.Id }; oPAMng.O_Personal_archivos = oPA; oPAMng.dltByIdPersonal(trans); PersonalAddFiles(o.lstArchivos, o, trans); } GenericDataAccess.CommitTransaction(trans); } catch { if (trans != null) { GenericDataAccess.RollbackTransaction(trans); } throw; } }
private static void PersonalAddFiles(List <Personal_archivos> lst, Personal personal, IDbTransaction trans) { Personal_archivosMng oMng = new Personal_archivosMng(); try { Personal_archivo_tipoMng oPATMng = new Personal_archivo_tipoMng(); oPATMng.fillLst(); foreach (Personal_archivos o in lst) { Directory.CreateDirectory(Path.Combine(o.Ruta, personal.PQr.Idf)); string tipo = oPATMng.Lst.Find(p => p.Id == o.Id_archivo_tipo).Tipo; o.Id_personal = personal.Id; o.Ruta = Path.Combine(o.Ruta, personal.PQr.Idf + @"\", tipo + ".jpg"); oMng.O_Personal_archivos = o; if (File.Exists(o.Ruta)) { File.Delete(o.Ruta); } FileStream fs = new FileStream(o.Ruta, FileMode.CreateNew, FileAccess.ReadWrite); o.stream.Position = 0; o.stream.CopyTo(fs); fs.Close(); fs.Dispose(); oMng.add(trans); } } catch { throw; } }