public ActionResult CrearArea(DocumentoArchivo obj) { _context = new BDContext(); unitOfWork = new UnitOfWork(_context); List <TipoDocumento> area = new List <TipoDocumento>(); foreach (var nusuario in _context.TipoDocumento) { area.Add(nusuario); } ViewBag.Areas = area; return(View(obj)); }
public ActionResult ActionCrearArea(DocumentoArchivo obj) { _context = new BDContext(); unitOfWork = new UnitOfWork(_context); obj.estadoDocumento = 1; obj.fechaSubidaDocumento = DateTime.Today.ToString("d"); obj.fechaModificiacionDocumento = DateTime.Today.ToString("d"); var tp = from ntp in _context.TipoDocumento.Include("N1").Include("N2").Include("N3").Include("N4").Include("N5") where ntp.idTipo == obj.idTipo select ntp; List <Nivel1> n1 = tp.FirstOrDefault().N1.ToList(); List <Nivel2> n2 = tp.FirstOrDefault().N2.ToList(); List <Nivel3> n3 = tp.FirstOrDefault().N3.ToList(); List <Nivel4> n4 = tp.FirstOrDefault().N4.ToList(); List <Nivel5> n5 = tp.FirstOrDefault().N5.ToList(); if (n1.Count > 0) { foreach (var lv1 in n1) { string path = Path.Combine("C:/Gestad", lv1.nombreN); obj.rutaDocumento = path; } } if (n2.Count > 0) { foreach (var lv1 in n2) { var nl1 = unitOfWork.Nivel1.Get(Int32.Parse(lv1.nivel1)); string path = Path.Combine("C:/Gestad", nl1.nombreN, lv1.nombreN); obj.rutaDocumento = path; } } if (n1.Count > 0) { foreach (var lv1 in n3) { var nl2 = unitOfWork.Nivel2.Get(Int32.Parse(lv1.nivel2)); var nl1 = unitOfWork.Nivel1.Get(Int32.Parse(nl2.nivel1)); string path = Path.Combine("C:/Gestad", nl1.nombreN, nl2.nombreN, lv1.nombreN); obj.rutaDocumento = path; } } if (n1.Count > 0) { foreach (var lv1 in n4) { var nl3 = unitOfWork.Nivel3.Get(Int32.Parse(lv1.nivel3)); var nl2 = unitOfWork.Nivel2.Get(Int32.Parse(nl3.nivel2)); var nl1 = unitOfWork.Nivel1.Get(Int32.Parse(nl2.nivel1)); string path = Path.Combine("C:/Gestad", nl1.nombreN, nl2.nombreN, nl3.nombreN, lv1.nombreN); obj.rutaDocumento = path; } } if (n1.Count > 0) { foreach (var lv1 in n5) { var nl4 = unitOfWork.Nivel4.Get(Int32.Parse(lv1.nivel4)); var nl3 = unitOfWork.Nivel3.Get(Int32.Parse(nl4.nivel3)); var nl2 = unitOfWork.Nivel2.Get(Int32.Parse(nl3.nivel2)); var nl1 = unitOfWork.Nivel1.Get(Int32.Parse(nl2.nivel1)); string path = Path.Combine("C:/Gestad", nl1.nombreN, nl2.nombreN, nl3.nombreN, nl4.nombreN, lv1.nombreN); obj.rutaDocumento = path; } } if (n1.Count > 0) { foreach (var lv1 in n1) { string path = Path.Combine(Server.MapPath("~/Gestad"), lv1.nombreN); obj.rutaDocumento = path; } } var id = HttpContext.Request.Cookies["id"].Value; if (ModelState.IsValid) { _context = new BDContext(); unitOfWork = new UnitOfWork(_context); Documento dc = new Documento(); dc.descripccionDocumento = obj.descripccionDocumento; dc.nombreDocumento = obj.nombreDocumento; dc.estadoDocumento = obj.estadoDocumento; dc.fechaModificiacionDocumento = obj.fechaModificiacionDocumento; dc.fechaSubidaDocumento = obj.fechaSubidaDocumento; dc.rutaDocumento = obj.rutaDocumento; dc.vigencia = obj.vigencia; dc.idTipo = obj.idTipo; dc.idUsuario = Int32.Parse(id); unitOfWork.Docs.Add(dc); var ttp = from ntp in _context.TipoDocumento.Include("N1").Include("N2").Include("N3").Include("N4").Include("N5") where ntp.idTipo == obj.idTipo select ntp; List <Nivel1> nn1 = ttp.FirstOrDefault().N1.ToList(); List <Nivel2> nn2 = ttp.FirstOrDefault().N2.ToList(); List <Nivel3> nn3 = ttp.FirstOrDefault().N3.ToList(); List <Nivel4> nn4 = ttp.FirstOrDefault().N4.ToList(); List <Nivel5> nn5 = ttp.FirstOrDefault().N5.ToList(); Usuario UP = unitOfWork.Usuarios.Get(Int32.Parse(id)); HttpPostedFileBase file = obj.DocFile; var name = file.FileName; var name2 = name.Split('\\'); var name3 = name2[name2.Length - 1]; var uname = UP.nombreUsuario; var uname2 = uname.Split(' '); var uname3 = ""; if (uname2.Length > 2) { uname3 = uname2[0].Substring(0, 1) + uname2[2]; } else { uname3 = uname2[0].Substring(0, 1) + uname2[1]; } var filename = uname3 + name3.ToUpper();; if (nn1.Count > 0) { foreach (var lv1 in nn1) { string path = Path.Combine("C:/Gestad", lv1.nombreN, filename); dc.rutaDocumento = path; file.SaveAs(path); } } if (nn2.Count > 0) { foreach (var lv1 in nn2) { var nl1 = unitOfWork.Nivel1.Get(Int32.Parse(lv1.nivel1)); string path = Path.Combine("C:/Gestad", nl1.nombreN, lv1.nombreN, filename); dc.rutaDocumento = path; file.SaveAs(path); } } if (nn3.Count > 0) { foreach (var lv1 in nn3) { var nl2 = unitOfWork.Nivel2.Get(Int32.Parse(lv1.nivel2)); var nl1 = unitOfWork.Nivel1.Get(Int32.Parse(nl2.nivel1)); string path = Path.Combine("C:/Gestad", nl1.nombreN, nl2.nombreN, lv1.nombreN, filename); dc.rutaDocumento = path; file.SaveAs(path); } } if (nn4.Count > 0) { foreach (var lv1 in nn4) { var nl3 = unitOfWork.Nivel3.Get(Int32.Parse(lv1.nivel3)); var nl2 = unitOfWork.Nivel2.Get(Int32.Parse(nl3.nivel2)); var nl1 = unitOfWork.Nivel1.Get(Int32.Parse(nl2.nivel1)); string path = Path.Combine("C:/Gestad", nl1.nombreN, nl2.nombreN, nl3.nombreN, lv1.nombreN, filename); dc.rutaDocumento = path; file.SaveAs(path); } } if (nn5.Count > 0) { foreach (var lv1 in nn5) { var nl4 = unitOfWork.Nivel4.Get(Int32.Parse(lv1.nivel4)); var nl3 = unitOfWork.Nivel3.Get(Int32.Parse(nl4.nivel3)); var nl2 = unitOfWork.Nivel2.Get(Int32.Parse(nl3.nivel2)); var nl1 = unitOfWork.Nivel1.Get(Int32.Parse(nl2.nivel1)); string path = Path.Combine("C:/Gestad", nl1.nombreN, nl2.nombreN, nl3.nombreN, nl4.nombreN, lv1.nombreN, filename); dc.rutaDocumento = path; file.SaveAs(path); } } if (nn1.Count > 0) { foreach (var lv1 in nn1) { string path = Path.Combine("C:/Gestad", lv1.nombreN, filename); dc.rutaDocumento = path; file.SaveAs(path); } } unitOfWork.Complete(); Usuario Uppd2 = unitOfWork.Usuarios.Get(Int32.Parse(id)); var fromAddress = new MailAddress("*****@*****.**", "GESTAD"); var toAddress = new MailAddress("*****@*****.**", "Administrador"); const string fromPassword = "******"; const string subject = "Nuevo Usuario"; string mensaje = "La persona " + Uppd2.nombreUsuario + " Subio un nuevo documento \"" + obj.nombreDocumento + "\", porfavor acepte o rechace esta solicitud"; string body = mensaje; var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { smtp.Send(message); } return(RedirectToAction("DocUser")); } else { return(RedirectToAction("CrearArea", obj)); } }