Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 5
0
        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
                });
            }
        }
Esempio n. 6
0
        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
                });
            }
        }
Esempio n. 7
0
        public async Task <PedidoTrabajoAccionesResponse> RegistrarIncidencia(MCMovBanPTRequest request)
        {
            var pedidoTrabajoDAL = new PedidoTrabajoDAL(this.context, this.mapper);

            return(await pedidoTrabajoDAL.RegistrarInconvenientePT(request));
        }
Esempio n. 8
0
        public async Task <PedidoTrabajoAccionesResponse> ResponderInconvenientePT(MCMovBanPTRequest request)
        {
            var notificacionDAL = new NotificacionDAL(this.context, this.mapper);

            return(await notificacionDAL.ResponderInconvenientePT(request));
        }