示例#1
0
        public static IEnumerable <object> ReportBug(string report)
        {
            var bugReport = new BugReport();

            bugReport.Report             = report;
            bugReport.ReporterMisparIshi =
                CurrentMisparIshi.GetCurrentMisparIshi();
            bugReport.TimeReported = DateTime.Now;

            var dataContext = new LogDataContext();

            dataContext.BugReports.InsertOnSubmit(bugReport);
            dataContext.SubmitChanges();

            return(new object[] { new { Success = "Yes" } });

            // TODO(Josh): Figure out why this isn't working and fix it.

            /*try
             * {
             *  Microsoft.Office.Interop.Outlook.Application app =
             *      new Microsoft.Office.Interop.Outlook.Application();
             *  Microsoft.Office.Interop.Outlook.MailItem mailItem =
             *      app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
             *  mailItem.Subject = "מערכת אנשים - Bug report";
             *  mailItem.To = "*****@*****.**";
             *  mailItem.Body = report;
             *  mailItem.Send();
             *  return new object[] { new { Success = "Yes" } };
             * }
             * catch (Exception exception)
             * {
             *  return new object[] { new { exception } };
             * }*/
        }
示例#2
0
        public void Stop()
        {
            stopwatch.Stop();
            queryTime.Elapsed = stopwatch.ElapsedMilliseconds;

            var dataContext = new LogDataContext();

            dataContext.QueryTimes.InsertOnSubmit(queryTime);
            dataContext.SubmitChanges();
        }
示例#3
0
        [ValidateAntiForgeryToken]      //与Html.AntiForgeryToken辅助器方法联合工作,防止Cross-Site-Request Forgery(CSRF,跨网站请求伪造)
        public async Task <ActionResult> Login(LoginModel details, string returnUrl = "/Home/Index")
        {
            //如果验证模型无误
            if (ModelState.IsValid)
            {
                //根据用户名和密码查找用户,返回结果
                AppUser user = await UserManager.FindAsync(details.LoginName, details.LoginPassword);

                //用户不存在,登录失败
                if (user == null)
                {
                    ModelState.AddModelError("LoginPassword", "用户不存在或密码错误");
                }
                //用户存在,登录成功
                else
                {
                    //创建一个标识该用户的ClaimsIdentity对象,由用户管理器(AppUserManager)的CreateIdentityAsync方法创建得到
                    ClaimsIdentity ident = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);

                    //让已认证的Cookie失效
                    AuthManager.SignOut();              //SignOut()签出用户,意味着使标识已认证用户的Cookie失效
                    //创建一个新的Cookie
                    AuthManager.SignIn(new AuthenticationProperties
                    {
                        IsPersistent = false            //该属性设为TRUE表示该认证Cookie在浏览器中是持久化的,表明用户在开始新会话时不必再次验证
                    }, ident);                          //SignIn(options,identity)签入用户,意味着创建用来标识已认证请求的Cookie

                    //如果是管理员
                    if (user.UserName == "XgHao")
                    {
                        return(RedirectToAction("AllTreasure", "Admin"));
                    }

                    //增加登录日志
                    using (var db = new LogDataContext())
                    {
                        db.LogLogin.InsertOnSubmit(new LogLogin
                        {
                            LoginerID = user.Id,
                            LoginIP   = new Identity().GetIPAttribution(HttpContext.Request.UserHostAddress),
                            LoginTime = DateTime.Now,
                            LoginUID  = Guid.NewGuid()
                        });
                        db.SubmitChanges();
                    }

                    //重定向到原来的页面
                    return(Redirect(returnUrl));
                }
            }
            ViewBag.returnUrl = returnUrl;
            return(View(details));
        }
示例#4
0
        public static void Log(LogData logData)
        {
            if (logData.SessionId == null || logData.LogType == null)
            {
                return;
            }

            var dataContext = new LogDataContext();

            if (CurrentMisparIshi.IsSuperAdmin())
            {
                return;
            }

            var log = getLog(dataContext, logData.SessionId, logData.Source);

            switch (logData.LogType.ToLower())
            {
            case "mail":
                log.MailSent++;
                break;

            case "request":
                log.RequestsMade++;
                if (logData.Query != null)
                {
                    var request = new Request();
                    request.ID       = logData.SessionId;
                    request.Request1 = logData.Query;
                    request.Time     = DateTime.Now;
                    dataContext.Requests.InsertOnSubmit(request);
                }
                break;

            case "morepressed":
                log.MorePressed++;
                break;

            case "seeallpressed":
                log.SeeAllPressed++;
                break;

            case "shared":
                log.Shared = true;
                break;
            }
            dataContext.SubmitChanges();
        }
示例#5
0
        public static void WriteAdminChange(string description)
        {
            if (!CurrentMisparIshi.IsAdmin())
            {
                return;
            }
            var message = String.Format(
                "The admin {0} made the following change: {1}.",
                CurrentMisparIshi.GetCurrentMisparIshi(),
                description);
            var newAdminChange = new AdminChange();

            newAdminChange.Description = message;
            newAdminChange.TimeAdded   = DateTime.Now;
            var dataContext = new LogDataContext();

            dataContext.AdminChanges.InsertOnSubmit(newAdminChange);
            dataContext.SubmitChanges();
        }
示例#6
0
        public ActionResult TreasureInfo(string TreasureUID = "")
        {
            //获取当前用户id
            string id = CurrentUser.Id;

            if (!string.IsNullOrEmpty(TreasureUID))
            {
                Guid Treasureguid = Guid.Parse(TreasureUID);

                #region 增加一次浏览量
                //判断当前用户,当前物品的浏览记录是否已经存在
                using (var db = new LogDataContext())
                {
                    var logbrowse = db.LogBrowse.Where(b => (b.TreasureID == TreasureUID && b.BrowserID == id)).FirstOrDefault();

                    //不存在记录,则增加一条
                    if (logbrowse == null)
                    {
                        db.LogBrowse.InsertOnSubmit(new LogBrowse
                        {
                            BLogUID     = Guid.NewGuid(),
                            BrowserID   = id,
                            TreasureID  = TreasureUID,
                            BrowserTime = DateTime.Now
                        });
                        //物品浏览量加一
                        var trea = repository.Treasures.Where(t => t.TreasureUID == Treasureguid).FirstOrDefault();
                        trea.BrowseNum++;
                        repository.SaveTreasure(trea);
                    }
                    //若存在则修改访问时间
                    else
                    {
                        logbrowse.BrowserTime = DateTime.Now;
                    }
                    db.SubmitChanges();
                }
                #endregion

                Treasure treasure = repository.Treasures.Where(t => t.TreasureUID == Treasureguid).FirstOrDefault();
                var      imgs     = treasure.DetailPic.Split('|');
                if (treasure != null)
                {
                    //判断是否已经收藏
                    bool isFavarite = false;
                    using (var db = new FavoriteDataContext())
                    {
                        var fav = db.Favorite.Where(f => (f.UserID == id && f.TreasureID == TreasureUID)).FirstOrDefault();
                        //若不为空,即存在记录,则说明已经收藏
                        if (fav != null)
                        {
                            isFavarite = true;
                        }
                    }

                    //获取浏览记录
                    List <BrowseLog> browses = new List <BrowseLog>();
                    using (var db = new LogDataContext())
                    {
                        var logBrowses = db.LogBrowse.Where(b => b.TreasureID == TreasureUID).OrderByDescending(b => b.BrowserTime).Take(6);
                        foreach (var log in logBrowses)
                        {
                            var user = UserManager.FindById(log.BrowserID);
                            if (user != null)
                            {
                                browses.Add(new BrowseLog
                                {
                                    Browser = new BasicUserInfo
                                    {
                                        HeadImg  = user.HeadPortrait,
                                        UserID   = user.Id,
                                        Gender   = user.Gender,
                                        UserName = user.UserName
                                    },
                                    BrowserTime = log.BrowserTime
                                });
                            }
                        }
                    }


                    //生成推荐信息
                    int DisRecommend = 0;
                    int Recommend    = 0;
                    // 1.首先找出当前用户完成的订单
                    using (var db = new LogDealDataContext())
                    {
                        var logs = db.LogDeal.Where(l => ((l.TraderRecipientID == id || l.TraderSponsorID == id) && (l.DealStatus == "交易成功")));
                        using (var db2 = new EvaluationDataContext())
                        {
                            //遍历所有完成的订单
                            foreach (var log in logs)
                            {
                                var eva = db2.Evaluation.Where(e => e.DLogUID == log.DLogUID.ToString()).FirstOrDefault();
                                //本次交易用户是接收人,则需要发起人的评价
                                if (log.TraderRecipientID == id)
                                {
                                    //推荐
                                    if (eva.IsRecommendSToR == true)
                                    {
                                        Recommend++;
                                    }
                                    else if (eva.IsRecommendSToR == false)
                                    {
                                        DisRecommend++;
                                    }
                                }
                                else
                                {
                                    if (eva.IsRecommendRToS == true)
                                    {
                                        Recommend++;
                                    }
                                    else if (eva.IsRecommendRToS == false)
                                    {
                                        DisRecommend++;
                                    }
                                }
                            }
                        }
                    }


                    //定义一个视图模型
                    TreaInfo treaInfo = new TreaInfo
                    {
                        HolderInfo    = GetLoginUserInfo(treasure.HolderID),
                        LoginUserInfo = CurrentUser,
                        treasureInfo  = treasure,
                        //108是生成图片路径的固定的长度
                        DetailImgs = imgs.Where(t => t.Length == 108),
                        IsFavorite = isFavarite,
                        CurrenUser = new BasicUserInfo
                        {
                            HeadImg = CurrentUser.HeadPortrait
                        },
                        browseLogs   = browses.AsEnumerable(),
                        DisRecommend = DisRecommend,
                        Recommend    = Recommend
                    };
                    return(View(treaInfo));
                }
            }
            return(View("List"));
        }