public async Task <HttpResponseMessage> RegistrarInconvenientePT(MCMovBanPTRequest request, string baseUrl) { HttpResponseMessage response = null; try { using (var client = new HttpClient()) { var data = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); response = await client.PostAsync(baseUrl + "actividad/registrar-inconveniente", data); } } catch (Exception ex) { Console.Write(ex); } return(response); }
public async Task <IActionResult> ResponderInconvenientePT([FromBody] MCMovBanPTRequest request) { var response = await new NotificacionBLL(context, mapper).ResponderInconvenientePT(request); return(new OkObjectResult(response)); }
public async Task <IActionResult> RegistrarInconvenientePT([FromBody] MCMovBanPTRequest request) { var response = await new PedidoTrabajoBLL(context, mapper).RegistrarIncidencia(request); return(new OkObjectResult(response)); }
public async Task <IActionResult> ResponderInconvPT(PedidosTrabajo request) { List <string> paths = new List <string>(); //var a = Dns.GetHostByAddress(Request.Host.Host .ServerVariables.Item("REMOTE_HOST")).HostName; try { var IP = Request.HttpContext.Connection.RemoteIpAddress; string compName = DetermineCompName(IP.ToString()); var req = new MCMovBanPTRequest { iNumIdPT = request.MovimientoBanPT.iNumIdPT, iNumDetPT = request.MovimientoBanPT.iNumDetPT, vCodUsuarioCreacion = request.MovimientoBanPT.vCodUsuarioCreacion, ICodTraResponsable = request.MovimientoBanPT.ICodTraResponsable, VTipInconveniente = request.MovimientoBanPT.VTipInconveniente, Mensaje = request.MovimientoBanPT.Mensaje, Terminal = compName, Email = request.MovimientoBanPT.Email }; if (Request.Form.Files.Count > 0) { //req.Adjuntos = Request.Form.Files; foreach (var file in Request.Form.Files) { var ruta = SaveFile(file, request.MovimientoBanPT.PedidoTrabajo, "AdjuntosRpta"); paths.Add(ruta); } req.Rutas = paths; } var pedido = new NotificacionBus(); //request.Terminal = Dns.GetHostEntry(Request.ServerVariables["REMOTE_ADDR"]).HostName; string baseUrl = this.configuration.GetSection("AppSettings").GetSection("Servicio").Value; var response = await pedido.ResponderInconvenientePT(req, baseUrl); if (response != null) { if (response.IsSuccessStatusCode) { var carga = JsonConvert.DeserializeObject <McmaeCargaForDosResponse>(response.Content.ReadAsStringAsync().Result); if (carga.Exito == true) { ViewBag.MensajeExito = carga.Mensaje; } else { ViewBag.MensajeError = carga.Mensaje; } ViewData["Categorias"] = ListarCategoriasInconveniente(); return(View("Notificaciones")); } else { switch (response.StatusCode) { case HttpStatusCode.InternalServerError: var mensajeErrorInterno = JsonConvert.DeserializeObject <ErrorInternoResponse>(response.Content.ReadAsStringAsync().Result); ModelState.AddModelError("ErrorMensaje", mensajeErrorInterno.Mensaje); Console.Write("Error"); break; case HttpStatusCode.UnprocessableEntity: var mensajeEntidadImprosesable = JsonConvert.DeserializeObject <ErrorInternoResponse>(response.Content.ReadAsStringAsync().Result); ModelState.AddModelError("ErrorMensaje", mensajeEntidadImprosesable.Mensaje); Console.Write("Error"); break; default: ModelState.AddModelError("ErrorMensaje", "Error interno en la aplicación web."); Console.Write("Error"); break; } } } else { ModelState.AddModelError("ErrorMensaje", "Error de comunicación con el servidor."); } } catch (Exception ex) { Console.Write("Error" + ex.Message); } return(Content("Ups! Un error ocurrio")); }
public async Task <PedidoTrabajoAccionesResponse> ResponderInconvenientePT(MCMovBanPTRequest request) { try { //MovBand var maxIdBan = await context.McmovBanPt.Where(m => m.INumIdPt == request.iNumIdPT && m.INumDetPt == request.iNumDetPT && m.BEstRegistro == true).MaxAsync(b => (int?)b.INumDesBanPt) ?? 0; var mov = await context.McmovBanPt.Where(m => m.INumIdPt == request.iNumIdPT && m.INumDetPt == request.iNumDetPT && m.BEstRegistro == true && m.INumDesBanPt == maxIdBan).AsNoTracking().FirstOrDefaultAsync() ?? null; var MCMovBanPT = new McmovBanPt { BEstRegistro = true, INumIdPt = request.iNumIdPT, INumDetPt = request.iNumDetPT, SdFecCreacion = DateTime.Now, VCodUsuCreacion = request.vCodUsuarioCreacion, INumDesBanPt = maxIdBan == 0 ? 1 : maxIdBan + 1, CTipBandeja = "2", CEstBandeja = "1", ICodTraResponsable = mov.ICodTraResponsable, vContenido = request.Mensaje, SdFecIngreso = DateTime.Now, CNomTerCreacion = request.Terminal }; await context.McmovBanPt.AddAsync(MCMovBanPT); await context.SaveChangesAsync(); mov.SdFecFinalizacion = DateTime.Now; mov.VCodUsuModificacion = request.vCodUsuarioCreacion; mov.CNomTerModificacion = request.Terminal; mov.SdFecModificacion = DateTime.Now; mov.CEstBandeja = "2"; context.McmovBanPt.Update(mov); await context.SaveChangesAsync(); if (request.Rutas != null) { if (request.Rutas.Count() > 0) { foreach (var ruta in request.Rutas) { var maxIdAdj = await context.McmaeAdjPt.Where(m => m.INumIdPt == request.iNumIdPT && m.INumDetPt == request.iNumDetPT && m.BEstRegistro == true).MaxAsync(b => (int?)b.INumDetAdjT) ?? 0; var adjunto = new McmaeAdjPt { INumIdPt = request.iNumIdPT, INumDetPt = request.iNumDetPT, SdFecCreacion = DateTime.Now, CNomTerCreacion = request.Terminal, INumDetAdjT = maxIdAdj == 0 ? 1 : maxIdAdj + 1, VRutaAdjunto = ruta, ITipAdjunto = 2, BEstRegistro = true, VCodUsuCreacion = request.vCodUsuarioCreacion }; await context.McmaeAdjPt.AddAsync(adjunto); await context.SaveChangesAsync(); } } } if (!string.IsNullOrEmpty(request.Email)) { var mailRequest = new McSendMailRequest { Asunto = "Se ha registrado una incidencia para el pedido de trabajo " + request.PedidoTrabajo, Texto_Notificar = !string.IsNullOrEmpty(request.Mensaje) ? request.Mensaje : "Se ha registrado una incidencia para el pedido de trabajo " + request.PedidoTrabajo, Cuenta_Notificar = request.Email, Cuentas_Copias = "", Profile_Correo = "" }; //Descomentar la línea siguiente para enviar correo electrónico al responsable SendMail(mailRequest); } return(new PedidoTrabajoAccionesResponse { Exito = true, Mensaje = "Operacion realizada exitosamente" }); } catch (Exception ex) { return(new PedidoTrabajoAccionesResponse { Exito = false, Mensaje = "Ha ocurrido un error inesperado " + ex.Message }); } }
public async Task <PedidoTrabajoAccionesResponse> RegistrarInconvenientePT(MCMovBanPTRequest request) { try { var listaMotivos = !string.IsNullOrEmpty(request.VTipInconveniente)? request.VTipInconveniente.Split(','): null; //Movimiento de Estado var maxIdEst = await context.McmovEstPt.Where(m => m.INumIdPt == request.iNumIdPT && m.INumDetPt == request.iNumDetPT && m.BEstRegistro == true).MaxAsync(m => (int?)m.INumDetEstPt) ?? 0; var mov = await context.McmovEstPt.Where(m => m.INumIdPt == request.iNumIdPT && m.INumDetPt == request.iNumDetPT && m.BEstRegistro == true && m.INumDetEstPt == maxIdEst).AsNoTracking().FirstOrDefaultAsync() ?? null; var MCMovEstadoPT = new McmovEstPt { BEstRegistro = true, CEstPt = "I", INumIdPt = request.iNumIdPT, INumDetPt = request.iNumDetPT, SdFecCreacion = DateTime.Now, SdFecIniEstado = DateTime.Now, VCodUsuCreacion = request.vCodUsuarioCreacion, INumDetEstPt = mov == null ? 1 : mov.INumDetEstPt + 1, CNomTerCreacion = request.Terminal }; await context.McmovEstPt.AddAsync(MCMovEstadoPT); await context.SaveChangesAsync(); //Actualizar registro anterior mov.SdFecFinEstado = DateTime.Now; mov.VCodUsuModificacion = request.vCodUsuarioCreacion; mov.CNomTerModificacion = request.Terminal; mov.SdFecModificacion = DateTime.Now; context.McmovEstPt.Update(mov); await context.SaveChangesAsync(); //MovBand var maxIdBan = await context.McmovBanPt.Where(m => m.INumIdPt == request.iNumIdPT && m.INumDetPt == request.iNumDetPT && m.BEstRegistro == true).MaxAsync(b => (int?)b.INumDesBanPt) ?? 0; var MCMovBanPT = new McmovBanPt { BEstRegistro = true, INumIdPt = request.iNumIdPT, INumDetPt = request.iNumDetPT, SdFecCreacion = DateTime.Now, VCodUsuCreacion = request.vCodUsuarioCreacion, INumDesBanPt = maxIdBan == 0 ? 1 : maxIdBan + 1, CTipBandeja = "1", CEstBandeja = "1", ICodTraResponsable = request.ICodTraResponsable, vContenido = request.Mensaje, SdFecIngreso = DateTime.Now, CNomTerCreacion = request.Terminal }; await context.McmovBanPt.AddAsync(MCMovBanPT); await context.SaveChangesAsync(); var maxIdMovInc = await context.McmovIncPt.Where(m => m.INumIdPt == request.iNumIdPT && m.INumDetPt == request.iNumDetPT && m.BEstRegistro == true).MaxAsync(b => (int?)b.INumDetIncPt) ?? 0; if (listaMotivos != null) { foreach (var item in listaMotivos) { var MCMovIncPT = new McmovIncPT { BEstRegistro = true, INumIdPt = request.iNumIdPT, INumDetPt = request.iNumDetPT, INumDetIncPt = maxIdMovInc == 0 ? 1 : maxIdMovInc + 1, SdFecCreacion = DateTime.Now, VCodUsuCreacion = request.vCodUsuarioCreacion, ICodCatInconveniente = int.Parse(item.Split('|')[1]), ICodMotInconveniente = int.Parse(item.Split('|')[0]), CNomTerCreacion = request.Terminal }; await context.McmovIncPt.AddAsync(MCMovIncPT); await context.SaveChangesAsync(); maxIdMovInc += 1; } } if (!string.IsNullOrEmpty(request.VDescInconveniente)) { var maxIdMovInc1 = await context.McmovIncPt.Where(m => m.INumIdPt == request.iNumIdPT && m.INumDetPt == request.iNumDetPT && m.BEstRegistro == true).MaxAsync(b => (int?)b.INumDetIncPt) ?? 0; var MCMovIncPT = new McmovIncPT { BEstRegistro = true, INumIdPt = request.iNumIdPT, INumDetPt = request.iNumDetPT, INumDetIncPt = maxIdMovInc1 == 0 ? 1 : maxIdMovInc1 + 1, SdFecCreacion = DateTime.Now, VCodUsuCreacion = request.vCodUsuarioCreacion, ICodCatInconveniente = request.IdCategoria, CNomTerCreacion = request.Terminal, vDesMotInconveniente = request.VDescInconveniente }; await context.McmovIncPt.AddAsync(MCMovIncPT); await context.SaveChangesAsync(); } var McMaePT = await context.McmaePt.Where(x => x.INumIdPt == request.iNumIdPT).AsNoTracking().FirstOrDefaultAsync(); McMaePT.CEstPt = "I"; McMaePT.VCodUsuModificacion = request.vCodUsuarioCreacion; McMaePT.CNomTerModificacion = request.Terminal; McMaePT.SdFecModificacion = DateTime.Now; context.McmaePt.Update(McMaePT); await context.SaveChangesAsync(); if (request.Rutas != null) { foreach (var ruta in request.Rutas) { var maxIdAdj = await context.McmaeAdjPt.Where(m => m.INumIdPt == request.iNumIdPT && m.INumDetPt == request.iNumDetPT && m.BEstRegistro == true).MaxAsync(b => (int?)b.INumDetAdjT) ?? 0; var adjunto = new McmaeAdjPt { INumIdPt = request.iNumIdPT, INumDetPt = request.iNumDetPT, SdFecCreacion = DateTime.Now, CNomTerCreacion = request.Terminal, INumDetAdjT = maxIdAdj == 0 ? 1 : maxIdAdj + 1, VRutaAdjunto = ruta, ITipAdjunto = 1, BEstRegistro = true, VCodUsuCreacion = request.vCodUsuarioCreacion }; await context.McmaeAdjPt.AddAsync(adjunto); await context.SaveChangesAsync(); } } if (!string.IsNullOrEmpty(request.Email)) { var mailRequest = new McSendMailRequest { Asunto = "Se ha registrado una incidencia para el pedido de trabajo " + request.PedidoTrabajo, Texto_Notificar = !string.IsNullOrEmpty(request.Mensaje)? request.Mensaje: "Se ha registrado una incidencia para el pedido de trabajo " + request.PedidoTrabajo, Cuenta_Notificar = request.Email, Cuentas_Copias = "", Profile_Correo = "" }; //Descomentar la línea siguiente para enviar correo electrónico al responsable SendMail(mailRequest); } return(new PedidoTrabajoAccionesResponse { Exito = true, Mensaje = "Operacion realizada exitosamente" }); } catch (Exception ex) { return(new PedidoTrabajoAccionesResponse { Exito = false, Mensaje = "Ha ocurrido un error inesperado " + ex.Message }); } }
public async Task <PedidoTrabajoAccionesResponse> RegistrarIncidencia(MCMovBanPTRequest request) { var pedidoTrabajoDAL = new PedidoTrabajoDAL(this.context, this.mapper); return(await pedidoTrabajoDAL.RegistrarInconvenientePT(request)); }
public async Task <PedidoTrabajoAccionesResponse> ResponderInconvenientePT(MCMovBanPTRequest request) { var notificacionDAL = new NotificacionDAL(this.context, this.mapper); return(await notificacionDAL.ResponderInconvenientePT(request)); }