コード例 #1
0
        public IHttpActionResult GetAcceso(AccesoRequest acc)
        {
            string          Mensaje;
            ClienteResponse objClienteRS = new ClienteResponse();
            LoginAccess     objAcceso    = new LoginAccess();
            var             lstCliente   = objAcceso.LeerCorreo(acc.EmailCliente);

            if (lstCliente.Count() > 0)
            {
                objClienteRS.ClaveCliente = lstCliente.FirstOrDefault().ClaveCliente.Trim();

                acc.Cuerpo = acc.Cuerpo + " " + objClienteRS.ClaveCliente;

                EnviarCorreoSendGrid(acc.NombreEmisor, acc.EmailEmisor, acc.EmailCliente, acc.Asunto, acc.Cuerpo);
                Mensaje = "OK, Se envio el Correo Satisfactoriamente";
                return(Ok(Mensaje));
            }
            else
            {
                objClienteRS.LoginSuccess = false;
                var message = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new StringContent("No se encontro El Correo en la Base de Datos... Verifique por favor")
                };
                throw new HttpResponseException(message);
            }
        }
コード例 #2
0
        public static ClienteResponse AddCliente(ML.Cliente cliente, List <ML.Producto> productos)
        {
            ClienteResponse response = new ClienteResponse();

            try
            {
                using (DL.ExamenTrupperEntities context = new DL.ExamenTrupperEntities())
                {
                    int ClienteId = Convert.ToInt32(context.AddCliente(cliente.Nombre, cliente.APaterno, cliente.AMaterno).FirstOrDefault());

                    if (ClienteId > 0)
                    {
                        response.Code          = 100;
                        response.Message       = "Éxito al ingresar nuevo cliente";
                        response.ListaClientes = new List <ML.Cliente>();
                        ML.Pedido pedido = new ML.Pedido();
                        BL.Pedido.AddPedido(ClienteId, pedido, productos);
                    }
                    else
                    {
                        response.Code          = 50;
                        response.Message       = "Error al agregar cliente";
                        response.ListaClientes = new List <ML.Cliente>();
                    }
                    return(response);
                }
            }
            catch (Exception Ex)
            {
                response.Code          = -100;
                response.Message       = "No se pudo agregar el cliente por el siguiente error: " + Ex.ToString();
                response.ListaClientes = new List <ML.Cliente>();
                return(response);
            }
        }
コード例 #3
0
        /// <summary>
        /// Busqueda de clientes
        /// </summary>
        /// <param name="clienteRequest"></param>
        /// <returns></returns>
        public ClienteResponse[] BuscarClientes(ClienteRequest clienteRequest)
        {
            List <ClienteResponse> list = new List <ClienteResponse>();
            var parameters = new Dictionary <string, object>();

            parameters.Add("@CodigoCliente", clienteRequest.CodigoCliente);
            parameters.Add("@Nombre", clienteRequest.Nombre);
            parameters.Add("@Telefono", clienteRequest.Telefono);
            foreach (var r in data.GetDataReader("[dbo].[sp_vanti_server_BusquedaClientes]", parameters))
            {
                ClienteResponse cliente = new ClienteResponse();
                cliente.Nombre          = r.GetValue(0).ToString();
                cliente.CodigoCliente   = Convert.ToInt64(r.GetValue(1));
                cliente.Telefono        = r.GetValue(2).ToString();
                cliente.CodigoTienda    = Convert.ToInt32(r.GetValue(3));
                cliente.ApellidoPaterno = r.GetValue(4).ToString();
                cliente.ApellidoMaterno = r.GetValue(5).ToString();
                cliente.Calle           = r.GetValue(6).ToString();
                cliente.NoExterior      = r.GetValue(7).ToString();
                cliente.NoInterior      = r.GetValue(8).ToString();
                cliente.Ciudad          = r.GetValue(9).ToString();
                cliente.Estado          = r.GetValue(10).ToString();
                cliente.CodigoPostal    = r.GetValue(11).ToString();
                cliente.Email           = r.GetValue(12).ToString();
                cliente.CodigoCaja      = Convert.ToInt32(r.GetValue(13));
                list.Add(cliente);
            }
            return(list.ToArray());
        }
コード例 #4
0
        public IHttpActionResult GetURL(ClienteRequest cli)
        {
            string URL = Data.StrUrl;

            ClienteResponse objClienteRS = new ClienteResponse();

            LoginAccess objLogin   = new LoginAccess();
            var         lstCliente = objLogin.LeeIDCliente(Int32.Parse(cli.CodigoCliente));

            if (lstCliente.Count() > 0)
            {
                objClienteRS.IDCliente = lstCliente.FirstOrDefault().IDCliente;
                URL = URL + "/" + objClienteRS.IDCliente;
            }
            else
            {
                var message = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new StringContent("No se encontro el IDcliente.")
                };
                throw new HttpResponseException(message);
            }

            return(Ok(URL));
        }
コード例 #5
0
        public IHttpActionResult LoginCliente(ClienteRequest cli)
        {
            ClienteResponse objClienteRS = new ClienteResponse();

            LoginAccess objLogin   = new LoginAccess();
            var         lstCliente = objLogin.LeerCliente(cli.EmailCliente, cli.PasswordCliente);

            if (lstCliente.Count() > 0)
            {
                objClienteRS.LoginSuccess = true;
                objClienteRS.CodCliente   = lstCliente.FirstOrDefault().CodCliente;
                objClienteRS.EmailCliente = lstCliente.FirstOrDefault().EmailCliente.Trim();
                objClienteRS.NomCliente   = lstCliente.FirstOrDefault().NomCliente;
                objClienteRS.ApePaterno   = lstCliente.FirstOrDefault().ApePaterno;
                objClienteRS.ApeMaterno   = lstCliente.FirstOrDefault().ApeMaterno;
                objClienteRS.TipoIdioma   = lstCliente.FirstOrDefault().TipoIdioma;
            }
            else
            {
                objClienteRS.LoginSuccess = false;
                var message = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new StringContent("No se encontro el cliente.")
                };
                throw new HttpResponseException(message);
            }

            return(Ok(objClienteRS));
        }
コード例 #6
0
        public IEnumerable <ClienteResponse> LeerCliente(string pCorreoCliente, string pPasswordCliente)
        {
            string lineagg = "0";

            try
            {
                List <ClienteResponse> lstCliente = new List <ClienteResponse>();
                lineagg += ",1";
                using (SqlConnection con = new SqlConnection(Data.Data.StrCnx_WebsSql))
                {
                    SqlCommand cmd = new SqlCommand("latinamericajourneys.LAJ_LeeCliente_S", con);

                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@CorreoCliente", SqlDbType.VarChar).Value   = pCorreoCliente;
                    cmd.Parameters.Add("@PasswordCliente", SqlDbType.VarChar).Value = pPasswordCliente;

                    lineagg += ",2";
                    con.Open();
                    cmd.ExecuteNonQuery();
                    SqlDataReader rdr = cmd.ExecuteReader();
                    lineagg += ",3";
                    while (rdr.Read())
                    {
                        lineagg += ",4";
                        if (rdr["Email"].ToString().Trim() == pCorreoCliente.Trim() && rdr["ClaveCliente"].ToString().Trim() == pPasswordCliente.Trim())
                        {
                            ClienteResponse fcliente = new ClienteResponse
                            {
                                CodCliente   = rdr["CodCliente"].ToString(),
                                NomCliente   = rdr["NomCliente"].ToString(),
                                ApePaterno   = rdr["Paterno"].ToString(),
                                ApeMaterno   = rdr["Materno"].ToString(),
                                EmailCliente = rdr["Email"].ToString(),
                                TipoIdioma   = Convert.ToChar(rdr["TipoIdioma"])
                            };

                            lstCliente.Add(item: fcliente);
                        }
                    }
                    lineagg += ",5";
                    con.Close();
                }

                return(lstCliente);
            }
            catch (Exception ex)
            {
                //Bitacora.Current.Error<LoginAccess>(ex, new { lineagg });
                //return new List<Cliente> { new Cliente { EmailCliente = lineagg, NomCliente = ex.Message } };
                throw new Exception {
                          Source = lineagg
                };
            }
        }
コード例 #7
0
 private HttpResponse <ClienteResponse> newHttpResponse(ClienteResponse response)
 {
     return(new HttpResponse <ClienteResponse>()
     {
         StatusCode = HttpStatusCode.OK,
         ApiResponse = new ApiResponse <ClienteResponse>()
         {
             Data = response,
             Error = null
         }
     });
 }
コード例 #8
0
        public async Task <ActionResult <List <ClienteResponse> > > Put([FromBody] List <ClienteDTO> clientes)
        {
            bool hayError = false;

            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("Error", "Error de formato");
            }

            List <ClienteResponse> responseList = new List <ClienteResponse>();


            foreach (ClienteDTO cliente in clientes)
            {
                Logger.Information($"Se recibio actualizacion de datos del cliente{cliente.NumeroCliente} - {cliente.RazonSocial} - Id de operacion: {cliente.IdOperacion}");

                int idOperacion = cliente.IdOperacion;

                if (Env.IsProduction())
                {
                    if (int.TryParse(cliente.NumeroCliente, out _))
                    {
                        cliente.NumeroCliente = string.Format("{0:00000000}", int.Parse(cliente.NumeroCliente));
                    }
                    ;
                    if (int.TryParse(cliente.NumeroSubcuenta, out _))
                    {
                        cliente.NumeroSubcuenta = string.Format("{0:00000000}", int.Parse(cliente.NumeroSubcuenta));
                    }
                }

                Vtmclh clienteFormat = Mapper.Map <ClienteDTO, Vtmclh>(cliente);

                //ClienteResponse response = Repository.GraboCliente(clienteFormat, "OPEN");
                ClienteResponse response = await Repository.ActualizoCliente(clienteFormat);

                response.IdOperacion = idOperacion;
                if (response.Estado != 200)
                {
                    hayError = true;
                }

                responseList.Add(response);
            }

            if (hayError)
            {
                return(BadRequest(responseList));
            }

            return(Ok(responseList));
        }
コード例 #9
0
        public ClienteResponse Inserir(InserirClienteRequest cliente)
        {
            var retorno = new ClienteResponse()
            {
                Id             = 1,
                Cpf            = cliente.Cpf,
                DataNascimento = cliente.DataNascimento,
                Nome           = cliente.Nome,
                Rg             = cliente.Rg,
            };

            return(retorno);
        }
コード例 #10
0
        public HttpResponse <ClienteResponse> BuscarCliente(ClienteRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El cliente que se intenta buscar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var cli = db.Clientes
                          .Where(c => c.Nombre.Equals(request.Nombre))
                          .Include(c => c.Proyectos)
                          .FirstOrDefault();

                if (cli == null)
                {
                    return(newHttpErrorResponse(new Error("No existe el cliente")));
                }

                var response = new ClienteResponse()
                {
                    Id        = cli.Id,
                    Nombre    = cli.Nombre,
                    Proyectos = null,
                    Tipo      = cli.Tipo
                };

                if (cli.Proyectos != null)
                {
                    var proyectosResponse = new List <ProyectoResponse>();

                    foreach (var p in cli.Proyectos)
                    {
                        var nuevoProyResponse = new ProyectoResponse()
                        {
                            Id      = p.Id,
                            Nombre  = p.Nombre,
                            Cliente = cli.Nombre
                        };
                        proyectosResponse.Add(nuevoProyResponse);
                    }
                    response.Proyectos = proyectosResponse;
                }

                return(newHttpResponse(response));
            }
        }
コード例 #11
0
        public HttpResponse <List <ClienteResponse> > Todos()
        {
            using (var db = new GeviApiContext())
            {
                var clientes = db.Clientes
                               .Include(c => c.Proyectos)
                               .Include(c => c.Tipo)
                               .ToList();

                var response = new List <ClienteResponse>();

                foreach (var c in clientes)
                {
                    var nuevo = new ClienteResponse()
                    {
                        Id        = c.Id,
                        Nombre    = c.Nombre,
                        Tipo      = c.Tipo,
                        Proyectos = null
                    };

                    if (c.Proyectos != null)
                    {
                        var proyectoRespone = new List <ProyectoResponse>();

                        foreach (var p in c.Proyectos)
                        {
                            var nuevoProyectoResponse = new ProyectoResponse()
                            {
                                Id      = p.Id,
                                Nombre  = p.Nombre,
                                Cliente = p.Cliente?.Nombre
                            };

                            proyectoRespone.Add(nuevoProyectoResponse);
                        }

                        nuevo.Proyectos = proyectoRespone;
                    }

                    response.Add(nuevo);
                }

                return(newHttpListResponse(response));
            }
        }
コード例 #12
0
        public IEnumerable <ClienteResponse> LeeIDCliente(int pCodCliente)
        {
            string lineagg = "0";

            try
            {
                List <ClienteResponse> lstCliente = new List <ClienteResponse>();
                lineagg += ",1";
                using (SqlConnection con = new SqlConnection(Data.Data.StrCnx_WebsSql))
                {
                    SqlCommand cmd = new SqlCommand("latinamericajourneys.LAJ_LeeIDCliente_S", con);

                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@CodCliente", SqlDbType.VarChar).Value = pCodCliente;

                    lineagg += ",2";
                    con.Open();
                    cmd.ExecuteNonQuery();
                    SqlDataReader rdr = cmd.ExecuteReader();
                    lineagg += ",3";
                    while (rdr.Read())
                    {
                        lineagg += ",4";


                        ClienteResponse fcliente = new ClienteResponse
                        {
                            IDCliente = rdr["IDCliente"].ToString()
                        };

                        lstCliente.Add(item: fcliente);
                    }
                    lineagg += ",5";
                    con.Close();
                }

                return(lstCliente);
            }
            catch (Exception ex)
            {
                throw new Exception {
                          Source = lineagg
                };
            }
        }
コード例 #13
0
 public ClienteResponse Agregar(ClienteRequest request)
 {
     try
     {
         var response = new ClienteResponse();
         var bc       = new ClienteComponent();
         response.Result = bc.Add(request.Cliente);
         return(response);
     }
     catch (Exception ex)
     {
         var httpError = new HttpResponseMessage()
         {
             StatusCode   = (HttpStatusCode)422,
             ReasonPhrase = ex.Message
         };
         throw new HttpResponseException(httpError);
     }
 }
コード例 #14
0
 public ClienteResponse LeerPorId(int id)
 {
     try
     {
         var response = new ClienteResponse();
         var bc       = new ClienteComponent();
         response.Result = bc.Find(id);
         return(response);
     }
     catch (Exception ex)
     {
         var httpError = new HttpResponseMessage()
         {
             StatusCode   = (HttpStatusCode)422,
             ReasonPhrase = ex.Message
         };
         throw new HttpResponseException(httpError);
     }
 }
コード例 #15
0
        public HttpResponse <ClienteResponse> NuevoCliente(ClienteRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El cliente que se intenta ingresar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var tipoCli = db.TipoClientes
                              .Where(tc => tc.Nombre == request.Tipo)
                              .FirstOrDefault();

                var nuevo = new Cliente()
                {
                    Nombre    = request.Nombre,
                    Proyectos = null,
                    Tipo      = tipoCli
                };

                try
                {
                    db.Clientes.Add(nuevo);
                    db.SaveChanges();
                }
                catch (DbUpdateException)
                {
                    return(newHttpErrorResponse(new Error("Ya existe un cliente con ese nombre.")));
                }

                var response = new ClienteResponse()
                {
                    Id        = nuevo.Id,
                    Nombre    = nuevo.Nombre,
                    Proyectos = null,
                    Tipo      = tipoCli
                };

                return(newHttpResponse(response));
            }
        }
コード例 #16
0
        public ClienteResponse Alterar(AlterarClienteRequest cliente)
        {
            var clienteBase = lista.Where(x => x.Id == cliente.Id).FirstOrDefault();

            clienteBase.Id             = cliente.Id;
            clienteBase.Cpf            = cliente.Cpf;
            clienteBase.DataNascimento = (DateTime)cliente.DataNascimento;
            clienteBase.Nome           = cliente.Nome;
            clienteBase.Rg             = cliente.Rg;

            var retorno = new ClienteResponse()
            {
                Id             = clienteBase.Id,
                Cpf            = clienteBase.Cpf,
                DataNascimento = clienteBase.DataNascimento,
                Nome           = clienteBase.Nome,
                Rg             = clienteBase.Rg,
            };

            return(retorno);
        }
コード例 #17
0
        public async Task <ActionResult <ClienteResponse> > Post([FromBody] ClienteDTO cliente)
        {
            Logger.Information($"Se recibio posteo de nuevo cliente{cliente.NumeroCliente} - {cliente.RazonSocial} - Id de operacion: {cliente.IdOperacion}");

            int idOperacion = cliente.IdOperacion;

            if (Env.IsProduction())
            {
                if (int.TryParse(cliente.NumeroCliente, out _))
                {
                    cliente.NumeroCliente = string.Format("{0:00000000}", int.Parse(cliente.NumeroCliente));
                }
                ;
                if (int.TryParse(cliente.NumeroSubcuenta, out _))
                {
                    cliente.NumeroSubcuenta = string.Format("{0:00000000}", int.Parse(cliente.NumeroSubcuenta));
                }
            }


            VtmclhDTO clienteFormat = Mapper.Map <ClienteDTO, VtmclhDTO>(cliente);

            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("Error", "Error de formato");
            }

            ClienteResponse response = await Repository.GraboCliente(clienteFormat, "NEW");

            response.IdOperacion = idOperacion;

            if (response.Estado != 200)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
コード例 #18
0
        public async Task <IActionResult> GetClient([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var client = await _context.Clients.Include(u => u.User).Include(a => a.Events)
                         .FirstOrDefaultAsync(a => a.Id == id);

            var response = new ClienteResponse
            {
                FullName    = client.User.FullName,
                Description = client.User.Description,
                Id          = client.Id,
                Address     = client.Address,
                Email       = client.User.Email,
                PhoneNumber = client.User.PhoneNumber,
                UserName    = client.User.UserName,
                Events      = client.Events.Select(p => new EventResponse
                {
                    Id          = p.Id,
                    Name        = p.Name,
                    Duration    = p.Duration,
                    EventDate   = p.EventDate,
                    People      = p.People,
                    Description = p.Description,
                }).ToList(),
            };

            if (client == null)
            {
                return(NotFound());
            }

            return(Ok(response));
        }
コード例 #19
0
ファイル: Administrador.cs プロジェクト: efrainSG/jadet
        public ClienteResponse cargarCliente(ClienteRequest request)
        {
            ClienteResponse response;
            DataAccess      da = new DataAccess {
                CadenaConexion = ConfigurationManager.ConnectionStrings["jadetBD"].ConnectionString
            };
            var resultado = da.listarUsuario(new Usuario {
                Id = request.IdCliente,
            }).FirstOrDefault();

            response = new ClienteResponse {
                IdCliente      = resultado.Id,
                Foto           = resultado.Foto,
                Nombre         = resultado.Nombre,
                Password       = resultado.Password,
                Direccion      = resultado.Direccion,
                IdEstatus      = resultado.IdEstatus,
                IdRol          = resultado.IdRol,
                Telefono       = resultado.Telefono,
                UserName       = resultado.UserName,
                ZonaPaqueteria = resultado.ZonaPaqueteria
            };
            return(response);
        }
コード例 #20
0
 public ActionResult <bool> Gravar([FromBody] ClienteResponse request)
 {
     return(Ok(_cliente.Gravar(request)));
 }
コード例 #21
0
        public HttpResponse <ClienteResponse> ModificarCliente(ClienteRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El cliente que se intenta modificar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var cli = db.Clientes
                          .Where(c => c.Nombre.Equals(request.Nombre))
                          .Include(c => c.Proyectos)
                          .Include(c => c.Tipo)
                          .FirstOrDefault();

                var tipo = db.TipoClientes
                           .Where(t => t.Nombre.Equals(request.Tipo))
                           .FirstOrDefault();

                if (cli == null)
                {
                    return(newHttpErrorResponse(new Error("No existe el cliente")));
                }

                if (cli.Tipo == tipo)
                {
                    return(newHttpErrorResponse(new Error("El cliente ya es de ese tipo")));
                }

                cli.Nombre = request.Nombre;
                cli.Tipo   = tipo;

                db.Entry(cli).State = EntityState.Modified;
                db.SaveChanges();

                var response = new ClienteResponse()
                {
                    Id        = cli.Id,
                    Nombre    = cli.Nombre,
                    Tipo      = cli.Tipo,
                    Proyectos = null
                };

                if (cli.Proyectos != null)
                {
                    var proyectosResponse = new List <ProyectoResponse>();

                    foreach (var p in cli.Proyectos)
                    {
                        var nuevoProyResponse = new ProyectoResponse()
                        {
                            Id      = p.Id,
                            Nombre  = p.Nombre,
                            Cliente = cli.Nombre
                        };
                        proyectosResponse.Add(nuevoProyResponse);
                    }
                    response.Proyectos = proyectosResponse;
                }

                return(newHttpResponse(response));
            }
        }
コード例 #22
0
        public HttpResponse <LoginResponse> Login(string username, string password)
        {
            var encryptionManager = new EncryptionManager();
            var pass = encryptionManager.Encryptdata(password);

            using (var db = new GeviApiContext())
            {
                var user = db.Usuarios
                           .Where(u => u.Email.Equals(username) && u.Contrasenia.Equals(pass))
                           .FirstOrDefault();

                if (user != null)
                {
                    #region cargarListas
                    var clientes = db.Clientes
                                   .Include(c => c.Proyectos)
                                   .Include(c => c.Tipo)
                                   .ToList();


                    var tipoClientes = db.TipoClientes.ToList();
                    var monedas      = db.Monedas.ToList();
                    var tipoGastos   = db.TipoGastos.ToList();

                    var clientesResponse     = new List <ClienteResponse>();
                    var tipoClientesResponse = new List <TipoResponse>();
                    var tipoGastosResponse   = new List <TipoResponse>();

                    foreach (var c in clientes)
                    {
                        var nuevoCliente = new ClienteResponse()
                        {
                            Id        = c.Id,
                            Nombre    = c.Nombre,
                            Proyectos = null, // lo devuelvo null porque no me interesa devolver los proyectos
                            Tipo      = c.Tipo
                        };

                        clientesResponse.Add(nuevoCliente);
                    }

                    foreach (var tc in tipoClientes)
                    {
                        var nuevoTipoCliente = new TipoResponse()
                        {
                            TipoNombre = tc.Nombre
                        };

                        tipoClientesResponse.Add(nuevoTipoCliente);
                    }

                    foreach (var tg in tipoGastos)
                    {
                        var nuevoTipoGasto = new TipoResponse()
                        {
                            TipoNombre = tg.Nombre
                        };

                        tipoGastosResponse.Add(nuevoTipoGasto);
                    }
                    #endregion

                    if (user is Empleado)
                    {
                        Empleado usuario = user as Empleado;

                        var viajes = db.Viajes
                                     .Where(v => v.Empleado.Id == usuario.Id)
                                     .Where(v => v.Estado == Estado.APROBADO)
                                     .Include(v => v.Empleado)
                                     .Include(v => v.Gastos)
                                     .Include(v => v.Proyecto)
                                     .ToList();

                        var response = new List <ViajeResponse>();

                        #region traerViajesDelEmpleado
                        if (viajes != null)
                        {
                            foreach (var v in viajes)
                            {
                                var nuevo = new ViajeResponse()
                                {
                                    Id          = v.Id,
                                    EmpleadoId  = usuario.Id,
                                    Estado      = v.Estado,
                                    FechaFin    = v.FechaFin,
                                    FechaInicio = v.FechaInicio,
                                    Gastos      = null,
                                    Proyecto    = v.Proyecto?.Nombre
                                };

                                if (v.Gastos != null)
                                {
                                    var gastosRespone = new List <GastoResponse>();

                                    foreach (var g in v.Gastos)
                                    {
                                        var nuevoGastoResponse = new GastoResponse()
                                        {
                                            Id       = g.Id,
                                            Estado   = g.Estado,
                                            Fecha    = g.Fecha,
                                            Moneda   = g.Moneda?.Nombre,
                                            Tipo     = g.Tipo?.Nombre,
                                            ViajeId  = v.Id,
                                            Proyecto = g.Viaje?.Proyecto?.Nombre,
                                            Total    = g.Total,
                                            Empleado = g.Empleado?.Nombre
                                        };

                                        gastosRespone.Add(nuevoGastoResponse);
                                    }

                                    nuevo.Gastos = gastosRespone;
                                }

                                response.Add(nuevo);
                            }
                        }
                        #endregion

                        return(newHttpResponse(new LoginResponse()
                        {
                            Id = user.Id,
                            Email = user.Email,
                            FechaRegistro = user.FechaRegistro,
                            Nombre = user.Nombre,
                            Clientes = clientesResponse,
                            Monedas = monedas,
                            TipoClientes = tipoClientesResponse,
                            TipoGastos = tipoGastosResponse,
                            EsEmpleado = user is Empleado,
                            ViajesAprobados = response
                        }));
                    }

                    if (user is Administrativo)
                    {
                        var empleados = db.Usuarios
                                        .OfType <Empleado>()
                                        .ToList();

                        return(newHttpResponse(new LoginResponse()
                        {
                            Id = user.Id,
                            Email = user.Email,
                            FechaRegistro = user.FechaRegistro,
                            Nombre = user.Nombre,
                            Clientes = clientesResponse,
                            Monedas = monedas,
                            TipoClientes = tipoClientesResponse,
                            TipoGastos = tipoGastosResponse,
                            EsEmpleado = user is Empleado,
                            Empleados = empleados
                        }));
                    }

                    return(newHttpResponse(new LoginResponse()
                    {
                        Id = user.Id,
                        Email = user.Email,
                        FechaRegistro = user.FechaRegistro,
                        Nombre = user.Nombre,
                        Clientes = clientesResponse,
                        Monedas = monedas,
                        TipoClientes = tipoClientesResponse,
                        TipoGastos = tipoGastosResponse,
                        EsEmpleado = user is Empleado
                    }));
                }
                else
                {
                    return(newHttpErrorResponse(new Error("Login invalido. Verifique las credenciales.")));
                }
            }
        }
コード例 #23
0
        public HttpResponse <ClienteResponse> BorrarCliente(ClienteRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El cliente que se intenta borrar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var cli = db.Clientes
                          .Where(c => c.Nombre == request.Nombre)
                          .Include(c => c.Proyectos.Select(p => p.Cliente))
                          .Include(c => c.Tipo)
                          .FirstOrDefault();

                if (cli == null)
                {
                    return(newHttpErrorResponse(new Error("No existe el cliente")));
                }

                var proyectos = db.Proyectos
                                .Where(p => p.Cliente.Id == cli.Id)
                                .Include(p => p.Cliente)
                                .ToList();

                var response = new ClienteResponse()
                {
                    Id        = cli.Id,
                    Nombre    = cli.Nombre,
                    Proyectos = null,
                    Tipo      = cli.Tipo
                };

                if (proyectos != null)
                {
                    var proyectosResponse = new List <ProyectoResponse>();

                    foreach (var p in proyectos)
                    {
                        var nuevoProyResponse = new ProyectoResponse()
                        {
                            Id      = p.Id,
                            Nombre  = p.Nombre,
                            Cliente = cli?.Nombre
                        };
                        proyectosResponse.Add(nuevoProyResponse);

                        var viajes = db.Viajes
                                     .Where(v => v.Proyecto.Id == p.Id)
                                     .Include(v => v.Proyecto)
                                     .ToList();

                        if (viajes != null)
                        {
                            foreach (var v in viajes)
                            {
                                db.Viajes.Remove(v);
                                db.SaveChanges();
                            }
                        }
                        db.Proyectos.Remove(p);
                        db.SaveChanges();
                    }

                    response.Proyectos = proyectosResponse;
                }

                db.Clientes.Remove(cli);
                db.SaveChanges();

                return(newHttpResponse(response));
            }
        }
コード例 #24
0
        public async Task <ClienteResponse> ActualizoCliente(Vtmclh cliente)
        {
            string errorAltaCodigoPostal = "";
            string situacionDeIvaActual  = "";

            errorAltaCodigoPostal = await GeneroCodigoPostal(cliente.VtmclhCodpai, cliente.VtmclhCodpos, cliente.VtmclhJurisd);

            if (errorAltaCodigoPostal != "")
            {
                return(new ClienteResponse("Bad Request", 0, errorAltaCodigoPostal));
            }

            errorAltaCodigoPostal = await GeneroCodigoPostal(cliente.VtmclhPaient, cliente.VtmclhCodent, cliente.VtmclhJurent);

            if (errorAltaCodigoPostal != "")
            {
                return(new ClienteResponse("Bad Request", 0, errorAltaCodigoPostal));
            }


            Vtmclh clienteAActualizar = await Context.Vtmclh
                                        .Where(c => c.VtmclhNrocta == cliente.VtmclhNrocta)
                                        .FirstOrDefaultAsync();

            if (clienteAActualizar == null)
            {
                return(new ClienteResponse("Bad Request", 0, $"El cliente {cliente.VtmclhNrocta} no existe"));
            }

            situacionDeIvaActual = clienteAActualizar.VtmclhCndiva;

            Type typeCliente = cliente.GetType();

            System.Reflection.PropertyInfo[] listaPropiedades = typeCliente.GetProperties();

            foreach (System.Reflection.PropertyInfo propiedad in listaPropiedades)
            {
                var value = propiedad.GetValue(cliente, null);

                if (propiedad.PropertyType == typeof(string))
                {
                    if ((string)value != "null" && (string)value != "NULL" &&
                        value != null && propiedad.Name != "VtmclhNrocta" &&
                        propiedad.Name != "Contactos")
                    {
                        if (propiedad.Name == "VtmclhFisjur")
                        {
                            if ((string)value != "J" && (string)value != "F")
                            {
                                return(new ClienteResponse("Bad Request", 0, $"El campo Tipo de Persona tiene un valor inválido"));
                            }
                        }


                        if (propiedad.Name == "VtmclhLanexp")
                        {
                            if ((string)value != "1" && (string)value != "2" && (string)value != "3")
                            {
                                return(new ClienteResponse("Bad Request", 0, $"El campo Idioma de referencia tiene un valor inválido"));
                            }
                        }

                        typeCliente.InvokeMember(propiedad.Name, BindingFlags.SetProperty, null, clienteAActualizar, new object[] { value });
                    }
                }
            }

            clienteAActualizar.VtmclhFecmod = DateTime.Now;
            clienteAActualizar.VtmclhUltopr = "M";
            clienteAActualizar.VtmclhUserid = "API";

            try
            {
                await Context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                return(new ClienteResponse("Bad Request", 0, e.InnerException.Message));
            }

            foreach (Vtmclc contacto in cliente.Contactos)
            {
                contacto.VtmclcNrocta = cliente.VtmclhNrocta;
                ClienteResponse response = await this.actualizoContacto(contacto);

                if (response.Estado != 200)
                {
                    return(response);
                }
            }

            foreach (Vtmcli impuesto in cliente.Impuestos)
            {
                impuesto.VtmcliNrocta = cliente.VtmclhNrocta;
                ClienteResponse response = await this.actualizoImpuesto(impuesto);

                if (response.Estado != 200)
                {
                    return(response);
                }
            }

            //01/10/2021 - Se comenta dado que empiezan a informar impuestos desde app origen.
            //if (situacionDeIvaActual != clienteAActualizar.VtmclhCndiva)
            //{
            //    try
            //    {
            //        await Context.Database.BeginTransactionAsync();
            //        var rowsAffected = await Context.Database.ExecuteSqlRawAsync($"EXEC ALM_RegeneraVTMCLI @p0", parameters: new[] { cliente.VtmclhNrocta });
            //        await Context.Database.CommitTransactionAsync();
            //    }
            //    catch (Exception e)
            //    {
            //        return new ClienteResponse("Bad Request", 0, e.InnerException.Message);
            //    }

            //}

            return(new ClienteResponse("OK", 0, null, "Cliente actualizado"));
        }
コード例 #25
0
        public JsonResult Add(Cliente cliente, List <Producto> productos)
        {
            ClienteResponse request = trupper.AddCliente(cliente, productos.ToArray());

            return(Json(request, JsonRequestBehavior.AllowGet));
        }
コード例 #26
0
 public bool Gravar(ClienteResponse request)
 {
     return(_cliente.Gravar(_mapper.Map <ClienteModel>(request)));
 }
コード例 #27
0
 public ActionResult <bool> Update([FromBody] ClienteResponse request)
 {
     return(Ok(_cliente.Update(request)));
 }
コード例 #28
0
 public bool Update(ClienteResponse request)
 {
     return(_cliente.Update(_mapper.Map <ClienteModel>(request)));
 }
コード例 #29
0
        public async override void  OnException(ExceptionContext context)
        {
            string errorMessage;

            if (context.Exception.InnerException != null)
            {
                errorMessage = $"{context.Exception.InnerException}";

                if (typeof(AutoMapperMappingException) == context.Exception.InnerException.GetType())
                {
                    AutoMapperMappingException errorAutomapper = (AutoMapperMappingException)context.Exception.InnerException;
                    errorMessage = $"Error: {errorAutomapper} origen: {errorAutomapper.MemberMap.SourceMember.Name}. " +
                                   $"Destino:{errorAutomapper.MemberMap.DestinationName}";
                }
            }
            else
            {
                errorMessage = $"{context.Exception.Message}"; //- {context.Exception.StackTrace}";
            }

            logger.Fatal(errorMessage);


            ClienteResponse response = new ClienteResponse("", 0, "")
            {
            };


            switch (context.Exception.GetType().ToString())
            {
            case "APINosis.Helpers.NotFoundException":
                response.Estado      = 404;
                response.Titulo      = "Not Found";
                response.IdOperacion = 0;
                response.Mensaje     = "El recurso solicitado no fue encontrado";
                context.Result       = new NotFoundObjectResult(response);
                context.HttpContext.Response.StatusCode =
                    (int)HttpStatusCode.NotFound;
                break;

            case "APINosis.Helpers.BadRequestException":
                response.Estado      = 400;
                response.Titulo      = "Bad Request";
                response.IdOperacion = 0;
                response.Mensaje     = errorMessage;
                context.Result       = new NotFoundObjectResult(response);
                context.HttpContext.Response.StatusCode =
                    (int)HttpStatusCode.BadRequest;
                break;

            default:
                response.Estado      = 500;
                response.Titulo      = "Error interno de la aplicación";
                response.Mensaje     = errorMessage;
                response.IdOperacion = 0;
                context.Result       = new ObjectResult(response);
                context.HttpContext.Response.StatusCode =
                    (int)HttpStatusCode.InternalServerError;
                break;
            }

            context.ExceptionHandled = true;
        }