Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Microsoft.SharePoint;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Configuration;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Net.Mail;
- using System.Net.Security;
- using System.Security.Cryptography.X509Certificates;
- using System.Text;
- using System.Threading.Tasks;
- using System.Web.UI.WebControls;
- using Word = Microsoft.Office.Interop.Word;
- namespace Continental.CajaDidactica.WP
- {
- public class spConnection
- {
- private SPSite _site;
- private SPUser _user;
- private SPWeb _web;
- private String url_site = SPContext.Current.Site.Url;
- public SPSite Site
- {
- get { return _site; }
- }
- public SPWeb Web
- {
- get { return _web; }
- }
- public spConnection()
- {
- String strUrlSite = SPContext.Current.Web.Url;
- _site = new SPSite(strUrlSite);
- _web = _site.OpenWeb();
- _user = _web.CurrentUser;
- }
- public spConnection(string subsitio)
- {
- String strUrlSite = SPContext.Current.Web.Url + "/" + subsitio;
- _site = new SPSite(strUrlSite);
- _web = _site.OpenWeb();
- _user = _web.CurrentUser;
- }
- public spConnection(string sitio, bool valor)
- {
- String strUrlSite = sitio;
- _site = new SPSite(strUrlSite);
- _web = _site.OpenWeb();
- _user = _web.CurrentUser;
- }
- public static string TranslationViewFields(string viewFields)
- {
- string re = string.Empty;
- foreach (string item in viewFields.Split(','))
- {
- re += "<FieldRef Name='" + item + "' />";
- }
- return re;
- }
- public SPListItem Obtener_Item(String lista, Int32 id)
- {
- SPList oLista = _web.Lists[lista];
- return oLista.GetItemById(id);
- }
- public SPListItemCollection Obtener_Items(String lista, String query, uint rowLimit, String viewFields)
- {
- SPListItemCollection items = null;
- SPList oLista;
- SPQuery oQuery;
- oLista = _web.Lists[lista];
- oQuery = new SPQuery();
- if (query != string.Empty) oQuery.Query = query;
- if (rowLimit > 0) oQuery.RowLimit = rowLimit;
- if (viewFields != string.Empty) { oQuery.ViewFields = TranslationViewFields(viewFields); oQuery.ViewFieldsOnly = true; }
- items = oLista.GetItems(oQuery);
- return items;
- }
- public SPListItemCollection Obtener_Items_Paginado(String lista, String query, uint rowLimit, int IrPaginaNro, ref int iTotalReg, string viewFields)
- {
- //SPListItemCollection items = null;
- int iPageCount = 0;
- SPList oLista;
- SPQuery oQuery;
- oLista = _web.Lists[lista];
- int TotalListItems = oLista.ItemCount;
- if (rowLimit > 0)
- iPageCount = (int)Math.Ceiling(TotalListItems / (decimal)rowLimit);
- oQuery = new SPQuery();
- if (query != string.Empty) oQuery.Query = query;//calcular total de registros
- iTotalReg = SPCount(lista, query);
- if (rowLimit > 0) oQuery.RowLimit = (uint)rowLimit;
- if (viewFields != string.Empty) { oQuery.ViewFields = TranslationViewFields(viewFields); oQuery.ViewFieldsOnly = true; }
- int index = 0;
- SPListItemCollection items;
- do
- {
- items = oLista.GetItems(oQuery);
- if (index == IrPaginaNro)
- break;
- oQuery.ListItemCollectionPosition = items.ListItemCollectionPosition;
- index++;
- } while (oQuery.ListItemCollectionPosition != null);
- return items;
- //oQuery = new SPQuery();
- //if (query != string.Empty) oQuery.Query = query;
- //iTotalReg = SPCount(lista, query);
- //if (rowLimit > 0) oQuery.RowLimit = rowLimit;
- //if (viewFields != string.Empty) { oQuery.ViewFields = TranslationViewFields(viewFields); oQuery.ViewFieldsOnly = true; }
- //items = oLista.GetItems(oQuery);
- //return items;
- }
- public int SPCount(string lista, string query)
- {
- try
- {
- SPQuery oQuery;
- SPList oLista;
- oLista = _web.Lists[lista];
- oQuery = new SPQuery();
- oQuery.ViewFields = " <FieldRef Name='ID' />";
- oQuery.ViewFieldsOnly = true;
- if (query != string.Empty) oQuery.Query = query;
- return oLista.GetItems(oQuery).Count;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- public List<SPListItem> Obtener_ItemsSP(String lista, String query, uint rowLimit, String viewFields)
- {
- List<SPListItem> result = new List<SPListItem>();
- SPList oLista;
- SPQuery oQuery;
- oLista = _web.Lists[lista];
- oQuery = new SPQuery();
- if (query != string.Empty) oQuery.Query = query;
- if (rowLimit > 0) oQuery.RowLimit = rowLimit;
- if (viewFields != string.Empty) { oQuery.ViewFields = TranslationViewFields(viewFields); oQuery.ViewFieldsOnly = true; }
- SPListItemCollection items = oLista.GetItems(oQuery);
- if (items != null && items.Count > 0)
- result = items.Cast<SPListItem>().ToList();
- return result;
- }
- public Guid create_library(string biblioteca, string lista)
- {
- _web.AllowUnsafeUpdates = true;
- Guid newListID = _web.Lists.Add(biblioteca, biblioteca, SPListTemplateType.DocumentLibrary);
- SPList list = _web.Lists[newListID];
- list.OnQuickLaunch = true;
- list.EnableVersioning = true;
- list.Title = lista;
- list.Update();
- _web.AllowUnsafeUpdates = false;
- return list.ID;
- }
- public void create_folder(Guid biblioteca, string carpeta_nivel2)
- {
- _web.AllowUnsafeUpdates = true;
- SPList library = _web.Lists[biblioteca];
- using (new DisabledItemEventsScope())
- {
- SPListItem folder = library.Folders.Add(library.RootFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, carpeta_nivel2);
- folder.Update();
- }
- _web.AllowUnsafeUpdates = false;
- }
- public void create_folder(Guid biblioteca, string carpeta_nivel2, string carpeta_nivel3)
- {
- _web.AllowUnsafeUpdates = true;
- SPList library = _web.Lists[biblioteca];
- using (new DisabledItemEventsScope())
- {
- SPListItem folder = library.Folders.Add(library.RootFolder.ServerRelativeUrl + "/" + carpeta_nivel2, SPFileSystemObjectType.Folder, carpeta_nivel3);
- folder.Update();
- }
- _web.AllowUnsafeUpdates = false;
- }
- public SPListItem obtener_parametro(string filtro)
- {
- SPListItem item = null;
- SPList oLista = _web.Lists["Parametros del Sistema"];
- SPQuery oQuery = new SPQuery();
- oQuery.Query = string.Format(@"<Where>
- <Eq>
- <FieldRef Name='Title' />
- <Value Type='Text'>{0}</Value>
- </Eq>
- </Where>", filtro);
- oQuery.RowLimit = 1;
- SPListItemCollection items = oLista.GetItems(oQuery);
- if (items.Count > 0)
- item = items[0];
- return item;
- }
- public void enviar_correo_revision(SPListItem item, SPUser usuario_logueado)
- {
- try
- {
- #region Correo
- SPFieldLookupValue sp_unidad = new SPFieldLookupValue(item["LicenciamientoAcreditacion"].ToString());
- spConnection conn = new spConnection();
- SPListItemCollection items_config = conn.Obtener_Items("Configuración de Correo", "", 0, "");
- String query_plantilla = String.Format(@"<Where>
- <Eq>
- <FieldRef Name='Title' />
- <Value Type='Text'>{0}</Value>
- </Eq>
- </Where>", "Actividad Revisada");
- SPListItemCollection items_plantillas = conn.Obtener_Items("Plantilla de Correo", query_plantilla, 0, "");
- if (items_config.Count > 0 && items_plantillas.Count > 0)
- {
- SPListItem item_config = items_config[0];
- SPListItem item_plantilla = items_plantillas[0];
- ECorreo ec = new ECorreo();
- ec.DisplayName = item_config["DisplayName"].ToString();
- ec.UserEmail = item_config["UserEmail"].ToString();
- ec.Password = item_config["Password"].ToString();
- ec.ServerEmail = item_config["ServerEmail"].ToString();
- ec.PortServerEmail = int.Parse(item_config["PortServerEmail"].ToString());
- ec.UseDefaultCredentials = bool.Parse(item_config["UseDefaultCredentials"].ToString());
- ec.EnableSsl = bool.Parse(item_config["EnableSsl"].ToString());
- String actividad = item["Title"].ToString();
- String detalle = item["Detalle"].ToString();
- DateTime finicio = DateTime.Parse(item["FechaInicio"].ToString());
- DateTime ffin = DateTime.Parse(item["FechaVencimiento"].ToString());
- if (item["Gestor"] != null)
- {
- SPFieldUserValue gestor = new SPFieldUserValue(item.Web, item["Gestor"].ToString());
- if (gestor.User.Email != null && gestor.User.Email != String.Empty)
- {
- ec.To = gestor.User.Email;
- ec.Subject = item_plantilla["Asunto"].ToString().Replace("[Unidad]", sp_unidad.LookupValue);
- ec.Body = item_plantilla["Cuerpo"].ToString().Replace("[Actividad]", actividad).Replace("[Detalle]", detalle).Replace("[FechaInicio]", finicio.ToShortDateString()).Replace("[FechaVencimiento]", ffin.ToShortDateString()).Replace("[Usuario]", gestor.User.Name).Replace("[Responsable]", usuario_logueado.Name);
- enviar_email(ec);
- }
- }
- item.Web.AllowUnsafeUpdates = true;
- item["Reviso"] = true;
- item.Update();
- item.Web.AllowUnsafeUpdates = false;
- }
- #endregion
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- public SPListItemCollection Obtener_Items_lib(String lista, SPQuery oQuery, uint rowLimit, String viewFields)
- {
- SPListItemCollection items = null;
- SPList oLista;
- oLista = _web.Lists[lista];
- if (rowLimit > 0) oQuery.RowLimit = rowLimit;
- if (viewFields != string.Empty) { oQuery.ViewFields = TranslationViewFields(viewFields); oQuery.ViewFieldsOnly = true; }
- items = oLista.GetItems(oQuery);
- return items;
- }
- public int insert_item_list(String pListName, Hashtable pFields)
- {
- SPList list = _web.Lists[pListName];
- SPListItem item = list.Items.Add();
- foreach (DictionaryEntry entry in pFields)
- {
- item[(String)entry.Key] = entry.Value;
- }
- //item["Author"] = _user;
- //item["Editor"] = _user;
- _web.AllowUnsafeUpdates = true;
- item.Update();
- _web.AllowUnsafeUpdates = false;
- return item.ID;
- }
- public void delete_item_list(String lista, SPQuery oQuery)
- {
- SPListItemCollection items = null;
- SPList oLista;
- oLista = _web.Lists[lista];
- items = oLista.GetItems(oQuery);
- if (items != null && items.Count > 0)
- {
- SPListItem item = items[0];
- _web.AllowUnsafeUpdates = true;
- item.Delete();
- _web.AllowUnsafeUpdates = false;
- }
- }
- public int insert_item_list_attach(String pListName, Hashtable pFields, FileUpload fuArchivo)
- {
- SPList list = _web.Lists[pListName];
- SPListItem item = list.Items.Add();
- foreach (DictionaryEntry entry in pFields)
- {
- item[(String)entry.Key] = entry.Value;
- }
- if (fuArchivo.HasFile && fuArchivo.PostedFile != null)
- {
- String archivo = replaceUnsupportedCharacters_archivo(fuArchivo.FileName);
- item.Attachments.Add(archivo, fuArchivo.FileBytes);
- }
- //item["Author"] = _user;
- //item["Editor"] = _user;
- _web.AllowUnsafeUpdates = true;
- item.Update();
- _web.AllowUnsafeUpdates = false;
- return item.ID;
- }
- public int insert_item_list_attach_multiple(String pListName, Hashtable pFields, List<EArchivo> archivos)
- {
- SPList list = _web.Lists[pListName];
- SPListItem item = list.Items.Add();
- foreach (DictionaryEntry entry in pFields)
- {
- item[(String)entry.Key] = entry.Value;
- }
- if (archivos != null && archivos.Count > 0)
- {
- foreach (EArchivo archivo in archivos)
- {
- if (archivo.FileName != string.Empty && archivo.Base64EncodedString != string.Empty)
- {
- String nombreArchivo = replaceUnsupportedCharacters_archivo(archivo.FileName);
- var base64Content = archivo.Base64EncodedString;
- var startIndex = base64Content.IndexOf("base64,", StringComparison.OrdinalIgnoreCase) + 7;
- var fileContents = base64Content.Substring(startIndex);
- var arrayByte = Convert.FromBase64String(fileContents);
- item.Attachments.Add(nombreArchivo, arrayByte);
- }
- }
- }
- item["Author"] = _user;
- item["Editor"] = _user;
- _web.AllowUnsafeUpdates = true;
- item.Update();
- _web.AllowUnsafeUpdates = false;
- return item.ID;
- }
- public String replaceUnsupportedCharacters_archivo(String nombre_archivo)
- {
- nombre_archivo = nombre_archivo.Replace("#", "");
- nombre_archivo = nombre_archivo.Replace("%", "");
- nombre_archivo = nombre_archivo.Replace("&", "");
- nombre_archivo = nombre_archivo.Replace("*", "");
- nombre_archivo = nombre_archivo.Replace(":", "");
- nombre_archivo = nombre_archivo.Replace("<", "");
- nombre_archivo = nombre_archivo.Replace(">", "");
- nombre_archivo = nombre_archivo.Replace("¿", "");
- nombre_archivo = nombre_archivo.Replace("?", "");
- nombre_archivo = nombre_archivo.Replace("/", "");
- nombre_archivo = nombre_archivo.Replace("{", "");
- nombre_archivo = nombre_archivo.Replace("|", "");
- nombre_archivo = nombre_archivo.Replace("}", "");
- nombre_archivo = nombre_archivo.Replace("~", "");
- nombre_archivo = nombre_archivo.Replace("\\", "");
- nombre_archivo = nombre_archivo.Replace("\"", "");
- return nombre_archivo;
- }
- public String replaceUnsupportedCharacters_u(String nombre_archivo)
- {
- nombre_archivo = nombre_archivo.Replace(".", "");
- nombre_archivo = nombre_archivo.Replace("#", "");
- nombre_archivo = nombre_archivo.Replace("%", " por ciento");
- nombre_archivo = nombre_archivo.Replace("&", "");
- nombre_archivo = nombre_archivo.Replace("*", "");
- nombre_archivo = nombre_archivo.Replace(":", "");
- nombre_archivo = nombre_archivo.Replace("<", "");
- nombre_archivo = nombre_archivo.Replace(">", "");
- nombre_archivo = nombre_archivo.Replace("¿", "");
- nombre_archivo = nombre_archivo.Replace("?", "");
- nombre_archivo = nombre_archivo.Replace("/", "");
- nombre_archivo = nombre_archivo.Replace("{", "");
- nombre_archivo = nombre_archivo.Replace("|", "");
- nombre_archivo = nombre_archivo.Replace("}", "");
- nombre_archivo = nombre_archivo.Replace("~", "");
- nombre_archivo = nombre_archivo.Replace("\\", "");
- nombre_archivo = nombre_archivo.Replace("\"", "");
- return nombre_archivo;
- }
- public void update_item_list_attach(string pListName, int id, Hashtable pFields, FileUpload fuArchivo)
- {
- SPList list = _web.Lists[pListName];
- SPListItem item = list.GetItemById(id);
- if (item != null)
- {
- foreach (DictionaryEntry entry in pFields)
- {
- if (entry.Value != null && entry.Value.ToString() != string.Empty)
- item[(string)entry.Key] = entry.Value;
- else
- item[(string)entry.Key] = null;
- }
- if (fuArchivo.HasFile && fuArchivo.PostedFile != null)
- {
- String archivo = replaceUnsupportedCharacters_archivo(fuArchivo.FileName);
- item.Attachments.Add(archivo, fuArchivo.FileBytes);
- }
- _web.AllowUnsafeUpdates = true;
- item.Update();
- _web.AllowUnsafeUpdates = false;
- }
- }
- public void update_item_list(string pListName, int id, Hashtable pFields)
- {
- SPList list = _web.Lists[pListName];
- SPListItem item = list.GetItemById(id);
- if (item != null)
- {
- foreach (DictionaryEntry entry in pFields)
- {
- if (entry.Value != null && entry.Value.ToString() != string.Empty)
- item[(string)entry.Key] = entry.Value;
- else
- item[(string)entry.Key] = null;
- }
- _web.AllowUnsafeUpdates = true;
- item.Update();
- _web.AllowUnsafeUpdates = false;
- }
- }
- public void enviar_email(ECorreo ec)
- {
- if (!string.IsNullOrEmpty(ec.To))
- {
- spConnection conn2 = new spConnection();
- SPListItemCollection items_config = conn2.Obtener_Items(Recursos.Listas.AdmConfiguracionCorreo, string.Empty, 0, string.Empty);
- SPListItem item_config = items_config[0];
- ec.DisplayName = item_config[Recursos.ConfiguracionCorreo.DisplayName].ToString();
- ec.UserEmail = item_config[Recursos.ConfiguracionCorreo.UserEmail].ToString();
- ec.Password = item_config[Recursos.ConfiguracionCorreo.Password].ToString();
- ec.ServerEmail = item_config[Recursos.ConfiguracionCorreo.ServerEmail].ToString();
- ec.PortServerEmail = int.Parse(item_config[Recursos.ConfiguracionCorreo.PortServerEmail].ToString());
- ec.UseDefaultCredentials = bool.Parse(item_config[Recursos.ConfiguracionCorreo.UseDefaultCredentials].ToString());
- ec.EnableSsl = bool.Parse(item_config[Recursos.ConfiguracionCorreo.EnableSsl].ToString());
- MailMessage msg = new MailMessage();
- msg.From = new MailAddress(ec.UserEmail, ec.DisplayName, Encoding.UTF8);
- msg.To.Add(ec.To);
- if (ec.Cc != null)
- msg.CC.Add(ec.Cc);
- msg.Subject = ec.Subject;
- msg.SubjectEncoding = Encoding.UTF8;
- msg.Body = ec.Body;
- msg.BodyEncoding = Encoding.UTF8;
- msg.IsBodyHtml = true;
- msg.Priority = MailPriority.High;
- Stream stream;
- if (ec.Attachment != null && ec.Attachment.Length > 0)
- {
- stream = new MemoryStream(ec.Attachment);
- msg.Attachments.Add(new Attachment(stream, ec.FileName));
- }
- SmtpClient client = new SmtpClient(ec.ServerEmail, ec.PortServerEmail);
- if (ec.UseDefaultCredentials)
- client.UseDefaultCredentials = true;
- else
- client.Credentials = new NetworkCredential(ec.UserEmail, ec.Password);
- client.EnableSsl = ec.EnableSsl;
- client.DeliveryMethod = SmtpDeliveryMethod.Network;
- try
- {
- ServicePointManager.ServerCertificateValidationCallback = delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
- { return true; };
- if (msg.To.Count > 0)
- {
- client.Send(msg);
- }
- }
- catch (Exception ex)
- {
- //throw new Exception("No se puede enviar el correo a " + ec.To + " Error Raiz: " + ex.Message, ex);
- }
- }
- }
- //**J.A.S.A**
- public SPListItem ObtenerAsignaturaXid(int IdAsignatura)
- {
- SPListItem itemEstado = null;
- SPSecurity.RunWithElevatedPrivileges(delegate
- {
- spConnection conn = new spConnection();
- string query = string.Format(@" <Where>
- <And>
- <Eq>
- <FieldRef Name='ID' />
- <Value Type='Counter'>{0}</Value>
- </Eq>
- <Eq>
- <FieldRef Name='Eliminado' />
- <Value Type='Boolean'>false</Value>
- </Eq>
- </And>
- </Where>", IdAsignatura);
- SPListItemCollection itemsEstado = conn.Obtener_Items(Recursos.Listas.Asignaturas, query, 1, "");
- itemEstado = itemsEstado[0];
- });
- return itemEstado;
- }
- public SPListItem ObtenerEstadoActivoXid(int IdEstado)
- {
- SPListItem itemEstado = null;
- SPSecurity.RunWithElevatedPrivileges(delegate
- {
- spConnection conn = new spConnection();
- string query = string.Format(@"<Where>
- <And>
- <Eq>
- <FieldRef Name='ID' />
- <Value Type='Counter'>{0}</Value>
- </Eq>
- <Eq>
- <FieldRef Name='Activo' />
- <Value Type='Boolean'>1</Value>
- </Eq>
- </And>
- </Where>", IdEstado);
- SPListItemCollection itemsEstado = conn.Obtener_Items(Recursos.Listas.Estados, query, 1, "");
- itemEstado = itemsEstado[0];
- });
- return itemEstado;
- }
- public string ObtenerDescripcionEstadoXid(int IdEstado) {
- string itemEstado = null;
- SPSecurity.RunWithElevatedPrivileges(delegate
- {
- spConnection conn = new spConnection();
- string query = string.Format(@"<Where>
- <Eq>
- <FieldRef Name='ID' />
- <Value Type='Counter'>{0}</Value>
- </Eq>
- </Where>", IdEstado);
- SPListItemCollection itemsEstado = conn.Obtener_Items(Recursos.Listas.Estados, query, 1, "");
- itemEstado = itemsEstado[0][Recursos.CamposBase.Titulo].ToString();
- });
- return itemEstado;
- }
- public SPListItem ObtenerActividadXid(int IdActividad) {
- SPListItem itemActividad = null;
- SPSecurity.RunWithElevatedPrivileges(delegate
- {
- spConnection conn = new spConnection();
- string query = string.Format(@"<Where>
- <Eq>
- <FieldRef Name='ID' />
- <Value Type='Counter'>{0}</Value>
- </Eq>
- </Where>", IdActividad);
- SPListItemCollection itemsEstado = conn.Obtener_Items(Recursos.Listas.Actividades, query, 1, "");
- itemActividad = itemsEstado[0];
- });
- return itemActividad;
- }
- public SPListItemCollection ObtenerListaCorreos(string rol) {
- SPListItemCollection listaCorreo = null;
- SPSecurity.RunWithElevatedPrivileges(delegate
- {
- spConnection conn = new spConnection();
- string query = string.Format(@"<Where>
- <Eq>
- <FieldRef Name='Roles' LookupId='FALSE'/>
- <Value Type='Lookup'>{0}</Value>
- </Eq>
- </Where>", rol);
- SPListItemCollection itemsUsuarios = conn.Obtener_Items(Recursos.Listas.AdmUsuarios, query, 10, "");
- listaCorreo = itemsUsuarios;
- });
- return listaCorreo;
- }
- public void enviar_Email_Materiales(int IdEstado, SPListItem itemsasignaturas, int IdActividad)
- { //int IdAsignatura
- string Periodo = "",StrAsignatura="", StrPeriodo="";
- List<string> listaRoles = new List<string>();
- spConnection conn = new spConnection();
- // SPListItem item_ = conn.Obtener_Item(Recursos.Listas.Estados, Convert.ToInt32(IdEstado));
- SPListItem RolesEstadoActivo = ObtenerEstadoActivoXid(IdEstado);
- // SPListItem Asignatura = ObtenerAsignaturaXid(IdAsignatura);
- string StrEstado = ObtenerDescripcionEstadoXid(IdEstado);
- #region ObtenerRoles
- //string Rol_To = RolesEstadoActivo["Roles"].ToString();
- //string roles = new SPFieldLookupValue(Rol_To).LookupValue.ToString();
- //string[] rolSplit = Rol_To.Split(';');
- SPFieldLookupValueCollection spRoles = new SPFieldLookupValueCollection(RolesEstadoActivo["Roles"].ToString());
- listaRoles = spRoles.Select(x => x.LookupValue).ToList();
- if (itemsasignaturas!=null && IdActividad==0)
- {
- Periodo = itemsasignaturas["Periodo"]?.ToString();
- StrAsignatura = itemsasignaturas[Recursos.CamposBase.Titulo]?.ToString();
- StrPeriodo = new SPFieldLookupValue(Periodo)?.LookupValue?.ToString();
- }
- else if(itemsasignaturas == null && IdActividad != 0)
- {
- SPListItem ActividadItem = ObtenerActividadXid(IdActividad);
- Periodo = ActividadItem["Periodo"]?.ToString();
- string Asignatura = ActividadItem[Recursos.Actividad.Asignatura]?.ToString();
- StrAsignatura = new SPFieldLookupValue(Asignatura)?.LookupValue?.ToString();
- StrPeriodo = new SPFieldLookupValue(Periodo)?.LookupValue?.ToString();
- }
- //for (int i = 0; i < rolSplit.Length; i++)
- //{
- // if (i % 2 != 0)
- // {
- // string admin = rolSplit[i]?.Substring(1);
- // listaRoles.Add(admin);
- // }
- //}
- #endregion
- ECorreo ec = new ECorreo();
- SPListItemCollection items_plantillas = null;
- SPSecurity.RunWithElevatedPrivileges(delegate
- {
- string plantillaCorreo = Recursos.PlantillaCorreo.MaterialCambioEstado;
- items_plantillas = conn.GetItemsPlantilla(plantillaCorreo);
- if (items_plantillas != null && items_plantillas.Count > 0)
- {
- #region Correo
- foreach (var rol in listaRoles)
- {
- SPListItemCollection listaCorreos = ObtenerListaCorreos(rol);
- SPListItem item_plantilla = items_plantillas[0];
- ec.Subject = item_plantilla[Recursos.AdmPlantillaCorreo.Asunto].ToString();
- using (SPSite site = new SPSite(SPContext.Current.Web.Url))
- using (SPWeb web = site.OpenWeb())
- {
- foreach (SPListItem item in listaCorreos)
- {
- SPFieldUserValue usuario = new SPFieldUserValue(web, item["Usuario"].ToString());
- ec.To = usuario.User.Email;
- ec.Subject = item_plantilla[Recursos.AdmPlantillaCorreo.Asunto].ToString().Replace("@periodo", StrPeriodo).Replace("@estado", StrEstado).Replace("@Docente", usuario.User.Name);
- ec.Body = item_plantilla[Recursos.AdmPlantillaCorreo.Cuerpo].ToString().Replace("@Asignatura", StrAsignatura).Replace("@Periodo", StrPeriodo).Replace("@Estado", StrEstado).Replace("@Docente", usuario.User.Name);
- try
- {
- enviar_email(ec);
- }
- catch (Exception ex)
- {
- SPutil.EscribirLog(ec.UserEmail, ex.Message.ToString(), ex.StackTrace.ToString(), "Material Cambio Estado");
- }
- }
- }
- }
- #endregion
- }
- });
- }
- public void enviar_Email_Materiales(int IdEstado, string periodo)
- { //int IdAsignatura
- string Periodo = "", StrAsignatura = "", StrPeriodo = "";
- List<string> listaRoles = new List<string>();
- spConnection conn = new spConnection();
- // SPListItem item_ = conn.Obtener_Item(Recursos.Listas.Estados, Convert.ToInt32(IdEstado));
- SPListItem RolesEstadoActivo = ObtenerEstadoActivoXid(IdEstado);
- // SPListItem Asignatura = ObtenerAsignaturaXid(IdAsignatura);
- string StrEstado = ObtenerDescripcionEstadoXid(IdEstado);
- #region ObtenerRoles
- string Rol_To = RolesEstadoActivo["Roles"].ToString();
- SPFieldLookupValueCollection spRoles = new SPFieldLookupValueCollection(RolesEstadoActivo["Roles"].ToString());
- listaRoles = spRoles.Select(x => x.LookupValue).ToList();
- #endregion
- ECorreo ec = new ECorreo();
- SPListItemCollection items_plantillas = null;
- SPSecurity.RunWithElevatedPrivileges(delegate
- {
- string plantillaCorreo = Recursos.PlantillaCorreo.ProyeccionCambioEstado;
- items_plantillas = conn.GetItemsPlantilla(plantillaCorreo);
- if (items_plantillas != null && items_plantillas.Count > 0)
- {
- #region Correo
- foreach (var rol in listaRoles)
- {
- SPListItemCollection listaCorreos = ObtenerListaCorreos(rol);
- SPListItem item_plantilla = items_plantillas[0];
- ec.Subject = item_plantilla[Recursos.AdmPlantillaCorreo.Asunto].ToString();
- using (SPSite site = new SPSite(SPContext.Current.Web.Url))
- using (SPWeb web = site.OpenWeb())
- {
- foreach (SPListItem item in listaCorreos)
- {
- SPFieldUserValue usuario = new SPFieldUserValue(web, item["Usuario"].ToString());
- ec.To = usuario.User.Email;
- ec.Subject = item_plantilla[Recursos.AdmPlantillaCorreo.Asunto].ToString().Replace("@periodo", periodo);
- ec.Body = item_plantilla[Recursos.AdmPlantillaCorreo.Cuerpo].ToString().Replace("@Docente", usuario.User.Name).Replace("@periodo", periodo);
- try
- {
- enviar_email(ec);
- }
- catch (Exception ex)
- {
- SPutil.EscribirLog(ec.UserEmail, ex.Message.ToString(), ex.StackTrace.ToString(), "Material Cambio Estado");
- }
- }
- }
- }
- #endregion
- }
- });
- }
- //****
- SPListItemCollection items_plantillas = null;
- public SPListItemCollection GetItemsPlantilla(string plantillaCorreo)
- {
- SPSecurity.RunWithElevatedPrivileges(delegate ()
- {
- using (SPSite site = new SPSite(url_site))
- {
- using (SPWeb web = site.OpenWeb())
- {
- SPList list_plantilla = web.Lists[Recursos.Listas.AdmPlantillasCorreo];
- SPQuery query_plantilla = new SPQuery();
- query_plantilla.Query = string.Format(@"<Where>
- <Eq>
- <FieldRef Name='{0}' />
- <Value Type='Text'>{1}</Value>
- </Eq>
- </Where>", Recursos.CamposBase.Titulo,
- plantillaCorreo);
- items_plantillas = list_plantilla.GetItems(query_plantilla);
- }
- }
- });
- return items_plantillas;
- }
- }
- public class SPutil
- {
- public static void EscribirLog(string datos, string errorMessage, string TrazaException, string metodo)
- {
- //SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory(metodo, TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, errorMessage, TrazaException);
- string Ruta = ConfigurationManager.AppSettings["RUTA_LOG"].ToString();
- string fecha = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(); //DateTime.Now.ToString("yyyy/mm/dd") + " " + DateTime.Now.ToString("hh:MM:ss");
- string Archivo = Ruta + "\\LogGD-" + DateTime.Now.ToShortDateString().Replace("/", "-") + ".txt";
- using (StreamWriter sw = new StreamWriter(Archivo, true))
- {
- sw.WriteLine("");
- sw.WriteLine("FECHA: " + fecha);
- sw.WriteLine("OPERACION: " + metodo);
- sw.WriteLine("DATOS: " + datos);
- sw.WriteLine("ERROR: " + errorMessage);
- sw.WriteLine("TRAZA: " + TrazaException);
- sw.WriteLine("******************************************************************");
- sw.WriteLine("");
- }
- }
- public static void ConvertiraPDF(string urlarchivo, string nombrearchivo)
- {
- object str_letter_path = @"D:\Prueba\CV2017.docx";
- object outputFilePathPDF = @"D:\Prueba\CV2017.PDF";
- Word.Application wordApp = new Word.Application();
- wordApp.Visible = false;
- wordApp.ScreenUpdating = false;
- object oMissing = System.Reflection.Missing.Value;
- object fileFormat = Word.WdSaveFormat.wdFormatPDF;
- Word.Document doc = wordApp.Documents.Open(ref str_letter_path, ref oMissing,
- ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
- ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
- ref oMissing, ref oMissing, ref oMissing, ref oMissing);
- doc.Activate();
- doc.SaveAs(ref outputFilePathPDF,
- ref fileFormat, ref oMissing, ref oMissing,
- ref oMissing, ref oMissing, ref oMissing, ref oMissing,
- ref oMissing, ref oMissing, ref oMissing, ref oMissing,
- ref oMissing, ref oMissing, ref oMissing, ref oMissing);
- object saveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
- if (doc != null)
- ((Word._Document)doc).Close(ref saveChanges, ref oMissing, ref oMissing);
- ((Microsoft.Office.Interop.Word._Application)wordApp).Quit(ref saveChanges, ref oMissing, ref oMissing);
- }
- }
- [Serializable()]
- public class EArchivo
- {
- public String ID { get; set; }
- public string Base64EncodedString { get; set; }
- public string FileName { get; set; }
- public string Estado { get; set; }
- public string Comentario { get; set; }
- public string URL { get; set; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement