private ConcorrenteIntegration ConvertConcorrente(Concorrentes concorrente) { ConcorrenteIntegration concorrenteIntegration = new ConcorrenteIntegration(); concorrenteIntegration.codconcorrente = concorrente.id; concorrenteIntegration.descricao = concorrente.descricao; return(concorrenteIntegration); }
public void SalvarStatus(StatusIntegration status) { DateTime data = JavadateToNetdate(status.data); logger.Info("SalvarStatus : [ telefone: " + status.telefone + " / codmensagem : " + status.codmensagem + " / idstatus: " + status.idstatus + " / data: " + data.ToString("yyyy-MM-dd HH:mm:ss") + " / ofr: " + status.ofr + " / concorrente: " + status.concorrente + "]"); Solicitacao os; if (String.IsNullOrEmpty(status.telefone) || status.telefone.Equals("0")) { os = db.Solicitacao.Where(s => s.CodMensagem == status.codmensagem).OrderByDescending(i => i.DataOrigem).FirstOrDefault(); } else { os = db.Solicitacao.Where(s => s.CodMensagem == status.codmensagem && s.Celular == status.telefone).OrderByDescending(i => i.DataOrigem).FirstOrDefault(); } if (os != null) { bool recuperar_web = (os.RECUPERAR_WEB.HasValue ? os.RECUPERAR_WEB.Value : false); if (recuperar_web) { StatusDescartadosMobile descartar = new StatusDescartadosMobile(); descartar.codmensagem = status.codmensagem; descartar.dataStatus = data; descartar.status = status.idstatus; descartar.telefone = status.telefone; descartar.createdAt = DateTime.Now; db.AddToStatusDescartadosMobile(descartar); } else { HistSolicitacao historico_existente = db.HistSolicitacao.FirstOrDefault(h => h.CodMensagem == status.codmensagem && h.IDStatus == status.idstatus && (h.Data.Year == data.Year && h.Data.Month == data.Month && h.Data.Day == data.Day && h.Data.Hour == data.Hour && h.Data.Minute == data.Minute && h.Data.Second == data.Second)); //Confere a data sem os milliseconds if (historico_existente == null) { HistSolicitacao hist = new HistSolicitacao(); hist.IDStatus = status.idstatus; hist.CodMensagem = status.codmensagem; hist.Data = data; hist.DataOrigem = os.DataOrigem; hist.Celular = os.Celular; hist.CodSolicitacao = status.codmensagem; hist.Mensagem = os.Mensagem; hist.Responsavel = os.Responsavel; hist.Tipo = os.Tipo; hist.Observacao = ""; hist.Tipo = "Pedido"; hist.StatusDispatch = 0; hist.created_by = "android"; db.AddToHistSolicitacao(hist); //So altera os dados da OS caso o status seja mais novo que a data do status atual da Os DateTime dataDoStatus = new DateTime(data.Year, data.Month, data.Day, data.Hour, data.Minute, 0, 0); DateTime dataDaOs = new DateTime(os.Data.Year, os.Data.Month, os.Data.Day, os.Data.Hour, os.Data.Minute, 0, 0); //So altera os dados da OS caso o status seja mais novo que a data do status atual da Os if (dataDoStatus >= dataDaOs) { //Altera o status da Solicitação os.IDStatus = status.idstatus; os.Data = data; } //Se for transferencia if (status.idstatus == STATUS_TRANSFERIR) { os.transferedTo = status.transferir_para; os.transferido = false; } if (!String.IsNullOrEmpty(status.concorrente)) { Concorrentes concorrente = db.Concorrentes.FirstOrDefault(c => c.descricao == status.concorrente); if (concorrente != null) { Concorrente_X_Produto cxp = new Concorrente_X_Produto(); cxp.idConcorrente = concorrente.id; cxp.idSolicitacao = os.IDSolicitacao.ToString(); db.Concorrente_X_Produto.AddObject(cxp); } } } } db.SaveChanges(); } }