private DataTable LoadDataGrid() { DataTable dt = new DataTable(); DataTableFiltered = new DataTable(); RedEmpleoOffLineEntities db = new RedEmpleoOffLineEntities(); dt.Columns.Add("Estado", typeof(string)); dt.Columns.Add("Editar", typeof(string)); dt.Columns.Add("Ver", typeof(string)); dt.Columns.Add("Nombre Completo", typeof(string)); dt.Columns.Add("Identificación", typeof(string)); dt.Columns.Add("Departamento", typeof(string)); dt.Columns.Add("Municipio", typeof(string)); dt.Columns.Add("Vereda", typeof(string)); dt.Columns.Add("Teléfono", typeof(string)); dt.Columns.Add("Celular", typeof(string)); var personas = from p in db.Personas.OrderByDescending(x=>x.Fecha_Modificacion ) select new { Estado= p.Estado , NombreCompleto = p.PrimerNombre + " " + p.SegundoNombre + " " + p.PrimerApellido + " " + p.SegundoApellido, Identificacion = p.TipoDocumento + p.NoDocumento, Dep = p.Municipio.Departamento.nombre , ciud = p.Municipio.nombre, vere = p.Vereda, Tel= p.Telefono, Cel= p.Celular, Edit= p.AllowEdit }; foreach (var p in personas) { string Vereda = (from v in db.Veredas where v.IdCodigo.Contains(p.vere) select v.nombre).FirstOrDefault(); dt.Rows.Add(p.Estado.ToString(), p.Edit.ToString(), "true", p.NombreCompleto, p.Identificacion, p.Dep, p.ciud, Vereda, p.Tel, p.Cel); } DataTableFiltered.Columns.Add("Estado", typeof(string)); DataTableFiltered.Columns.Add("Editar", typeof(string)); DataTableFiltered.Columns.Add("Ver", typeof(string)); DataTableFiltered.Columns.Add("Nombre Completo", typeof(string)); DataTableFiltered.Columns.Add("Identificación", typeof(string)); DataTableFiltered.Columns.Add("Departamento", typeof(string)); DataTableFiltered.Columns.Add("Municipio", typeof(string)); DataTableFiltered.Columns.Add("Vereda", typeof(string)); DataTableFiltered.Columns.Add("Teléfono", typeof(string)); DataTableFiltered.Columns.Add("Celular", typeof(string)); List<List<string>> alist = new List<List<string>>(); foreach (var p in personas) { string Vereda = (from v in db.Veredas where v.IdCodigo.Contains(p.vere) select v.nombre).FirstOrDefault(); List<string> list1 = new List<string>() { p.Estado.ToString(), p.Edit.ToString(), "true", p.NombreCompleto, p.Identificacion, p.Dep, p.ciud, Vereda, p.Tel, p.Cel }; alist.Add(list1); } IList results = (IList)alist; CollectionViewList = new ListCollectionView(results); return dt; }
private void Sincronizar(object sender, RoutedEventArgs e) { RedEmpleoOffLineEntities db = new RedEmpleoOffLineEntities(); string Usuario = LebelUsuario.Content.ToString(); string UsurioUtente = (from u in db.UsuariosPuntos where u.Usuario.ToString().ToLower().Equals(Usuario.ToLower(), StringComparison.OrdinalIgnoreCase) select u.Redempleo_UTENTE).First().ToString(); var Allpersonas = (from p in db.Personas where p.Estado.Equals(null) select new { Id = p.Id, PrimerNombre = p.PrimerNombre, SegundoNombre = p.SegundoNombre, PrimerApellido = p.PrimerApellido, SegundoApellido = p.SegundoApellido, Sexo = p.Sexo, TipoDocumento = p.TipoDocumento, NoDocumento = p.NoDocumento, FechaNacimiento = p.FechaNacimiento, Usuario = p.Usuario, Contrasena = p.Contrasena, Departamento = p.Departamento, Ciudad = p.Ciudad, Direccion = p.Direccion, Barrio = p.Barrio, Telefono = p.Telefono, Celular = p.Celular, CorreoElectronico = p.CorreoElectronico, CentroEmpleo = p.CentroEmpleo,Fecha_Creacion = p.Fecha_Creacion, Redempleo_UTENTE = UsurioUtente }).ToList(); List<Listado> Listlistado = new List<Listado>(); foreach (var per in Allpersonas) { Listado listado = new Listado(); listado.Id = Convert.ToInt64(per.Id); listado.PrimerNombre = per.PrimerNombre; listado.SegundoNombre = per.SegundoNombre; listado.PrimerApellido = per.PrimerApellido; listado.SegundoApellido = per.SegundoApellido; listado.Sexo = per.Sexo; listado.TipoDocumento = per.TipoDocumento; listado.NoDocumento = per.NoDocumento; listado.FechaNacimiento = per.FechaNacimiento.ToString("yyyy-MM-dd hh:mm:ss"); listado.Usuario = per.Usuario; listado.Contrasena = per.Contrasena; listado.Departamento = per.Departamento; listado.Ciudad = per.Ciudad; listado.Direccion = per.Direccion; listado.Barrio = per.Barrio; listado.Telefono = per.Telefono; listado.Celular = per.Celular; listado.CorreoElectronico = per.CorreoElectronico; listado.CentroEmpleo = per.CentroEmpleo; listado.Fecha_Creacion = per.Fecha_Creacion.ToString("yyyy-MM-dd hh:mm:ss"); listado.Redempleo_UTENTE = per.Redempleo_UTENTE; Listlistado.Add(listado); } UsuariosPuntos Auth = (from u in db.UsuariosPuntos where u.Usuario.ToString().ToLower().Equals(Usuario.ToLower(), StringComparison.OrdinalIgnoreCase) select u).FirstOrDefault(); DataSync dataSync = new DataSync(); dataSync.listado = Listlistado; dataSync.usuariosPuntos = Auth; string jsonContent = JsonConvert.SerializeObject(dataSync); jsonContent = Regex.Replace(jsonContent, "(\"(?:[^\"\\\\]|\\\\.)*\")|\\s+", "$1"); //string url = "http://serviciodeempleo.gov.co:9095/api/redempleo/save/postPersonas"; //string url = "http://ivandarioperill/RedEmpleoII/api/redempleo/save/postPersonas"; string url = "http://*****:*****@"application/json"; Mensage relustado = null; bool conexion= false; try { using (Stream dataStream = request.GetRequestStream()) { dataStream.Write(byteArray, 0, byteArray.Length); } using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { //relustado = response.ToString(); if (response.StatusCode != HttpStatusCode.OK) throw new Exception(String.Format( "Server error (HTTP {0}: {1}).", response.StatusCode, response.StatusDescription)); using (Stream data = response.GetResponseStream()) using (var reader = new StreamReader(data)) { string text = reader.ReadToEnd(); // var jobj = (JObject)JsonConvert.DeserializeObject(text); relustado = JsonConvert.DeserializeObject<Mensage>(text); conexion = true; } } } catch (WebException ex) { MessageBox.Show("No hay conexion con el servidor: " + ex.Status +" "); } if (conexion) { if (relustado != null) { foreach (ResultadoCollection resultadoCollection in relustado.resultadoCollection) { Personas persona = db.Personas.Find(resultadoCollection.PersonasOffline_Id); persona.Fecha_Sincronizacion = DateTime.ParseExact(resultadoCollection.FechaSincronizacion, "yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture); //sincronisacion exitosa if (resultadoCollection.SyncOK) { persona.AllowEdit = false; persona.Estado = true; } // Error Al guardar if (resultadoCollection.ErrorGuardar) { persona.Estado = false; persona.AllowEdit = true; } //Persona Existe if (resultadoCollection.personaexiste) { persona.Estado = false; persona.AllowEdit = true; } //Conbinacion TipoDoc NoDocumento Existe if (resultadoCollection.TipoDocDocumentoexiste) { persona.Estado = false; persona.AllowEdit = true; } //Usuario Existe if (resultadoCollection.usuarioexiste) { persona.Estado = false; persona.AllowEdit = true; persona.UsuarioValido = true; } persona.Respuesta = resultadoCollection.Respuesta; persona.RedEmpleoID = resultadoCollection.Redempleo_Id; try { db.Entry(persona).State = EntityState.Modified; db.SaveChanges(); } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Combine the original exception message with the new one. var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage); MessageBox.Show(exceptionMessage); } } int oferentesSincronizados = (from o in relustado.resultadoCollection where o.SyncOK.Equals(true) select o.PersonasOffline_Id).ToList().Count(); int oferentesEsistentes = (from o in relustado.resultadoCollection where o.personaexiste.Equals(true) || o.TipoDocDocumentoexiste.Equals(true) select o.PersonasOffline_Id).ToList().Count(); int oferentesUsuarioExistente = (from o in relustado.resultadoCollection where o.usuarioexiste.Equals(true) select o.PersonasOffline_Id).ToList().Count(); MessageBox.Show("Sincronizacíon completa:\nTotal oferentes enviados => " + Listlistado.Count().ToString() + "\nTotal oferentes procesados => " + relustado.resultadoCollection.Count().ToString() + "\nTotal oferentes sincronizados => " + oferentesSincronizados.ToString() + "\nTotal oferentes ya registrados => " + oferentesEsistentes.ToString() + "\nTotal oferentes con usuario existente => " + oferentesUsuarioExistente.ToString()); RefrescarDatagrid(); } else { MessageBox.Show("El no hay registros para sincronizar"); } } else { // MessageBox.Show("El no hay registros para sincronizar"); } }
private void Edit_Click(object sender, RoutedEventArgs e) { RedEmpleoOffLineEntities db = new RedEmpleoOffLineEntities(); var button = (FrameworkElement)sender; var row = (DataGridRow)button.Tag; var content = ((System.Data.DataRowView)(row.Item)).Row.ItemArray[4]; string tipodoc = content.ToString().Substring(0, 2); string NoIdentificacion = content.ToString().Replace("CC", "").Replace("TI", "").Replace("CE", "").Replace("PA", ""); var AllowEdit = (from p in db.Personas where p.NoDocumento.Equals(NoIdentificacion) && p.TipoDocumento.Equals(tipodoc) select p.AllowEdit).FirstOrDefault(); if (!AllowEdit == false) { var UsuarioExistente = (from p in db.Personas where p.NoDocumento.Equals(NoIdentificacion) select p.UsuarioValido).FirstOrDefault(); string Usuario = LebelUsuario.Content.ToString(); Thread thread = new Thread(() => { var win = new EditPersona(content.ToString(), Usuario) { DataContext = new ViewModelEditPersona(NoIdentificacion) }; win.Show(); win.Closed += (sender1, e1) => win.Dispatcher.InvokeShutdown(); System.Windows.Threading.Dispatcher.Run(); RefrescarDatagrid(); }); thread.SetApartmentState(ApartmentState.STA); thread.IsBackground = true; thread.Start(); this.Visibility = Visibility.Collapsed; } else { MessageBox.Show("Oferente Sincronizado"); } }