/// <summary> /// Función estatica que copia un Objeto Archivo de Texto a la Zona de trabajo que se indica /// </summary> /// <param name="p_ZonasDeTrabajoEnum">Enumerador indicando la Zona de Trabajo</param> /// <param name="p_Archivo">Objeto Archivo de Texto a incorporar</param> /// <returns>true:Exitoso </returns> public static bool AgregarArchivoZonaDeTrabajo(ZonasDeTrabajoEnum p_ZonasDeTrabajoEnum, ArchivoDeTextoPlano p_Archivo) { ZonaDeTrabajo zona = RespitorioLaboratorio._ListaZonasDeTrabajo.Where(x => x.NombreZonaDeTrabajo == p_ZonasDeTrabajoEnum).FirstOrDefault(); if (zona._ListaDeArchivos == null) { zona._ListaDeArchivos = new List <ArchivoDeTextoPlano>(); } zona._ListaDeArchivos.Add(p_Archivo); return(true); }
private void CargaListaArchivos(ZonasDeTrabajoEnum p_ZonasDeTrabajoEnum) { listView1.Items.Clear(); zonaDeTrabajo = Form1.repositorioController.obtenerZonaDeTrabajo(p_ZonasDeTrabajoEnum); if (zonaDeTrabajo._ListaDeArchivos != null && zonaDeTrabajo._ListaDeArchivos.Count > 0) { foreach (ArchivoDeTextoPlano item in zonaDeTrabajo._ListaDeArchivos) { ListViewItem itemTXT = new ListViewItem(item._Nombre); itemTXT.SubItems.Add(item._FechaModificacion.ToString()); itemTXT.SubItems.Add(item._Version.ToString()); listView1.Items.Add(itemTXT); } } }
/// <summary> /// Función que se encarga de listar de objetos (Archivos de texto plano) para ser listados /// </summary> /// <param name="p_ZonasDeTrabajoEnum">zona de trabajo de la cual obtnendrá los objetos</param> private void CargaListaArchivos(ZonasDeTrabajoEnum p_ZonasDeTrabajoEnum) { listView1.Items.Clear(); //Obtiene los objetos de la zona de trabajo que es enviada como parametro zonaDeTrabajo = Form1.repositorioController.obtenerZonaDeTrabajo(ZonasDeTrabajoEnum.Workspace); if (zonaDeTrabajo._ListaDeArchivos != null && zonaDeTrabajo._ListaDeArchivos.Count > 0) { ///Llena la lista para ser desplegados por el usuario en con User Control foreach (ArchivoDeTextoPlano item in zonaDeTrabajo._ListaDeArchivos) { ListViewItem itemTXT = new ListViewItem(item._Nombre); itemTXT.SubItems.Add(item._FechaModificacion.ToString()); itemTXT.SubItems.Add(item._Version.ToString()); listView1.Items.Add(itemTXT); } btnActualiza.Visible = true; } }
/// <summary> /// Función que se encarga de listar la lista de archivos de texto plano para ser vializadas por el usuario /// </summary> /// <param name="p_ZonasDeTrabajoEnum"></param> /// <param name="p_Repositorio"></param> private void CargaListaArchivosIndex(ZonasDeTrabajoEnum p_ZonasDeTrabajoEnum, Repositorio p_Repositorio) { listView2.Items.Clear(); ///Obtiene la Zona de Trabajo para cargar los archivos ZonaDeTrabajo zonaDeTrabajo = p_Repositorio._ListaZonasDeTrabajo.FirstOrDefault(x => x.NombreZonaDeTrabajo == p_ZonasDeTrabajoEnum); if (zonaDeTrabajo._ListaDeArchivos != null && zonaDeTrabajo._ListaDeArchivos.Count > 0) { ///Recorre la lista de archivos y llena el user control foreach (ArchivoDeTextoPlano item in zonaDeTrabajo._ListaDeArchivos) { ListViewItem itemTXT = new ListViewItem(item._Nombre); itemTXT.SubItems.Add(item._Version.ToString()); listView2.Items.Add(itemTXT); } //Informa la cantidad de archivos lblCantidadIndex.Text = zonaDeTrabajo._ListaDeArchivos.Count.ToString(); } }
/// <summary> /// Función que copia la lista de archivos de la Zona de Trabajo Local Repository a Remote Repository /// </summary> /// <returns>1: Exitoso; 0: Fallido</returns> public int AddAllFilesToRemoteRepository() { //Se obtiene la Zona de Trabajo de donde se copia, hacia la cual se deben copiar los archivos. ZonaDeTrabajo zonaDesde = RespitorioLaboratorio._ListaZonasDeTrabajo.Where(x => x.NombreZonaDeTrabajo == ZonasDeTrabajoEnum.LocalRepository).FirstOrDefault(); ZonaDeTrabajo zonaHasta = RespitorioLaboratorio._ListaZonasDeTrabajo.Where(x => x.NombreZonaDeTrabajo == ZonasDeTrabajoEnum.RemoteRepository).FirstOrDefault(); if (zonaHasta._ListaDeArchivos == null) { zonaHasta._ListaDeArchivos = new List <ArchivoDeTextoPlano>(); } int respuesta = 0; if (zonaDesde._ListaCommit != null) { //Se comeinza a copiar la lista de objetos que provienen del commit, hacia la nueva zona de trabajo foreach (Commit p in zonaDesde._ListaCommit) { if (!p._Copiado) { foreach (ArchivoDeTextoPlano p1 in p._ListaDeArchivos) { var archivo = zonaHasta._ListaDeArchivos.FirstOrDefault(x => x._Nombre == p1._Nombre); if (archivo != null && !String.IsNullOrEmpty(archivo._Contenido)) { //Si el objeti ya se encuentra se eliina y luego de copia zonaHasta._ListaDeArchivos.Remove(archivo); archivo = p1; zonaHasta._ListaDeArchivos.Add(p1); } else { zonaHasta._ListaDeArchivos.Add(p1); } respuesta += 1; } } //El commit queda como ya copiado, para posteriormente copiar sólo los que no se encuentran con el valor verdadero (true) p._Copiado = true; } } return(respuesta); }
/// <summary> /// Función que se encarga de listar la lista de archivos de texto plano para ser vializadas por el usuario, especifica para listar los Commits /// </summary> /// <param name="p_ZonasDeTrabajoEnum"></param> /// <param name="p_Repositorio"></param> private void CargaListaCommits(ZonasDeTrabajoEnum p_ZonasDeTrabajoEnum, Repositorio p_Repositorio) { listView3.Items.Clear(); ///Obtiene la Zona de Trabajo para cargar los archivos ZonaDeTrabajo zonaDeTrabajo = p_Repositorio._ListaZonasDeTrabajo.FirstOrDefault(x => x.NombreZonaDeTrabajo == p_ZonasDeTrabajoEnum); if (zonaDeTrabajo._ListaCommit != null && zonaDeTrabajo._ListaCommit.Count > 0) { ///Recorre la lista de Commits y llena el user control foreach (Commit item in zonaDeTrabajo._ListaCommit) { ListViewItem itemTXT = new ListViewItem(item._Identificador.ToString()); itemTXT.SubItems.Add(item._Fecha.ToString()); itemTXT.SubItems.Add(item._ListaDeArchivos.Count.ToString()); listView3.Items.Add(itemTXT); } //Informa la cantidad de Commits lblCantidadCommits.Text = zonaDeTrabajo._ListaCommit.Count.ToString(); } }
/// <summary> /// Función que Copia todos los Archivos de la Zona de Trabajo Remote Repository hacia la Zona de /// trabajo WorkSpace, siendo todos reemplazados. /// </summary> /// <returns>1: Exitoso; 0: Fallido</returns> public int AddAllFilesToWorkSpave() { int resultado = 0; //Busca toda la lista de objetos desde la zona de inicio a la zona donde se copiarán ZonaDeTrabajo zonaDesde = RespitorioLaboratorio._ListaZonasDeTrabajo.Where(x => x.NombreZonaDeTrabajo == ZonasDeTrabajoEnum.RemoteRepository).FirstOrDefault(); ZonaDeTrabajo zonaHasta = RespitorioLaboratorio._ListaZonasDeTrabajo.Where(x => x.NombreZonaDeTrabajo == ZonasDeTrabajoEnum.Workspace).FirstOrDefault(); foreach (ArchivoDeTextoPlano p in zonaDesde._ListaDeArchivos) { //Se busca si contiene el archivo en la zona de trabajo donde se copiará, en el caso que existe lo elimina var archivo = zonaHasta._ListaDeArchivos.FirstOrDefault(x => x._Nombre.Equals(p._Nombre)); if (archivo != null) { zonaHasta._ListaDeArchivos.Remove(archivo); } //agrega el objeto a la lista zonaHasta._ListaDeArchivos.Add(p); resultado += 1; } return(resultado); }
private void btnPushFiles_Click(object sender, EventArgs e) { zonaDeTrabajo = Form1.repositorioController.obtenerZonaDeTrabajo(ZonasDeTrabajoEnumerador); if (zonaDeTrabajo._ListaCommit != null && zonaDeTrabajo._ListaCommit.Count > 0) { List <Commit> listaCommits = zonaDeTrabajo._ListaCommit.Where(x => !x._Copiado).ToList(); if (listaCommits != null && listaCommits.Count > 0) { int resulado = Form1.repositorioController.AddAllFilesToRemoteRepository(); if (resulado > 0) { MessageBox.Show("Se han copiado los archivos en Remote Repository"); } else { MessageBox.Show("Ha ocurido un problema al copiar los archivos"); } } } CargaListaArchivos(ZonasDeTrabajoEnumerador); }
private void CargaListaArchivos(ZonasDeTrabajoEnum p_ZonasDeTrabajoEnum) { listView1.Items.Clear(); zonaDeTrabajo = Form1.repositorioController.obtenerZonaDeTrabajo(p_ZonasDeTrabajoEnum); if (zonaDeTrabajo._ListaDeArchivos != null && zonaDeTrabajo._ListaDeArchivos.Count > 0) { List <ArchivoDeTextoPlanoModel> listaArchivos = new List <ArchivoDeTextoPlanoModel>(); var listadoOrdenado = zonaDeTrabajo._ListaCommit.OrderBy(x => x._Fecha); foreach (Commit temp in listadoOrdenado) { foreach (ArchivoDeTextoPlano item in temp._ListaDeArchivos) { var archivo = listaArchivos.FirstOrDefault(x => x._Nombre.Equals(item._Nombre)); if (archivo != null) { listaArchivos.Remove(archivo); archivo = new ArchivoDeTextoPlanoModel(item, temp); listaArchivos.Add(archivo); } else { listaArchivos.Add(new ArchivoDeTextoPlanoModel(item, temp)); } } } foreach (ArchivoDeTextoPlanoModel item in listaArchivos) { ListViewItem itemTXT = new ListViewItem(item._Nombre); itemTXT.SubItems.Add(item._FechaModificacion.ToString()); itemTXT.SubItems.Add(item._Version.ToString()); itemTXT.SubItems.Add(item.Identificador_Commit.ToString()); itemTXT.SubItems.Add(item._FechaCommit.ToString()); listView1.Items.Add(itemTXT); } btnPushFiles.Visible = true; } }
private void btnPushFiles_Click(object sender, EventArgs e) { zonaDeTrabajo = Form1.repositorioController.obtenerZonaDeTrabajo(ZonasDeTrabajoEnumerador); if (zonaDeTrabajo._ListaDeArchivos != null && zonaDeTrabajo._ListaDeArchivos.Count > 0) { int resulado = Form1.repositorioController.AddAllFilesToWorkSpave(); if (resulado > 0) { MessageBox.Show("Se han copiado los archivos en Workspace"); } else { MessageBox.Show("Ha ocurido un problema al copiar los archivos"); } } else { MessageBox.Show("No contiene archivos"); } CargaListaArchivos(ZonasDeTrabajoEnumerador); }
/// <summary> /// Función que se encarga de copiar la lista de Archivos a la Zona de Trabajo Index /// </summary> /// <param name="p_ListaArchivos">Lista de Objetos ArchivoDeTextoPlano que deben ser copiados</param> /// <returns>1:EXitoso; 0: Fallido</returns> public static int AddFileToIndex(List <ArchivoDeTextoPlano> p_ListaArchivos) { int resultado = 0; try { //Se busca la Zona de trabajo ZonaDeTrabajo zona = RespitorioLaboratorio._ListaZonasDeTrabajo.Where(x => x.NombreZonaDeTrabajo == ZonasDeTrabajoEnum.Index).FirstOrDefault(); //Si no ha sido inicializada se crea la instancia if (zona._ListaDeArchivos == null) { zona._ListaDeArchivos = new List <ArchivoDeTextoPlano>(); } //Se comienza la copia del archivo foreach (ArchivoDeTextoPlano archivo in p_ListaArchivos) { var archivoTemp = zona._ListaDeArchivos.FirstOrDefault(x => x._Nombre == archivo._Nombre); //En el caso que el archivo exista lo reemplaza if (archivoTemp != null) { archivoTemp = archivo; } else { zona._ListaDeArchivos.Add(archivo); } resultado++; } } catch (Exception) { return(0); } return(resultado); }
/// <summary> /// Función interna donde se aplica el GetInir, iniciando el Objeto repositorio /// </summary> /// <param name="p_Nombre">Nombre del Repositorio</param> /// <param name="p_Autor">Autor del Repositorio</param> /// <returns>1: Exitoso; 0: Fallido</returns> public int gitInit(String p_Nombre, String p_Autor) { ///Se inicializan todos los objetos RespitorioLaboratorio = new Repositorio(); //Se valida que contenga los valores minimos para inicializar el repositorio if (!p_Nombre.Equals("") && !p_Autor.Equals("")) { RespitorioLaboratorio._Nombre = p_Nombre; RespitorioLaboratorio._Autor = p_Autor; RespitorioLaboratorio._ListaZonasDeTrabajo = new List <ZonaDeTrabajo>(); ZonaDeTrabajo zonaDeTrabajo = new ZonaDeTrabajo(); zonaDeTrabajo.NombreZonaDeTrabajo = ZonasDeTrabajoEnum.Workspace; RespitorioLaboratorio._ListaZonasDeTrabajo.Add(zonaDeTrabajo); zonaDeTrabajo = new ZonaDeTrabajo(); zonaDeTrabajo.NombreZonaDeTrabajo = ZonasDeTrabajoEnum.Index; RespitorioLaboratorio._ListaZonasDeTrabajo.Add(zonaDeTrabajo); zonaDeTrabajo = new ZonaDeTrabajo(); zonaDeTrabajo.NombreZonaDeTrabajo = ZonasDeTrabajoEnum.LocalRepository; RespitorioLaboratorio._ListaZonasDeTrabajo.Add(zonaDeTrabajo); zonaDeTrabajo = new ZonaDeTrabajo(); zonaDeTrabajo.NombreZonaDeTrabajo = ZonasDeTrabajoEnum.RemoteRepository; RespitorioLaboratorio._ListaZonasDeTrabajo.Add(zonaDeTrabajo); return(1); } else { return(0); } }
/// <summary> /// Función que demuestra los archivos que se encuentran en el Remote Repository y en la Zona de Trabajo Workspace /// </summary> /// <param name="p_ZonasDeTrabajoEnumDesde"></param> /// <param name="p_ZonasDeTrabajoEnumHasta"></param> /// <param name="p_Repositorio"></param> private void CargaListaRemote(ZonasDeTrabajoEnum p_ZonasDeTrabajoEnumDesde, ZonasDeTrabajoEnum p_ZonasDeTrabajoEnumHasta, Repositorio p_Repositorio) { ///Obtiene la lista de archivos en las zonas de trabajo correcpondientes ZonaDeTrabajo zonaDeTrabajo = p_Repositorio._ListaZonasDeTrabajo.FirstOrDefault(x => x.NombreZonaDeTrabajo == p_ZonasDeTrabajoEnumDesde); ZonaDeTrabajo zonaDeTrabajoHasta = p_Repositorio._ListaZonasDeTrabajo.FirstOrDefault(x => x.NombreZonaDeTrabajo == p_ZonasDeTrabajoEnumHasta); bool Iguales = false; List <ArchivoDeTextoPlano> listaArchivos = new List <ArchivoDeTextoPlano>(); if (zonaDeTrabajoHasta._ListaDeArchivos != null && zonaDeTrabajo._ListaDeArchivos != null) { ListViewItem itemTXT = new ListViewItem(); ///Comprueba que el ARchivo de Remote repository exista en la Zona de Trabajo workSpace foreach (ArchivoDeTextoPlano archivo in zonaDeTrabajoHasta._ListaDeArchivos) { itemTXT = new ListViewItem(archivo._Nombre.ToString()); itemTXT.SubItems.Add(archivo._Version.ToString()); itemTXT.SubItems.Add(archivo._FechaModificacion.ToString()); var archivoWorkSpace = zonaDeTrabajo._ListaDeArchivos.FirstOrDefault(x => x._Nombre == archivo._Nombre); if (archivoWorkSpace != null) { if (archivo._Version == archivoWorkSpace._Version) { itemTXT.SubItems.Add("Archivos Iguales"); if (!Iguales) { Iguales = true; } } else { itemTXT.SubItems.Add("Diferentes Versiones"); Iguales = false; } } else { itemTXT.SubItems.Add("Archivo No Existe en WorkSpace"); Iguales = false; } listView4.Items.Add(itemTXT); } ///Comprueba que el Archivo de WorkSpae exista en la Zona de Remote Repository foreach (ArchivoDeTextoPlano archivo in zonaDeTrabajo._ListaDeArchivos) { itemTXT = new ListViewItem(archivo._Nombre.ToString()); itemTXT.SubItems.Add(archivo._Version.ToString()); itemTXT.SubItems.Add(archivo._FechaModificacion.ToString()); var archivoWorkSpace = zonaDeTrabajoHasta._ListaDeArchivos.FirstOrDefault(x => x._Nombre == archivo._Nombre); if (archivoWorkSpace != null) { if (archivo._Version != archivoWorkSpace._Version) { itemTXT.SubItems.Add("Diferentes Versiones"); } } else { itemTXT.SubItems.Add("Archivo No Existe en Remote Repository"); listView4.Items.Add(itemTXT); Iguales = false; } } } else { Iguales = true; } lblIguales.Text = Iguales ? "Si" : "No"; }
/// <summary> /// Constructor dle formulario, contiene la zona de trabajo donde será agregado el archivo de texto plano /// </summary> /// <param name="p_ZonaDeTrabajo"></param> public frmFileName(ZonaDeTrabajo p_ZonaDeTrabajo) { _zonaDeTrabajo = p_ZonaDeTrabajo; InitializeComponent(); }
/// <summary> /// Función que copia la lista de objetos que se ingresar, a la Zona de Trabajo Local Repository, creando un Commit /// </summary> /// <param name="p_Mensaje">Mensaje de descripción del Commit</param> /// <param name="p_ListaArchivos">Opcional, Lista de Objetos que se deben incluin en el commit</param> /// <returns></returns> public int AddAllFilesToLocalRepository(String p_Mensaje, List <ArchivoDeTextoPlano> p_ListaArchivos = null) { int resultado = 0; //Obtiene las zona de trabajo de donde se deben copias hacia a la cual de deben copiar ZonaDeTrabajo zonaDesde = RespitorioLaboratorio._ListaZonasDeTrabajo.Where(x => x.NombreZonaDeTrabajo == ZonasDeTrabajoEnum.Index).FirstOrDefault(); ZonaDeTrabajo zonaHasta = RespitorioLaboratorio._ListaZonasDeTrabajo.Where(x => x.NombreZonaDeTrabajo == ZonasDeTrabajoEnum.LocalRepository).FirstOrDefault(); if (zonaHasta._ListaDeArchivos == null) { zonaHasta._ListaDeArchivos = new List <ArchivoDeTextoPlano>(); } if (zonaHasta._ListaCommit == null) { zonaHasta._ListaCommit = new List <Commit>(); } //Se instancia objeto commit int idComit = 1; if (zonaHasta._ListaCommit.Count > 0) { idComit = zonaHasta._ListaCommit.Max(x => x._Identificador) + 1; } Commit commit = new Commit(); commit._Fecha = DateTime.Now; commit._Identificador = idComit; commit._Mensaje = p_Mensaje; commit._Copiado = false; commit._ListaDeArchivos = new List <ArchivoDeTextoPlano>(); //se instancia el objeto si es nulo if (p_ListaArchivos == null) { p_ListaArchivos = zonaDesde._ListaDeArchivos; } foreach (ArchivoDeTextoPlano p in p_ListaArchivos) { //si el objeto existe se reemplaza var archivo = zonaHasta._ListaDeArchivos.FirstOrDefault(x => x._Nombre == p._Nombre); if (archivo != null && !String.IsNullOrEmpty(archivo._Contenido)) { archivo = p; } else { zonaHasta._ListaDeArchivos.Add(p); } //Se agrega a la lista de objetos que estan relacionados con el commit commit._ListaDeArchivos.Add(p); resultado += 1; } zonaHasta._ListaCommit.Add(commit); return(resultado); }