public IHttpActionResult Put(RegistrarUsuarioRestauranteRequest request)
        {
            RegistrarUsuarioRestauranteResponse objresponse = new RegistrarUsuarioRestauranteResponse();

            objresponse.status = new ProcesoResponse();


            try
            {
                var usuarioActualizar = BD.t_usuario.FirstOrDefault(x => x.usua_id == request.Usuario.usua_id);

                usuarioActualizar.usua_direc     = request.Usuario.usua_direc;
                usuarioActualizar.dist_id        = request.Usuario.dist_id;
                usuarioActualizar.usua_refedirec = request.Usuario.usua_refedirec;
                if (request.Usuario.usua_rutaiamgen != null)
                {
                    usuarioActualizar.usua_rutaimagen = request.Usuario.usua_rutaiamgen;
                }


                var tRestuarante = BD.t_restaurante.FirstOrDefault(x => x.usua_id == request.Usuario.usua_id);
                tRestuarante.rest_delivery     = request.Restaurante.rest_delivery;
                tRestuarante.rest_reservalocal = request.Restaurante.rest_reservalocal;
                tRestuarante.rest_nomcomer     = request.Restaurante.rest_nomcomer;
                tRestuarante.esti_id           = request.Restaurante.esti_id;
                tRestuarante.rest_descrip      = request.Restaurante.rest_descrip;


                var objUsuarioCuenta = BD.t_usuariocuenta.FirstOrDefault(x => x.usua_id == request.Usuario.usua_id);

                if (objUsuarioCuenta == null)
                {
                    t_usuariocuenta objCuenta = new t_usuariocuenta();
                    objCuenta.uscta_titular = request.Restaurante.uscta_titular;
                    objCuenta.uscta_numero  = request.Restaurante.uscta_numero;
                    objCuenta.usua_id       = request.Usuario.usua_id;
                    objCuenta.ticta_id      = request.Restaurante.ticta_id;

                    BD.t_usuariocuenta.Add(objCuenta);
                }

                else
                {
                    objUsuarioCuenta.uscta_titular = request.Restaurante.uscta_titular;
                    objUsuarioCuenta.uscta_numero  = request.Restaurante.uscta_numero;
                    objUsuarioCuenta.usua_id       = request.Usuario.usua_id;
                }


                var tTelefonosExistentes = BD.t_telefono.Where(z => z.usua_id == request.Usuario.usua_id);


                foreach (var item in tTelefonosExistentes)
                {
                    BD.t_telefono.Remove(item);
                }



                foreach (var item in request.Telefonos)
                {
                    t_telefono nuevoTelefono = new t_telefono();
                    nuevoTelefono.tele_nume = item.NumeroTelefono;
                    nuevoTelefono.usua_id   = request.Usuario.usua_id;
                    nuevoTelefono.tite_id   = item.CodigoTipoTelefono;

                    BD.t_telefono.Add(nuevoTelefono);
                }


                BD.SaveChanges();
            }
            catch (Exception err)
            {
                objresponse.status.estado  = -1;
                objresponse.status.mensaje = err.Message;
                throw err;
            }

            return(Ok(objresponse));
        }
        public IHttpActionResult Post(RegistrarUsuarioRestauranteRequest request)
        {
            RegistrarUsuarioRestauranteResponse objresponse = new RegistrarUsuarioRestauranteResponse();

            objresponse.status = new ProcesoResponse();


            try
            {
                var usuario = BD.t_usuario.FirstOrDefault(x => x.usua_email == request.Usuario.usua_email);


                var restaurante = BD.t_restaurante.FirstOrDefault(x => x.rest_ruc == request.Restaurante.rest_ruc);

                if (restaurante != null)
                {
                    objresponse.status.estado  = 2;
                    objresponse.status.mensaje = "Ya existe una empresa con el mismo RUC";

                    return(Ok(objresponse));
                }


                if (usuario != null)
                {
                    objresponse.status.estado  = 1;
                    objresponse.status.mensaje = "Ya existe un usuario registrado con el mismo correo";

                    return(Ok(objresponse));
                }



                t_usuario nueUsuario = new t_usuario();
                nueUsuario.usua_direc      = null;
                nueUsuario.usua_dni        = request.Usuario.usua_dni;
                nueUsuario.usua_email      = request.Usuario.usua_email;
                nueUsuario.usua_esta       = false;
                nueUsuario.usua_fecnac     = null;
                nueUsuario.usua_nomb       = request.Usuario.usua_nomb;
                nueUsuario.usua_pass       = request.Usuario.usua_pass;
                nueUsuario.usua_refedirec  = null;
                nueUsuario.usua_rutaimagen = null;

                BD.t_usuario.Add(nueUsuario);
                BD.SaveChanges();


                objresponse.CodigoUsuario = nueUsuario.usua_id;


                t_restaurante nuevoRestauramte = new t_restaurante();
                nuevoRestauramte.usua_id           = nueUsuario.usua_id;
                nuevoRestauramte.rest_delivery     = null;
                nuevoRestauramte.rest_descrip      = null;
                nuevoRestauramte.rest_estado       = false;
                nuevoRestauramte.rest_nomcomer     = null;
                nuevoRestauramte.rest_reservalocal = null;
                nuevoRestauramte.rest_ruc          = request.Restaurante.rest_ruc;
                nuevoRestauramte.rest_rz           = request.Restaurante.rest_rz;

                BD.t_restaurante.Add(nuevoRestauramte);


                foreach (var item in request.Telefonos)
                {
                    t_telefono nuevoTelefono = new t_telefono();
                    nuevoTelefono.tele_nume = item.NumeroTelefono;
                    nuevoTelefono.usua_id   = nueUsuario.usua_id;
                    nuevoTelefono.tite_id   = item.CodigoTipoTelefono;



                    BD.t_telefono.Add(nuevoTelefono);
                }


                BD.SaveChanges();

                objresponse.status.estado  = 0;
                objresponse.status.mensaje = "Registrado con exito";
            }
            catch (Exception err)
            {
                objresponse.status.estado  = -1;
                objresponse.status.mensaje = err.Message;
                throw err;
            }

            return(Ok(objresponse));
        }