コード例 #1
0
ファイル: AuthController.cs プロジェクト: taoyeh/Online-Judge
        /// <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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
    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() + "&registration_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);
    }