public bool UpdateProveedor(Proveedor modificado) { HIDContext ctx = DB.Context; bool result = false; try { Errores.Clear(); // ctx.Proveedores.Add(nuevo); // var errorList = ctx.GetValidationErrors(); // una para cada instancia...ojo... var validation = ctx.Entry(modificado).GetValidationResult(); if (!validation.IsValid) { Errores.AddRange(HidErrorInfo.FromEFCollectionError(validation.ValidationErrors)); } else { ctx.SaveChanges(); Audit(InfoType.Modificacion, "UpdateProveedor", string.Format("[M] Proveedor: Nombre --> {0} CUIT --> {1}", modificado.Nombre, modificado.CUIT)); result = true; } } catch (Exception ex) { Errores.Add(HidErrorInfo.FromException(ex)); } return(result); }
public T?ObtenerEnum <T>(int columna, string descripcion, bool esRequerido = true) where T : struct { var tipo = typeof(T); if (!tipo.IsEnum) { throw new ArgumentException(string.Format("El tipo '{0}' no es un Enum válido.", tipo.Name)); } var celda = Hoja.Cells[Fila, columna]; var valor = celda.Value; if (valor != null) { try { return((T?)Enum.Parse(tipo, Convert.ToString(valor))); } catch (Exception) { Errores.Add(string.Format("El dato '{0}' no es válido (celda {1}).", descripcion, celda.Address)); return(null); } } else { if (esRequerido) { Errores.Add(string.Format("El dato '{0}' es requerido y no ha sido especificado (celda {1}).", descripcion, celda.Address)); } return(null); } }
protected T?ObtenerValor <T>(int columna, string descripcion, bool esRequerido = true) where T : struct { var celda = Hoja.Cells[Fila, columna]; var valor = celda.Value; if (valor != null) { try { return((T)Convert.ChangeType(valor, typeof(T))); } catch (Exception) { Errores.Add(string.Format("El dato '{0}' no es válido (celda {1}).", descripcion, celda.Address)); return(null); } } else { if (esRequerido) { Errores.Add(string.Format("El dato '{0}' es requerido y no ha sido especificado (celda {1}).", descripcion, celda.Address)); } return(null); } }
/// <summary> /// Recepción de datos del puerto serial enviados por arduino /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { //-------------------------Recepción de datos del arduino------------------------------ _bufferint = serialPort1.ReadLine(); //-------------Convirtiendo valores recibidos a datos tipo double------------------ bool valnum1 = double.TryParse(_bufferint, out _data1); //-------------------Muestreo de datos para filtrar errores de medición------------- if (valnum1) // Validando que el dato recibido sea un número { _dataHcsr04 = _data1; ErrorIntegral(_dataHcsr04 * 0.017); _sumHcsr04 = _sumHcsr04 + _dataHcsr04; _contador++; } //--------------Promediando datos del muestreo y calculando distancias------------------ if (_contador == 29) { _promHcsr04 = _sumHcsr04 / 30; _contador = 0; _sumHcsr04 = 0; _sumTime = 0; _distanceHcsr04 = _promHcsr04 * 0.017; ErrorProporcional(_distanceHcsr04); ErrorDerivativo(_distanceHcsr04); //-------------Mandando distancia sensada por el sensor al monitor------------------ BufferContentHcsr04(Math.Round(_distanceHcsr04, 1).ToString()); BufferOutEp(Ep.ToString()); BufferOutEint(Ei.ToString()); BufferOutEderiv(Ed.ToString()); BufferOutPwm(_pwmPid.ToString()); //-----------------Envio de datos al arduino y graficación--------------------------- serialPort1_SenddataProportional(_distanceHcsr04); Updategraph(i++, _distanceHcsr04); serialPort1.DiscardInBuffer(); //-----------------Añadiendo datos a lista para su ingreso al excel------------------- Posiciones.Add(_distanceHcsr04); Errores.Add(Ep); if (i > 100) { i = 0; } } }
/// <summary> /// Realiza las labores necesarias en caso de que la respuesta /// sea errónea. /// </summary> protected virtual void TratarErrores() { foreach (Match error in _RgErrores.Matches(_ContenidoTexto)) { Errores.Add(new RespuestaError(error.Value)); } foreach (Match error in _RgErroresEntradaIncorrecta.Matches(_ContenidoTexto)) { Errores.Add(new RespuestaError(error.Value)); } }
internal void NuevoError(string tipo, string fuente, int fila, int columna, string comentario) { Error e = new Error() { Tipo = tipo, Fuente = fuente, Fila = fila, Columna = columna, Comentario = comentario }; Errores.Add(e); }
/// <summary> /// Realiza las labores necesarias en caso de que la respuesta /// se satisfactoria. /// </summary> protected override void TratarExito() { switch ((_Peticion as PeticionTgvi).Accion) { case "InicializarEnvio": IdEnvio = _HttpWebResponse.Headers["IDENVIO"].Trim(); SigBloque = _HttpWebResponse.Headers["SIGBLOQUE"].Trim(); Cookie = _HttpWebResponse.Headers["Set-Cookie"].Trim(); break; case "EnviarDatos": IdEnvio = _HttpWebResponse.Headers["IDENVIO"].Trim(); EstadoEnvio = _HttpWebResponse.Headers["ESTADO"].Trim(); if (EstadoEnvio != "FINALIZADO") { SigBloque = _HttpWebResponse.Headers["SIGBLOQUE"].Trim(); } RegistrosEnviadosCorrectos = Convert.ToInt32(_HttpWebResponse.Headers["TOTALT2OK"].Trim()); RegistrosEnviadosErroneos = Convert.ToInt32(_HttpWebResponse.Headers["TOTALT2KO"].Trim()); RegistrosEnvioCorrectos = Convert.ToInt32(_HttpWebResponse.Headers["BLOQUET2OK"].Trim()); RegistrosEnvioErroneos = Convert.ToInt32(_HttpWebResponse.Headers["BLOQUET2KO"].Trim()); if (RegistrosEnviadosErroneos > 0) { Erronea = true; Errores.Add(new RespuestaError($"Existen {RegistrosEnviadosErroneos} registros erróneos en el envío.")); } break; case "PresentarEnvio": IdEnvio = _HttpWebResponse.Headers["IDENVIO"].Trim(); CSV = _HttpWebResponse.Headers["CSV"].Trim(); Expediente = _HttpWebResponse.Headers["EXPEDIENTE"].Trim(); break; case "RecuperarErrores": IdEnvio = _HttpWebResponse.Headers["IDENVIO"].Trim(); EstadoEnvio = _HttpWebResponse.Headers["ESTADO"].Trim(); Erronea = true; Errores.Add(new RespuestaError(_ContenidoTexto)); // Añadimos el fichero devuelto con los registros erróneos. break; default: throw new ArgumentException($"'{(_Peticion as PeticionTgvi).Accion}' no es una acción válida."); } }
private void Plot() { Errores.Add(new ObservableValue(RedNeuronal.ErrorEntrenamiento)); for (int i = 0; i < RedNeuronal.SalidasDeseadas.GetLength(0); i++) { for (int j = 0; j < RedNeuronal.SalidasDeseadas.GetLength(1); j++) { PuntosDeseados[j].Add(new ObservableValue(RedNeuronal.SalidasDeseadas[i, j] * RedNeuronal.MayoresSalidas[j])); PuntosReales[j].Add(new ObservableValue(RedNeuronal.SalidasReales[i, j] * RedNeuronal.MayoresSalidas[j])); RemoverPuntos(j); } } Thread.Sleep(VelocidadCharts); }
/// <summary> /// Realiza las labores necesarias en caso de que la respuesta /// sea errónea. /// </summary> protected override void TratarErrores() { var errores = Regex.Match(_ContenidoTexto, "(?<=(\"|'){0,1}errores(\"|'){0,1}:\\s*\\[)[^\\}]*").Value; if (errores == null) { return; } errores = errores.Substring(0, errores.Length - 1); errores = Regex.Replace(errores, "(\"|')\\s*,\\s*(\"|')", "~"); foreach (var error in errores.Split('~')) { Errores.Add(new RespuestaError(error.Substring(1, error.Length - 1))); } }
protected string ObtenerTexto(int columna, string descripcion, bool esRequerido = true) { var celda = Hoja.Cells[Fila, columna]; var valor = celda.Value; if (valor != null) { return(Convert.ToString(valor)); } else { if (esRequerido) { Errores.Add(string.Format("El dato '{0}' es requerido y no ha sido especificado (celda {1}).", descripcion, celda.Address)); } return(null); } }
/// <summary> /// Valida los encabezados de la hoja. /// En caso de que todos los encabezados sean correctos, devuelve True. De lo contrario, devuelve False. /// </summary> /// <returns></returns> private bool ValidarEncabezados() { string encabezado; int columna; ExcelRange celda; int cantColumnas = Encabezados.Count(); for (int i = 0; i < cantColumnas; i++) { encabezado = Encabezados.ElementAt(i); columna = i + 1; celda = Worksheet.Cells[FilaEncabezados, columna]; if (!Convert.ToString(celda.Value).Equals(encabezado)) { Errores.Add(string.Format("Encabezado '{0}' no encontrado (celda {1}).", encabezado, celda.Address)); } } return(!Errores.Any()); }
public void Error(string clave, string descripcion) { Errores.Add(clave, descripcion); }
/// <summary> /// Realiza las labores necesarias en caso de que la respuesta /// se errónea. /// </summary> protected override void TratarErrores() { Errores.Add(new RespuestaError(_HttpWebResponse.Headers["MENSAJE"].Trim())); }
internal void NuevoError(Error e) { Errores.Add(e); }
private void Bgw_DoWork(object sender, DoWorkEventArgs e) { if (Bgw.CancellationPending) { e.Cancel = true; return; } else { try { using (var db = new DymContext()) { ClavesSat = db.CClaveProdServ.AsNoTracking().ToList(); Laboratorios = db.Laboratorio.AsNoTracking().ToList(); UnidadMedidas = db.UnidadMedida.AsNoTracking().ToList(); Presentaciones = db.Presentacion.AsNoTracking().ToList(); Categorias = db.Categoria.AsNoTracking().ToList(); } //Opening an existing Excel file if (Ruta.Length == 0) { Ambiente.Mensaje("Archivo invalido. \nProceso abortado"); return; } fi = new FileInfo(Ruta); using (ExcelPackage excelPackage = new ExcelPackage(fi)) { //Get a WorkSheet by index. Note that EPPlus indexes are base 1, not base 0! //Get a WorkSheet by name. If the worksheet doesn't exist, throw an exeption workSheet = excelPackage.Workbook.Worksheets[1]; var start = workSheet.Dimension.Start; var end = workSheet.Dimension.End; bool succes = false; int nIntValue = 0; decimal nDecValue = 1m; for (row = start.Row + 1; row <= end.Row; row++) { // Row by row... var producto = new Producto(); for (col = start.Column; col <= end.Column; col++) { switch (col) { case 1: //ProductoId producto.ProductoId = workSheet.Cells[row, col].Text.Trim(); break; case 2: //Descripcion producto.Descripcion = workSheet.Cells[row, col].Text.Trim(); break; case 3: //Stock succes = false; succes = int.TryParse(workSheet.Cells[row, col].Text.Trim(), out nIntValue); if (succes) { producto.Stock = nIntValue; } else { producto.Stock = 0; } break; case 4: //Contenido producto.Contenido = workSheet.Cells[row, col].Text.Trim().Length == 0 ? "" : workSheet.Cells[row, col].Text.Trim(); break; case 5: //CategoriaId var Categoria = Categorias.FirstOrDefault(x => x.CategoriaId == workSheet.Cells[row, col].Text.Trim()); if (Categoria != null) { producto.CategoriaId = Categoria.CategoriaId; } else { producto.CategoriaId = "SYS"; } break; case 6: //PresentacionId var Presentacion = Presentaciones.FirstOrDefault(x => x.PresentacionId == workSheet.Cells[row, col].Text.Trim()); if (Presentacion != null) { producto.PresentacionId = Presentacion.PresentacionId; } else { producto.PresentacionId = "SYS"; } break; case 7: //LaboratorioId var Laboratorio = Laboratorios.FirstOrDefault(x => x.LaboratorioId == workSheet.Cells[row, col].Text.Trim()); if (Laboratorio != null) { producto.LaboratorioId = Laboratorio.LaboratorioId; } else { producto.LaboratorioId = "SYS"; } break; case 8: //Unidades producto.Unidades = workSheet.Cells[row, col].Text.Trim().Length == 0 ? "" : workSheet.Cells[row, col].Text.Trim(); break; case 9: //PrecioCompra succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.PrecioCompra = nDecValue; } else { producto.PrecioCompra = 1M; } break; case 10: //PrecioCaja succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.PrecioCaja = nDecValue; } else { producto.PrecioCaja = 1M; } break; case 11: //Precio1 succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.Precio1 = nDecValue; } else { producto.Precio1 = 1M; } break; case 12: //Precio2 succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.Precio2 = nDecValue; } else { producto.Precio2 = 1M; } break; case 13: //Utilidad1 succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.Utilidad1 = nDecValue; } else { producto.Utilidad1 = 1M; } break; case 14: //Utilidad2 succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.Utilidad2 = nDecValue; } else { producto.Utilidad2 = 1M; } break; case 15: //TieneLote if (workSheet.Cells[row, col].Text.Trim().Equals("VERDADERO")) { producto.TieneLote = true; } else { producto.TieneLote = false; } break; case 16: //UnidadMedidaId var UnidadMedida = UnidadMedidas.FirstOrDefault(x => x.UnidadMedidaId == workSheet.Cells[row, col].Text.Trim()); if (UnidadMedida != null) { producto.UnidadMedidaId = UnidadMedida.UnidadMedidaId; } else { producto.UnidadMedidaId = "SYS"; } break; case 17: //ClaveCfdiId var ClaveProdServ = ClavesSat.FirstOrDefault(x => x.ClaveProdServId == workSheet.Cells[row, col].Text.Trim()); if (ClaveProdServ != null) { producto.ClaveProdServId = ClaveProdServ.ClaveProdServId; } else { producto.ClaveUnidadId = "01010101"; } break; case 18: //UnidadCfdi producto.ClaveUnidadId = workSheet.Cells[row, col].Text.Trim().Length == 0 ? "H87" : workSheet.Cells[row, col].Text.Trim(); break; case 19: //RutaImg producto.RutaImg = workSheet.Cells[row, col].Text.Trim().Length == 0 ? null : (Ambiente.Empresa.DirectorioImg + workSheet.Cells[row, col].Text.Trim()); producto.CratedAt = DateTime.Now; producto.UpdatedAt = DateTime.Now; producto.CratedBy = Ambiente.LoggedUser.UsuarioId; if (producto.ProductoId == null || producto.ProductoId.Length == 0) { Errores.Add("SE OMITIÓ, " + producto.ProductoId + ", A CAUSA DE FILA: " + row + " COLUMNA: " + col + "\n"); } else { Productos.Add(producto); } break; default: MessageBox.Show("Columna no encontrada"); break; } Bgw.ReportProgress(row); } } excelPackage.Save(); } if (new ProductoController().InsertRange(Productos)) { exito = true; } } catch (Exception ex) { Ambiente.Mensaje(" ALGO SALIO MAL EN FILA: " + row + " COLUMNA: " + col + "\n" + ex.ToString()); } } }