示例#1
0
        // GET: Producto
        public ActionResult Index()
        {
            //System.Threading.Thread.Sleep(3000);
            //local = Thread.GetNamedDataSlot("tenant");
            //string valor_Tenant = System.Threading.Thread.GetData(local).ToString();
            try
            {
                var user = Session["usuario"] as UsuarioSite;
                valor_tenant = user.Dominio;

                if (valor_tenant == null)
                {
                    System.Diagnostics.Debug.WriteLine("tenant nulo");
                }
                System.Diagnostics.Debug.WriteLine(valor_tenant);
                var idTenant         = _bltenant.ObtenerIdTenant(valor_tenant);
                var lista_Categorias = _blcategoria.ObtenerCategoriasPorTienda(idTenant);
                ViewBag.ListaCategorias = lista_Categorias;
            }
            catch (Exception)
            {
                throw;
            }



            return(View());
        }
示例#2
0
        /*static LocalDataStoreSlot local;
         * private String tenantID;
         * static LocalDataStoreSlot tenant = Thread.AllocateNamedDataSlot("Tenant");*/
        //GET: Tenant/
        public ActionResult Index(string id)
        {
            log.Warn("TENANT CONTROLLER SITIO = " + id);

            tenantID = id;
            System.Diagnostics.Debug.WriteLine("ID tenant :" + tenantID);
            if (_ibl.ExisteSitio(tenantID))
            {
                // System.Web.HttpContext.Current.Session.Clear();

                /*System.Diagnostics.Debug.WriteLine("ID tenant :" + id);
                 * System.Diagnostics.Debug.WriteLine("Tenant");
                 * ViewBag.Message = id;
                 * Session["sitio"] = new Sitio { dominio =id };
                 *
                 * System.Threading.ThreadLocal<String> tenant;
                 *
                 * ThreadLocal<string> tenant_thread = new ThreadLocal<string>(() =>
                 * {
                 *  return id;
                 * });
                 *
                 * tenant_thread.Value.ToString(); */
                /*local = Thread.GetNamedDataSlot("tenant");
                 * if (local == null) {
                 *
                 *  local = Thread.AllocateNamedDataSlot("tenant");
                 * }
                 * Thread.SetData(local, id);
                 * string valor_Tenant = System.Threading.Thread.GetData(local).ToString();*/
                if (System.Web.HttpContext.Current.Session["usuario"] == null)
                {
                    System.Web.HttpContext.Current.Session["usuario"] = new UsuarioSite();
                }
                //if (user == null) Session["usuario"] = new UsuarioSite();
                //System.Web.HttpContext.Current.Session["usuario"] = user;
                if (System.Web.HttpContext.Current.Session["datosTienda"] == null)
                {
                    System.Web.HttpContext.Current.Session["datosTienda"] = new TiendaTenant();
                }

                if (System.Web.HttpContext.Current.Session["estilo"] == null)
                {
                    System.Web.HttpContext.Current.Session["estilo"] = new EstiloTienda();
                }


                user          = System.Web.HttpContext.Current.Session["usuario"] as UsuarioSite;
                user.Dominio  = tenantID;
                user.idTienda = _ibl.ObtenerIdTenant(tenantID);

                t      = System.Web.HttpContext.Current.Session["datosTienda"] as TiendaTenant;
                estilo = System.Web.HttpContext.Current.Session["estilo"] as EstiloTienda;

                t          = _ibl.ObtenerDatosTenant(user.idTienda);
                estilo.css = CrearCss(t.Css, t.Nombre);

                List <ImagenesTenant> imagenesT = _ibl.ObtenerImgTenant(user.idTienda);

                System.Web.HttpContext.Current.Session["datosTienda"] = t;
                System.Web.HttpContext.Current.Session["estilo"]      = estilo;
                System.Web.HttpContext.Current.Session["usuario"]     = user;

                var lista_Subastas = _sub.ObtenerSubastas(tenantID);

                List <Subasta> ls_Subastas_Subasta = new List <Subasta>();
                foreach (Subasta item in lista_Subastas)
                {
                    if (item.finalizado == Crosscutting.Enum.TipoFinalizacion.Subasta)
                    {
                        ls_Subastas_Subasta.Add(item);
                    }
                }

                List <Subasta> ls_Subastas_Directa = new List <Subasta>();
                foreach (Subasta item in lista_Subastas)
                {
                    if (item.finalizado == Crosscutting.Enum.TipoFinalizacion.Compra_directa)
                    {
                        ls_Subastas_Directa.Add(item);
                    }
                }

                List <Subasta> lista_Subastas_Activas = new List <Subasta>();
                foreach (Subasta element in lista_Subastas)
                {
                    if (element.estado == Crosscutting.Enum.EstadoTransaccion.Activa)
                    {
                        lista_Subastas_Activas.Add(element);
                    }
                }

                List <Subasta> lista_Subastas_compraDirecta = new List <Subasta>();

                foreach (Subasta element in lista_Subastas_compraDirecta)
                {
                    if (element.finalizado == Crosscutting.Enum.TipoFinalizacion.Compra_directa)
                    {
                        lista_Subastas_compraDirecta.Add(element);
                    }
                }

                ViewBag.ListaCategorias = proIBL.ObtenerCategoriasPorTienda(user.idTienda);

                ViewBag.ListaImagenes = imagenesT;

                ViewBag.ListarSubastas        = lista_Subastas;
                ViewBag.ListarSubastasActivas = lista_Subastas_Activas;

                ViewBag.ListarSubastasSubasta = lista_Subastas;
                ViewBag.ListarSubastasDirecta = lista_Subastas_compraDirecta;


                ///////////

                RamdomRecomendaciones recom = new RamdomRecomendaciones();

                IBLUsuario     usuIBL    = new BLUsuario();
                var            idUsuario = usuIBL.ObtenerIdByEmail(tenantID, user.Email);
                int            idTenant  = _ibl.ObtenerIdTenant(tenantID);
                List <Subasta> prodsfav  = recom.AlgRecomen(idTenant, idUsuario);/////////////RECOMENDACIONES//////////////////////////////

                ViewBag.Recomendadas = prodsfav.ToList();

                return(View());
                //System.Diagnostics.Debug.WriteLine(" Dominio en sesion " + user.Dominio.ToString());
                //Thread t = Thread.CurrentThread;
                //System.Diagnostics.Debug.WriteLine(" Tenant Controller . desde el thread: "+ valor_Tenant);
            }
            else
            {
                Session.Clear();
                return(RedirectToActionPermanent("Error"));
            }
        }
示例#3
0
        public ActionResult FacebookCallback(string code)
        {
            log.Warn("entro Facebook FacebookCallback");

            string code_temp = code.Replace("code=", "");

            log.Warn("URI ABSOLUTE =" + RedirectUri.AbsoluteUri.ToString());



            log.Warn("Codigo  " + code);
            try
            {
                var     fb     = new FacebookClient();
                dynamic result = fb.Post("oauth/access_token", new
                {
                    client_id     = "508985985924118",
                    client_secret = "778ec6400e56f9382f23a3b9ca44b6bc",
                    redirect_uri  = RedirectUri.AbsoluteUri,
                    code          = code_temp
                });

                var accessToken = result.access_token;

                // Store the access token in the session for farther use
                Session["AccessToken"] = accessToken;

                log.Warn("Paso token ");
                // update the facebook client with the access token so
                // we can make requests on behalf of the user
                fb.AccessToken = accessToken;
                log.Warn("Antes fb.get " + accessToken);
                // Get the user's information, like email, first name, middle name etc
                //dynamic me = fb.Get ("me") ;



                dynamic me = fb.Get("me?fields=id,email,name,picture");
                //FacebookUserModel facebookUser = Newtonsoft.Json.JsonConvert.DeserializeObject<FacebookUserModel>(fbresult.ToString());

                //,first_name,last_name,locale,location,picture

                //dynamic me = fb.Get("me?fields=first_name,middle_name,last_name,email");
                //("/me?fields=id,name,gender,email,birthday")

                log.Warn("DATOS " + me.email);


                string imagen = string.Format("https://graph.facebook.com/{0}/picture", me.id);
                log.Warn("DATOS 2 " + imagen);
                //string imagen = me.picture;
                string email  = me.email;
                string nombre = me.name;

                //string direccion =me.locale;
                log.Warn("despues datos fb.get  " + email + " " + nombre);

                user_sitio   = System.Web.HttpContext.Current.Session["usuario"] as UsuarioSite;
                valor_tenant = user_sitio.Dominio;
                if (!(_bl.ExisteUsuario(valor_tenant, email)))
                {
                    // if (user_sitio.Email == null) return RedirectToAction("Login", "Account");
                    //valor_tenant = user_sitio.Dominio.ToString();
                    proIBL = new BLProducto();
                    var lista_Origen = proIBL.ObtenerCategoriasPorTienda(user_sitio.idTienda);
                    List <System.Web.WebPages.Html.SelectListItem> lista_item_Cat = new List <System.Web.WebPages.Html.SelectListItem>();
                    foreach (var item in lista_Origen)
                    {
                        lista_item_Cat.Add(new System.Web.WebPages.Html.SelectListItem()
                        {
                            Value    = item.CategoriaId.ToString(),
                            Text     = item.Nombre,
                            Selected = true
                        });
                    }


                    log.Warn("Facebook creo alta usuario");
                    user = new Usuario
                    {
                        email             = email,
                        direccion         = "vacia",
                        imagen            = imagen,
                        fecha_Nacimiento  = DateTime.Now,
                        nombre            = nombre,
                        apellido          = "",
                        nick              = nombre,
                        password          = "******",
                        fecha_Alta        = (DateTime)DateTime.Now,
                        reputacion_Venta  = "0",
                        reputacion_Compra = "0",
                        //billetera = (Double)5000,
                        coordenadas = "sin direccion",
                        telefono    = "facebook"
                    };
                    log.Warn("Cargo preferencias del usuario ");
                    if (lista_item_Cat != null)
                    {
                        foreach (var item in lista_item_Cat)
                        {
                            if (item.Selected)
                            {
                                log.Warn("Item " + item.Selected.ToString() + " " + item.Text + " " + item.Value);
                                if (user.preferencias != null)
                                {
                                    user.preferencias = user.preferencias + ";" + item.Text;
                                }
                                else
                                {
                                    user.preferencias = item.Text;
                                }
                            }
                        }
                    }

                    //****************************************
                    log.Warn("Registrando por Facebook en  : " + valor_tenant + "Usuario : " + user.ToString());
                    _bl.RegistrarUsuario(valor_tenant, user);
                }

                Usuario usr = _bl.LoginUsuarioFacebook(valor_tenant, email);
                if (usr != null)
                {
                    int idTenant = _ibl.ObtenerIdTenant(valor_tenant);

                    var user_Session = Session["usuario"] as UsuarioSite;
                    user_Session.Email  = usr.email;
                    user_Session.Nombre = usr.nombre;
                    //user_Session.Password = usr.password;
                    user_Session.idUsuario = usr.id;
                    user_Session.idTienda  = idTenant;
                    user_Session.imagen    = user.imagen;
                }
                // Set the auth cookie
                FormsAuthentication.SetAuthCookie(email, false);
            }
            catch (Exception e)
            {
                log.Error("Error Facebook callback " + e);
                throw e;
            }



            return(RedirectToAction("Index", "Tenant"));
        }