/// <summary> /// Recibe una linea respetando la nomenclatura establecida, la parsea y la valida instanciando una nueva persona. /// </summary> /// <param name="linea">String Cuit;Sexo;Edad</param> public Persona(string linea) { // Split string[] words = linea.Split(';'); try { // Cuit. if (Documentos.CuitEsValido(words[0])) { this.cuit = words[0]; } else { throw new Exception("El cuit es inválido."); } //Edad. if (!int.TryParse(words[2], out this.edad)) { throw new Exception("La edad es inválida."); } // Sexo. if (words[1].Equals("M") || words[1].Equals("F")) { this.sexo = words[1]; } else { throw new Exception(string.Format("El sexo {0} es inválido para instanciar una persona", words[1])); } } catch (Exception e) { logRegistro.Error(e, "Error a la hora de instanciar persona."); } }
/// <summary> /// Recorre una lista de registros y en caos de estar repetidos los elimina y lo registra. /// </summary> private static void procesarDuplicados() { try { var distinct = Administrador.Personas.GroupBy(x => x.Cuit).Select(g => g.First()).ToList(); int diferencia = Administrador.Personas.Count - distinct.Count; if (diferencia > 0) { Administrador.Personas = distinct; Administrador.cantidadRepetidos = diferencia; } registrarAccion(string.Format("Registros duplicados limpiados - Cantidad de duplicados: {0}", Administrador.cantidadRepetidos)); } catch (Exception e) { logAdministrador.Error(e, "Error a la hora de evaluar los registros repetidos"); } }