/// <summary> /// 个人信息界面 /// </summary> /// <returns></returns> public IActionResult My() { var user = HttpContext.Session.Get <UserProfileModel>("CurrentUser"); if (user == null) { TempData["Message"] = "请先登录"; return(RedirectToAction("Login", "Auth")); } // 已经解决的题目 List <string> havesoledproblem = new List <string>(); foreach (var item in _context.Tracks.Where(x => x.SubmitterId == user.Id.ToString() && x.Status == Models.Judge.JudgeStatus.Accept).ToList()) { var problemnumber = _context.Problems.FirstOrDefault(x => x.Id == item.ProblemId).OrderNumber; if (havesoledproblem.Find(x => x.Contains(problemnumber)) == null) { havesoledproblem.Add(problemnumber); } else { continue; } } // 用户拥有的标签和未拥有的标签 List <LabelProfile> havelabel = new List <LabelProfile>(); foreach (var item in _context.UserLabels.Where(x => x.UserId == user.Id.ToString() && x.Weight != 0).ToList()) { var userlabel = _context.LabelProfiles.FirstOrDefault(x => x.Id == long.Parse(item.LabelId)); havelabel.Add(userlabel); } List <LabelProfile> nothavelabel = new List <LabelProfile>(); foreach (var item in _context.LabelProfiles.ToList()) { if (havelabel.Find(x => x == item) == null) { nothavelabel.Add(item); } else { continue; } } var model = new MyIndexModel { User = user, HaveSolvedProblem = havesoledproblem, HaveLabel = havelabel, NotHaveLabel = nothavelabel }; return(View(model)); }
public ActionResult Index(MyIndexModel model) { AndroidGCMPushNotification apnGCM = new AndroidGCMPushNotification(); foreach (var zaDevice in MvcApplication.zaDevices) { string strResponse = apnGCM.SendNotification(zaDevice, model); } ViewBag.success = true; return(View(model)); }
public string SendNotification(string deviceId, MyIndexModel model) { string GoogleAppID = "Api_Key"; var request = WebRequest.Create("https://android.googleapis.com/gcm/send"); request.Method = "post"; request.ContentType = "application/json"; request.Headers.Add(string.Format("Authorization: key={0}", GoogleAppID)); string postData = "{\"collapse_key\": \"score_update\"," + "\"to\" : \"" + deviceId + "\"," + "\"data\": {\"message\":\"" + model.Message + "\" ,\"title\":\"" + model.Title + "\",\"person\":" + model.Person + "}}"; // "collapse_key=score_update&time_to_live=108&delay_while_idle = 1&data.message = " // + value + " &data.time = " + System.DateTime.Now.ToString() + "®istration_id=" + deviceId + ""; Console.WriteLine(postData); Byte[] byteArray = Encoding.UTF8.GetBytes(postData); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse tResponse = request.GetResponse(); dataStream = tResponse.GetResponseStream(); StreamReader tReader = new StreamReader(dataStream); String sResponseFromServer = tReader.ReadToEnd(); tReader.Close(); dataStream.Close(); tResponse.Close(); return(sResponseFromServer); }