private string RefactorCarpeta(string carpeta) { switch (_db) { case "csAccess": if (carpeta.Split('/').Length > 2) { string[] vIndice = carpeta.Split('/'); string indiceRefactor = vIndice[vIndice.Length - 2].Trim(); indiceRefactor += string.Concat("/", vIndice[vIndice.Length - 1].Trim()); string[] vIndice2 = vIndice.Take(vIndice.Length - 2).ToArray(); vIndice2 = vIndice2.Reverse().ToArray(); string indiceRefactor2 = String.Join("/", vIndice2).Trim(); indiceRefactor += "/" + indiceRefactor2; carpeta = indiceRefactor; } break; case "csSql": carpeta = String.Join("/", carpeta.Split('/').Reverse().ToArray()); break; default: carpeta = string.Empty; break; } return(SharepointUtility.CleanSPSpecialCharacters(carpeta)); }
public void ImportarDocx() { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(_url)) { using (SPWeb web = site.OpenWeb()) { web.AllowUnsafeUpdates = true; try { string[] archivos = Directory.GetFiles(_path, "*.docx", SearchOption.AllDirectories); StreamWriter sw = new StreamWriter(_path + "\\" + "fechaConsulta.txt", true); foreach (string archivo in archivos) { string consulta = archivo.Split('\\').Last().Split('.').First(); string hora = string.Concat(DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString("00"), DateTime.Now.Day.ToString("00"), DateTime.Now.Hour.ToString("00"), DateTime.Now.Minute.ToString("00"), DateTime.Now.Second.ToString("00"), (DateTime.Now.Millisecond).ToString("000"), ".docx"); string urlNueva = string.Concat(_url, "/", hora); string urlConsulta = string.Concat(_url, "/", consulta, ".docx"); if (web.GetFile(urlConsulta).Item == null) { string exception; if (SharepointUtility.SubirArchivo(archivo, urlNueva, web, out exception)) { File.Move(archivo, archivo.Remove(archivo.LastIndexOf('\\')) + '\\' + hora); //LogProcesados.Crear(LogForErrepar.LogErrepar.TipoDeLog.INFO, hora + " $ " + consulta); sw.WriteLine(hora + "$" + consulta); ImportarMeta(site, web, urlNueva, consulta); } else { LoggingService.LogError("Importador COP", exception); } } else { sw.Close(); StreamReader sr = new StreamReader(_path + "\\" + "fechaConsulta.txt"); string reader = sr.ReadToEnd(); string consultaId = reader.Split('\n').First(c => c.Contains(consulta)).Split('$')[1].Trim(); this.ImportarMeta(site, web, urlConsulta, consultaId); sr.Close(); sw = new StreamWriter(_path + "\\" + "fechaConsulta.txt", true); } } sw.Close(); } catch (Exception ex) { LoggingService.LogError("Importador COP", ex.Message); } } } }); }
private void ImportarMeta(SPSite site, SPWeb web, string url, string consulta) { string nombre = string.Empty; try { SPListItem listItem = web.GetFile(url).Item; nombre = listItem.Name; SharepointUtility.CambiarContentType(listItem, "Consulta"); if (RealizarConsulta(consulta)) { foreach (Campo campo in this.campos) { switch (campo.Tipo) { case "Metadato": SharepointUtility.SetMetadata(ref listItem, site, campo.Nombre, (string)campo.Valor, 3082, false); break; default: SharepointUtility.SetColumnValue(listItem, listItem.ParentList.Fields.GetFieldByInternalName(campo.Nombre), campo.Valor); break; } } listItem.SystemUpdate(); if (_db.Equals("csSql")) { try { if (listItem.File.CheckOutType == SPFile.SPCheckOutType.None || listItem.File.CheckOutType == SPFile.SPCheckOutType.Online) { listItem.File.CheckIn(string.Empty, SPCheckinType.MinorCheckIn); } } catch (Exception ex) { LoggingService.LogError("Importador COP", "Error al procesar el archivo: " + nombre + " Mensaje: " + ex.Message); } } } } catch (Exception ex) { LoggingService.LogError("Importador COP", "Error al procesar el archivo: " + nombre + " Mensaje: " + ex.Message); } }
private static string RefactorAutor(string autor) { return(SharepointUtility.CleanSpecialCharacters(autor.Trim()[0].ToString()).Trim() + "/" + autor.Trim()); }