예제 #1
0
        //public ChartViewModel GetChartForUsers (DateTime beg, DateTime end)
        //{
        //    var data = db.Definitions.Where(def => def.Insert_date >= beg && def.Insert_date <= end)
        //        .Select(def => new StatsViewModel(){ User = def.User, Definition = def }).ToList();
        //    var info = db.Users.Select(user => new UserTableViewModel{ FullName = user.First_name + " " + user.Last_name,
        //        Email = user.Email, Count = user.Definitions.Count
        //        //(def=>def.Insert_date>=dates[0]&&def.Insert_date<=dates[1])
        //    })
        //        .OrderByDescending(user=>user.Count).ToList();
        //    return new ChartViewModel(beg, end, data);
        //}

        //public ChartViewModel GetChartForUsers()
        //{
        //    var data = db.Definitions
        //                   .Select(def => new StatsViewModel() { User = def.User, Definition = def }).ToList();
        //    return new ChartViewModel(data);
        //}

        //public object GetUsersStatistics()
        //{
        //    var def = db.Users.Select(user => new { UserID = user.ID,
        //        UserName = user.First_name + " " + user.Last_name, Count = user.Definitions.Count }).ToList();

        //    return def;
        //}

        public async Task <List <UserTableViewModel> > GetUsersStatistics(DateTime beg, DateTime end)
        {
            using (DEDatabaseEntities db = new DEDatabaseEntities())
            {
                //var list = await db.Users.ToArrayAsync();
                //    var info = list.Select(user => new UserTableViewModel
                //    {
                //        FullName = user.First_name + " " + user.Last_name,
                //        Email = user.Email,
                //        Count = user.Definitions.Where(def => def.Insert_date >= beg && def.Insert_date <= end).Count()
                //        //(def=>def.Insert_date>=dates[0]&&def.Insert_date<=dates[1])
                //    })
                //        .Where(usertable => usertable.Count > 0)
                //        .OrderByDescending(user => user.Count).ToList();
                var experiment = (from table in
                                  (from user in db.Users
                                   select new UserTableViewModel
                {
                    FullName = user.First_name + " " + user.Last_name,
                    Email = user.Email,
                    Count = (from def in user.Definitions
                             where def.Insert_date >= beg && def.Insert_date <= end
                             select def).Count()
                })
                                  where table.Count > 0
                                  orderby table.Count descending
                                  select table).ToList();

                return(experiment);
            }
            //var info = db.Definitions.Where(def => def.Insert_date >= beg && def.Insert_date <= end)
            //    .GroupBy(def =>def.User_ID).Select(group=>new UserTableViewModel { FullName = group.Key.})
        }
예제 #2
0
        public ActionResult Login(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                // поиск пользователя в бд
                User user = null;
                using (DEDatabaseEntities db = new DEDatabaseEntities())
                {
                    string passHash = GetHash(model.Password);
                    user = db.Users.FirstOrDefault(u => u.Email == model.Email && u.Password_hash == passHash);
                }
                if (user != null)
                {
                    ViewBag.ShowModal = null;
                    FormsAuthentication.SetAuthCookie(model.Email, true);
                    return(Redirect(Request.UrlReferrer.ToString()));
                    //return RedirectToAction("Index", "Home");
                }
                else
                {
                    ModelState.AddModelError("", "Пользователя с таким логином и паролем нет");
                }
            }

            return(View(model));
        }
예제 #3
0
        //DEDatabaseEntities db = new DEDatabaseEntities();
        public List <Definition> GetDefinitions(DateTime beg, DateTime end, int relID, int relDescID)
        {
            List <Definition> def;

            using (DEDatabaseEntities db = new DEDatabaseEntities())
            {
                def = db.Definitions
                      .Where
                          (definition => definition.Insert_date >= beg &&
                          definition.Insert_date <= end &&
                          (definition.Descriptor.Relations.Where(r => r.Descriptor1.ID == relDescID).Select(r => r.Relation_types).Where(r => r.ID == relID).Count() > 0 ||
                           definition.Descriptor.Relations1.Where(r => r.Descriptor.ID == relDescID).Select(r => r.Relation_types).Where(r => r.ID == relID).Count() > 0)
                          )
                      .ToList();
                return(def);
            }
        }
예제 #4
0
        public ActionResult Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                User user = null;
                using (DEDatabaseEntities db = new DEDatabaseEntities())
                {
                    user = db.Users.FirstOrDefault(u => u.Email == model.Email);
                }
                if (user == null)
                {
                    // создаем нового пользователя
                    using (DEDatabaseEntities db = new DEDatabaseEntities())
                    {
                        db.Users.Add(new User {
                            Email = model.Email, First_name = model.FirstName, Last_name = model.LastName, Password_hash = GetHash(model.Password), registration_date = DateTime.Now
                        });
                        db.SaveChanges();

                        string passHash = GetHash(model.Password);
                        user = db.Users.Where(u => u.Email == model.Email && u.Password_hash == passHash).FirstOrDefault();
                    }
                    // если пользователь удачно добавлен в бд
                    if (user != null)
                    {
                        FormsAuthentication.SetAuthCookie(model.Email, true);
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Пользователь с таким логином уже существует");
                }
            }

            return(View(model));
        }