示例#1
0
        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);
        }
示例#2
0
        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;
            }
        }
示例#3
0
        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;
            }
        }