Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 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;
     }
 }
Exemplo n.º 4
0
        /// <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();
            }
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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();
            }
        }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 11
0
        /// <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);
        }
Exemplo n.º 12
0
        /// <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);
            }
        }
Exemplo n.º 13
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";
        }
Exemplo n.º 14
0
 /// <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();
 }
Exemplo n.º 15
0
        /// <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);
        }