private static void CancelarOrdensExperiradas(object state) { if (DateTime.Now.Hour < HorarioFechamentoBolsa) { OrdensExpiradasAtualizadas = false; } if ((DateTime.Now.Hour >= HorarioFechamentoBolsa) && (OrdensExpiradasAtualizadas == false)) { CamadaDeDados _CamadaDeDados = new CamadaDeDados(); _CamadaDeDados.AbrirConexao(); List <string> Ordens = _CamadaDeDados.BuscarOrdensValidasParaoDia(); IServicoOrdens ServicoOrdens = Ativador.Get <IServicoOrdens>(); for (int i = 0; i <= Ordens.Count - 1; i++) { ClienteCancelamentoInfo ClienteCancelamentoInfo = new ClienteCancelamentoInfo() { OrderID = Ordens[i].ToString() }; EnviarCancelamentoOrdemRequest request = new EnviarCancelamentoOrdemRequest() { ClienteCancelamentoInfo = ClienteCancelamentoInfo }; EnviarCancelamentoOrdemResponse response = ServicoOrdens.CancelarOrdem(request); } OrdensExpiradasAtualizadas = true; } }
/// <summary> /// Exclui as ordens selecionadas /// </summary> /// <returns>Retorna uma string com mensagem de sucesso ou erro ao excluir as ordens</returns> private string ResponderExcluirOrdens() { string lRetorno = string.Empty; try { string lIds = Request.Form["Ids"]; string lPortas = Request.Form["Portas"]; string lMensagem = ""; List <string> lstIdOrdem = new List <string>(); IServicoOrdens lOrdem = Ativador.Get <IServicoOrdens>(); Dictionary <string, string> lCriticas = new Dictionary <string, string>(); EnviarCancelamentoOrdemResponse lResponse = new EnviarCancelamentoOrdemResponse(); string[] Ordens = lIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] Portas = lPortas.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); ClienteCancelamentoInfo info; EnviarCancelamentoOrdemRequest lRequestCancel; for (int i = 0; i < Ordens.Length; i++) { info = new ClienteCancelamentoInfo(); info.OrderID = Ordens[i]; info.PortaControleOrdem = Portas[i]; lRequestCancel = new EnviarCancelamentoOrdemRequest() { ClienteCancelamentoInfo = info }; lResponse = lOrdem.CancelarOrdem(lRequestCancel); if (lResponse.StatusResposta != OMS.Ordens.Lib.Enum.CriticaRiscoEnum.Sucesso) { lCriticas.Add(info.OrderID, lResponse.DescricaoResposta); } } if (lCriticas.Count > 0) { foreach (KeyValuePair <string, string> critica in lCriticas) { lMensagem += string.Concat("Ordem: ", critica.Key, "Crítica - ", critica.Value); } lRetorno = RetornarSucessoAjax(lMensagem); } else { lRetorno = RetornarSucessoAjax("Orden(s) cancelada(s) com sucesso"); base.RegistrarLogExclusao(string.Concat("Foram EXCLUÍDAS as seguintes ordens: ", lIds)); } } catch (Exception ex) { lRetorno = base.RetornarErroAjax("Erro ao tentar cancelar ordem.", ex); } return(lRetorno); }