private static void GetTerceroAction(object sender, DoWorkEventArgs e) { using (NeuronCloudBaseEntities context = new NeuronCloudBaseEntities(NeuronCloudBaseStorage.EntityConnectionString)) { var tercero = e.Argument as Modelos.Tercero; if (tercero != null) { bool actualizar = false; var terceroExistente = context.Tercero.FirstOrDefault(terceros => terceros.NumeroUnicoDocumento == tercero.NumeroUnicoDocumento); if (terceroExistente != null) { actualizar = true; e.Result = ProxyDBToModel.Tercero(terceroExistente); } if (!actualizar) { e.Result = tercero; } } else { throw new InvalidOperationException("Es Objeto no es de Tipo Modelos.Tercero o esta Vacio"); } } }
private static void BuscarOrdenesDeServicioAction(object sender, DoWorkEventArgs e) { var paramentrosBusqueda = e.Argument as ParametrosBusquedaOrdenDeServicio; if (paramentrosBusqueda != null) { var salida = new List <OrdenDeServicio>(); var numeroDeResultados = paramentrosBusqueda.NumeroDeResultados; if (paramentrosBusqueda.NumeroDeResultados < 0) { numeroDeResultados = 100; } using (NeuronCloudBaseEntities contexto = new NeuronCloudBaseEntities(NeuronCloudBaseStorage.EntityConnectionString)) { if (paramentrosBusqueda.TodasLasFechas || (!paramentrosBusqueda.FechaInicio.HasValue && !paramentrosBusqueda.FechaFin.HasValue)) { if (string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento)) { Debug.WriteLine("resultadosSinFiltros"); var resultadosSinFiltros = (from ordenDeServicio in contexto.OSC join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados); Debug.WriteLine(((ObjectQuery)resultadosSinFiltros).ToTraceString()); foreach (var resultado in resultadosSinFiltros) { var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc); foreach (var oscDet in resultado.Detalle) { osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet)); } salida.Add(osc); } } else if (string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && !string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento)) { Debug.WriteLine("resultadosFiltroNumeroDoc"); var resultadosFiltroNumeroDoc = (from ordenDeServicio in contexto.OSC join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles where ordenDeServicio.NumeroUnicoDocumento.Contains(paramentrosBusqueda.NumeroUnicoDocumento) select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados); Debug.WriteLine(((ObjectQuery)resultadosFiltroNumeroDoc).ToTraceString()); foreach (var resultado in resultadosFiltroNumeroDoc) { var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc); foreach (var oscDet in resultado.Detalle) { osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet)); } salida.Add(osc); } } else if (!string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento)) { Debug.WriteLine("resultadosFiltroOsc"); var resultadosFiltroOsc = (from ordenDeServicio in contexto.OSC join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles where ordenDeServicio.DocUnicoOSC.Contains(paramentrosBusqueda.DocUnicoOsc) select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados); Debug.WriteLine(((ObjectQuery)resultadosFiltroOsc).ToTraceString()); foreach (var resultado in resultadosFiltroOsc) { var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc); foreach (var oscDet in resultado.Detalle) { osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet)); } salida.Add(osc); } } else { Debug.WriteLine("resultadosFiltroNumeroDocYOsc"); var resultadosFiltroNumeroDocYOsc = (from ordenDeServicio in contexto.OSC join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles where ordenDeServicio.NumeroUnicoDocumento.Contains(paramentrosBusqueda.NumeroUnicoDocumento) && ordenDeServicio.DocUnicoOSC.Contains(paramentrosBusqueda.DocUnicoOsc) select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados); Debug.WriteLine(((ObjectQuery)resultadosFiltroNumeroDocYOsc).ToTraceString()); foreach (var resultado in resultadosFiltroNumeroDocYOsc) { var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc); foreach (var oscDet in resultado.Detalle) { osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet)); } salida.Add(osc); } } } else if (paramentrosBusqueda.FechaInicio.HasValue && paramentrosBusqueda.FechaFin.HasValue) { if (string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento)) { Debug.WriteLine("resultadosSinFiltros Con Fecha"); var resultadosSinFiltros = (from ordenDeServicio in contexto.OSC join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles where ordenDeServicio.Fecha >= paramentrosBusqueda.FechaInicio.Value where ordenDeServicio.Fecha <= paramentrosBusqueda.FechaFin.Value select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados); Debug.WriteLine(((ObjectQuery)resultadosSinFiltros).ToTraceString()); foreach (var resultado in resultadosSinFiltros) { var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc); foreach (var oscDet in resultado.Detalle) { osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet)); } salida.Add(osc); } } else if (string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && !string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento)) { Debug.WriteLine("resultadosFiltroNumeroDoc Con Fecha"); var resultadosFiltroNumeroDoc = (from ordenDeServicio in contexto.OSC join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles where ordenDeServicio.NumeroUnicoDocumento.Contains(paramentrosBusqueda.NumeroUnicoDocumento) where ordenDeServicio.Fecha >= paramentrosBusqueda.FechaInicio.Value where ordenDeServicio.Fecha <= paramentrosBusqueda.FechaFin.Value select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados); Debug.WriteLine(((ObjectQuery)resultadosFiltroNumeroDoc).ToTraceString()); foreach (var resultado in resultadosFiltroNumeroDoc) { var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc); foreach (var oscDet in resultado.Detalle) { osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet)); } salida.Add(osc); } } else if (!string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento)) { Debug.WriteLine("resultadosFiltroOsc Con Fecha"); var resultadosFiltroOsc = (from ordenDeServicio in contexto.OSC join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles where ordenDeServicio.DocUnicoOSC.Contains(paramentrosBusqueda.DocUnicoOsc) where ordenDeServicio.Fecha >= paramentrosBusqueda.FechaInicio.Value where ordenDeServicio.Fecha <= paramentrosBusqueda.FechaFin.Value select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados); Debug.WriteLine(((ObjectQuery)resultadosFiltroOsc).ToTraceString()); foreach (var resultado in resultadosFiltroOsc) { var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc); foreach (var oscDet in resultado.Detalle) { osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet)); } salida.Add(osc); } } else { Debug.WriteLine("resultadosFiltroNumeroDocYOsc Con Fecha"); var resultadosFiltroNumeroDocYOsc = (from ordenDeServicio in contexto.OSC join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles where ordenDeServicio.NumeroUnicoDocumento.Contains(paramentrosBusqueda.NumeroUnicoDocumento) && ordenDeServicio.DocUnicoOSC.Contains(paramentrosBusqueda.DocUnicoOsc) where ordenDeServicio.Fecha >= paramentrosBusqueda.FechaInicio.Value where ordenDeServicio.Fecha <= paramentrosBusqueda.FechaFin.Value select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados); Debug.WriteLineIf(resultadosFiltroNumeroDocYOsc is ObjectQuery, ((ObjectQuery)resultadosFiltroNumeroDocYOsc).ToTraceString()); foreach (var resultado in resultadosFiltroNumeroDocYOsc) { var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc); foreach (var oscDet in resultado.Detalle) { osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet)); } salida.Add(osc); } } } else { throw new Exception("Se inicio una Búqueda por Rango de Fechas y una de las Fechas es Nula."); } } e.Result = salida; } }