예제 #1
0
        public async Task <PedidoTrabajoAccionesResponse> FinalizarPedidoTrabajo(MCMovEstadoPTRequest request)
        {
            try
            {
                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 MCMovEstadoPT = new McmovEstPt
                {
                    BEstRegistro    = true,
                    CEstPt          = "T",
                    INumIdPt        = request.iNumIdPT,
                    INumDetPt       = request.iNumDetPT,
                    SdFecCreacion   = DateTime.Now,
                    SdFecIniEstado  = DateTime.Now,
                    VCodUsuCreacion = request.vCodUsuarioCreacion,
                    INumDetEstPt    = maxIdEst == 0 ? 1 : maxIdEst + 1,
                    CNomTerCreacion = request.Terminal
                };


                await context.McmovEstPt.AddAsync(MCMovEstadoPT);

                await context.SaveChangesAsync();

                var McMaePT = await context.McmaePt.Where(x => x.INumIdPt == request.iNumIdPT).AsNoTracking().FirstOrDefaultAsync();

                McMaePT.CEstPt = "T";
                McMaePT.VCodUsuModificacion = request.vCodUsuarioCreacion;
                McMaePT.SdFecModificacion   = DateTime.Now;
                McMaePT.CNomTerModificacion = request.Terminal;

                context.McmaePt.Update(McMaePT);
                await context.SaveChangesAsync();

                return(new PedidoTrabajoAccionesResponse
                {
                    Exito = true,
                    Mensaje = "Operacion realizada exitosamente"
                });
            }
            catch (Exception ex)
            {
                return(new PedidoTrabajoAccionesResponse
                {
                    Exito = false,
                    Mensaje = "Ha ocurrido un error inesperado " + ex.InnerException.Message
                });
            }
        }
예제 #2
0
        public async Task <HttpResponseMessage> IniciarPedidoTrabajo(MCMovEstadoPTRequest 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/iniciar", data);
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex);
            }
            return(response);
        }
        public async Task <IActionResult> FinalizarPedidoTrabajo([FromBody] MCMovEstadoPTRequest request)
        {
            var response = await new PedidoTrabajoBLL(context, mapper).Finalizar(request);

            return(new OkObjectResult(response));
        }
예제 #4
0
        public async Task <IActionResult> FinalizarPedidoTrabajo(PedidosTrabajo request)
        {
            try
            {
                var    IP       = Request.HttpContext.Connection.RemoteIpAddress;
                string compName = DetermineCompName(IP.ToString());

                var req = new MCMovEstadoPTRequest
                {
                    iNumIdPT            = request.MovimientoEstadoPT.iNumIdPT,
                    iNumDetPT           = request.MovimientoEstadoPT.iNumDetPT,
                    vCodUsuarioCreacion = request.MovimientoEstadoPT.vCodUsuarioCreacion,
                    iNumDetEstPT        = request.MovimientoEstadoPT.iNumDetEstPT,
                    Terminal            = compName,
                    Opcion = request.MovimientoEstadoPT.Opcion
                };

                var pedido = new PedidoTrabajoBus();

                //request.Terminal = Dns.GetHostEntry(Request.ServerVariables["REMOTE_ADDR"]).HostName;
                string baseUrl = this.configuration.GetSection("AppSettings").GetSection("Servicio").Value;

                var response = await pedido.FinalizarPedidoTrabajo(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("PedidosTrabajo"));
                    }
                    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"));
        }
예제 #5
0
        public async Task <PedidoTrabajoAccionesResponse> Finalizar(MCMovEstadoPTRequest request)
        {
            var pedidoTrabajoDAL = new PedidoTrabajoDAL(this.context, this.mapper);

            return(await pedidoTrabajoDAL.FinalizarPedidoTrabajo(request));
        }