private void fbLogin(HttpContext context) { string token = context.Request.Params["token"]; Facebook.FacebookClient client = new Facebook.FacebookClient(token); client.IsSecureConnection = true; Facebook.JsonObject o = (Facebook.JsonObject)client.Get("/me"); var db = GetDataContext1; using (var scope = db.GetTransaction()) { try { string first_name = (string)o["first_name"]; string name = (string)o["name"]; decimal id = Convert.ToDecimal(o["id"]); Data.POCOS.Facebook fb = new Data.POCOS.Facebook(); fb.name = name; fb.first_name = first_name; fb.gender = (string)o["gender"]; fb.id = id; fb.last_name = (string)o["last_name"]; fb.link = (string)o["link"]; fb.locale = (string)o["locale"]; fb.timezone = Convert.ToDouble(o["timezone"]); string updatedtime = (string)o["updated_time"]; DateTime dt; if (DateTime.TryParse(updatedtime, out dt)) { fb.updated_time = dt; } if (db.Exists <Data.POCOS.Facebook>(id)) { db.Update(fb); } else { db.Insert(fb); } Data.POCOS.AppUser au = Data.POCOS.AppUser.FirstOrDefault("Select top 1 * from AppUsers where facebookid=@0", id); if (au == null) { au = new Data.POCOS.AppUser(); au.FirstName = first_name; au.facebookid = id; db.Insert(au); } scope.Complete(); Common.WriteValue(Common.AuthCookie, au.ID.ToString()); Common.WriteValue(Common.InfoCookie, JObject.FromObject(new { email = au.Email, name = string.IsNullOrEmpty(au.FirstName) ? au.Name : au.FirstName, avatar = string.IsNullOrWhiteSpace(au.Avatar) ? null : Common.UploadedImageRelPath + au.Avatar, points = au.Points })); } finally { scope.Dispose(); } } }
private void fbLogin(HttpContext context) { string token = context.Request.Params["token"]; Facebook.FacebookClient client = new Facebook.FacebookClient(token); client.IsSecureConnection = true; var me = client.Get("/me"); Facebook.JsonObject o = (Facebook.JsonObject)me; var db = GetDataContext1; using (var scope = db.GetTransaction()) { try { string first_name = (string)o["first_name"]; string name = (string)o["name"]; decimal id = Convert.ToDecimal(o["id"]); string email = (string)o["email"]; Data.POCOS.Facebook fb = new Data.POCOS.Facebook(); fb.name = name; fb.first_name = first_name; fb.gender = (string)o["gender"]; fb.id = id; fb.last_name = (string)o["last_name"]; fb.link = (string)o["link"]; fb.locale = (string)o["locale"]; fb.email = email; fb.timezone = Convert.ToDouble(o["timezone"]); string updatedtime = (string)o["updated_time"]; DateTime dt; if (DateTime.TryParse(updatedtime, out dt)) { fb.updated_time = dt; } if (db.Exists <Data.POCOS.Facebook>(id)) { db.Update(fb); } else { db.Insert(fb); } Data.POCOS.AppUser au = Data.POCOS.AppUser.FirstOrDefault("Select top 1 * from AppUsers where facebookid=@0", id); if (au == null) { au = new Data.POCOS.AppUser(); au.Email = email; au.FirstName = first_name; au.Create_date = DateTime.Now; string _name = Common.RemoveSpecialCharacters(first_name); var names = from o1 in GetDataContext2.AppUsers select o1.Name; string rs = null; while (names.Any(o1 => o1 == _name)) { if (!string.IsNullOrEmpty(rs)) { _name = _name.TrimEnd(rs.ToCharArray()); } rs = Common.RandomString(1); _name += rs; } au.Name = _name; au.facebookid = id; try { var query = string.Format(@"SELECT id, width, height, url, is_silhouette, real_width, real_height FROM profile_pic WHERE id={0}", id); dynamic parameters = new ExpandoObject(); parameters.q = query; dynamic obj = client.Get("/fql", parameters); Facebook.JsonObject det = (Facebook.JsonObject)obj; if (det["data"] != null) { Facebook.JsonArray jarray = ((Facebook.JsonArray)det["data"]); Facebook.JsonObject pic = (Facebook.JsonObject)jarray.First(); string url = (string)pic["url"]; WebClient webclient = new WebClient(); byte[] data = webclient.DownloadData(url); Image img = Image.FromStream(new MemoryStream(data)); string fn = Guid.NewGuid().ToString() + ".jpg"; string fp = Common.UploadedImagePath + fn; img.Save(fp, ImageFormat.Jpeg); au.Avatar = fn; } } catch { } db.Insert(au); } scope.Complete(); Common.WriteValue(Common.AuthCookie, au.ID.ToString()); Common.WriteValue(Common.InfoCookie, JObject.FromObject(new { email = au.Email, name = string.IsNullOrEmpty(au.FirstName) ? au.Name : au.FirstName, avatar = string.IsNullOrWhiteSpace(au.Avatar) ? null : Common.UploadedImageRelPath + au.Avatar, points = au.Points })); } finally { scope.Dispose(); } } }
private void fbLogin(HttpContext context) { string token = context.Request.Params["token"]; Facebook.FacebookClient client = new Facebook.FacebookClient(token); client.IsSecureConnection = true; Facebook.JsonObject o = (Facebook.JsonObject)client.Get("/me"); var db = GetDataContext1; using (var scope = db.GetTransaction()) { try { string first_name = (string)o["first_name"]; string name = (string)o["name"]; decimal id = Convert.ToDecimal(o["id"]); Data.POCOS.Facebook fb = new Data.POCOS.Facebook(); fb.name = name; fb.first_name = first_name; fb.gender = (string)o["gender"]; fb.id = id; fb.last_name = (string)o["last_name"]; fb.link = (string)o["link"]; fb.locale = (string)o["locale"]; fb.timezone = Convert.ToDouble(o["timezone"]); string updatedtime = (string)o["updated_time"]; DateTime dt; if (DateTime.TryParse(updatedtime, out dt)) fb.updated_time = dt; if (db.Exists<Data.POCOS.Facebook>(id)) db.Update(fb); else db.Insert(fb); Data.POCOS.AppUser au = Data.POCOS.AppUser.FirstOrDefault("Select top 1 * from AppUsers where facebookid=@0", id); if (au == null) { au = new Data.POCOS.AppUser(); au.FirstName = first_name; au.facebookid = id; db.Insert(au); } scope.Complete(); Common.WriteValue(Common.AuthCookie, au.ID.ToString()); Common.WriteValue(Common.InfoCookie, JObject.FromObject(new { email = au.Email, name = string.IsNullOrEmpty(au.FirstName) ? au.Name : au.FirstName, avatar = string.IsNullOrWhiteSpace(au.Avatar) ? null : Common.UploadedImageRelPath + au.Avatar, points = au.Points })); } finally { scope.Dispose(); } } }
private void fbLogin(HttpContext context) { string token = context.Request.Params["token"]; Facebook.FacebookClient client = new Facebook.FacebookClient(token); client.IsSecureConnection = true; var me = client.Get("/me"); Facebook.JsonObject o = (Facebook.JsonObject)me; var db = GetDataContext1; using (var scope = db.GetTransaction()) { try { string first_name = (string)o["first_name"]; string name = (string)o["name"]; decimal id = Convert.ToDecimal(o["id"]); string email = (string)o["email"]; Data.POCOS.Facebook fb = new Data.POCOS.Facebook(); fb.name = name; fb.first_name = first_name; fb.gender = (string)o["gender"]; fb.id = id; fb.last_name = (string)o["last_name"]; fb.link = (string)o["link"]; fb.locale = (string)o["locale"]; fb.email = email; fb.timezone = Convert.ToDouble(o["timezone"]); string updatedtime = (string)o["updated_time"]; DateTime dt; if (DateTime.TryParse(updatedtime, out dt)) fb.updated_time = dt; if (db.Exists<Data.POCOS.Facebook>(id)) db.Update(fb); else db.Insert(fb); Data.POCOS.AppUser au = Data.POCOS.AppUser.FirstOrDefault("Select top 1 * from AppUsers where facebookid=@0", id); if (au == null) { au = new Data.POCOS.AppUser(); au.Email = email; au.FirstName = first_name; au.Create_date = DateTime.Now; string _name = Common.RemoveSpecialCharacters(first_name); var names = from o1 in GetDataContext2.AppUsers select o1.Name; string rs = null; while (names.Any(o1 => o1 == _name)) { if (!string.IsNullOrEmpty(rs)) _name = _name.TrimEnd(rs.ToCharArray()); rs = Common.RandomString(1); _name += rs; } au.Name = _name; au.facebookid = id; try { var query = string.Format(@"SELECT id, width, height, url, is_silhouette, real_width, real_height FROM profile_pic WHERE id={0}", id); dynamic parameters = new ExpandoObject(); parameters.q = query; dynamic obj = client.Get("/fql", parameters); Facebook.JsonObject det = (Facebook.JsonObject)obj; if (det["data"] != null) { Facebook.JsonArray jarray = ((Facebook.JsonArray)det["data"]); Facebook.JsonObject pic = (Facebook.JsonObject)jarray.First(); string url = (string)pic["url"]; WebClient webclient = new WebClient(); byte[] data = webclient.DownloadData(url); Image img = Image.FromStream(new MemoryStream(data)); string fn = Guid.NewGuid().ToString() + ".jpg"; string fp = Common.UploadedImagePath + fn; img.Save(fp, ImageFormat.Jpeg); au.Avatar = fn; } } catch { } db.Insert(au); } scope.Complete(); Common.WriteValue(Common.AuthCookie, au.ID.ToString()); Common.WriteValue(Common.InfoCookie, JObject.FromObject(new { email = au.Email, name = string.IsNullOrEmpty(au.FirstName) ? au.Name : au.FirstName, avatar = string.IsNullOrWhiteSpace(au.Avatar) ? null : Common.UploadedImageRelPath + au.Avatar, points = au.Points })); } finally { scope.Dispose(); } } }