private string DistribuirPorEstado(Order order) { OrdenEntity orden = null; if (Source == SourceEnum.Api) { orden = OrdenHelper.DesbloquearOrden(order.IdOrden, Source); } if (Source == SourceEnum.ComplementoDMA) { orden = OrdenHelper.ObtenerOrdenbyNumeroOrdenInterno(order.IdOrden); order.NumeroOrdenMercado = orden.NumeroOrdenMercado; order.NumeroOrdenInterno = orden.NumeroOrdenInterno; } else { orden = OrdenHelper.ObtenerOrdenbyID(order.IdOrden); } switch (orden.IdEstado) { case (int)EstadoOrden.Ingresada: return(CancelarOrden(orden, GetUltimaActualizacion(order.Timestamp))); case (int)EstadoOrden.EnMercado: case (int)EstadoOrden.Aplicada: //case (int)EstadoOrden.AplicadaParcial: return(CancelarOrdenMercado(orden, GetUltimaActualizacion(order.Timestamp))); default: throw new M4TraderApplicationException("Estado no Valido para la orden Nro: " + orden.NumeroOrdenInterno); } }
public override ExecutionResult ExecuteCommand(InCourseRequest inCourseRequest) { OrdenEntity ordenEspejo = OrdenHelper.ObtenerOrdenbyID(IdOrden); OrdenEntity orden = CrearOrdenDesdeEspejo(ordenEspejo); orden.IdUsuario = MAEUserSession.InstanciaCargada ? (int?)MAEUserSession.Instancia.IdUsuario : null; Response resultado = new Response(); resultado.Resultado = eResult.Ok; OrdenHelper.AltaOrdenDMA(orden); resultado.Detalle = JsonConvert.SerializeObject(orden); return(ExecutionResult.ReturnInmediatelyAndQueueOthers(resultado)); }
public override ExecutionResult ExecuteCommand(InCourseRequest inCourseRequest) { Response resultado = new Response(); OrdenEntity orden = new OrdenEntity(); ordenes = new List <OrdenEntity>(); ordenes.Add(OrdenHelper.ObtenerOrdenbyID(IdOrden)); resultado = ProcesamientoGenerica <OrdenEntity>(ConfimarOrden, ordenes); LoggingHelper.Instance.AgregarLog(new LogCommandApiEntity("SIConfirmaOrdenCommand", "CMD-API", inCourseRequest.Id, resultado)); return(ExecutionResult.ReturnInmediatelyAndQueueOthers(resultado)); }
private string DistribuirPorEstado(OrdenEntity order) { var orden = OrdenHelper.ObtenerOrdenbyID(order.IdOrden); switch (orden.IdEstado) { case (int)EstadoOrden.Ingresada: return(CancelarOrden(orden, order.Timestamp)); case (int)EstadoOrden.EnMercado: case (int)EstadoOrden.Aplicada: //case (int)EstadoOrden.AplicadaParcial: return(CancelarOrdenMercado(orden, order.Timestamp)); default: return("Estado no Valido para la orden Nro: " + orden.NumeroOrdenInterno); } }
public override ExecutionResult ExecuteCommand(InCourseRequest inCourseRequest) { Response resultado = new Response(); OrdenEntity orden = new OrdenEntity(); ordenes = new List <OrdenEntity>(); //if (Source == 0) // Source = SourceEnum.Mobile; orden = OrdenHelper.ObtenerOrdenbyID(r_id); ProductoEntity p = CachingManager.Instance.GetProductoById(orden.IdProducto); if (ValidarCambiosModificar(orden)) { orden.IdOrden = r_id; orden.Cantidad = Cantidad + orden.Ejecutadas; orden.CantidadMinima = OfertaParcial ? CantidadMinima : Cantidad; orden.Plazo = PlazoType; if (p.IdTipoProducto == (byte)TiposProducto.FACTURAS) { orden.OperoPorTasa = true; } if (PrecioLimite.HasValue) { orden.PrecioLimite = PrecioLimite.Value; } else { orden.PrecioLimite = null; } ordenes.Add(orden); switch (orden.IdEstado) { case (int)EstadoOrden.Ingresada: case (int)EstadoOrden.Confirmada: resultado = ProcesamientoGenerica <OrdenEntity>(ActualizarOrden, ordenes); break; case (int)EstadoOrden.EnMercado: case (int)EstadoOrden.AplicadaParcial: //case (int)EstadoOrden.RechazoMercado: resultado = ProcesamientoGenerica <OrdenEntity>(ActualizarOrdenMercado, ordenes); break; } } else { ConcurrentBag <string> resultadosOk = new ConcurrentBag <string>(); ConcurrentBag <string> resultadosError = new ConcurrentBag <string>(); resultadosError.Add("No se ingresaron modificaciones para la orden Nro: " + orden.NumeroOrdenInterno); resultado.Resultado = eResult.Error; resultado.SetResponse(resultadosOk, resultadosError, "Ordenes"); } return(ExecutionResult.ReturnInmediatelyAndQueueOthers(resultado)); }