// 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()); }
/*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")); } }
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")); }