Пример #1
0
        public UserCourse CreateCourse(int userId, int topicId, int nTasks, int durationDays)
        {
            if (database.UserCourses.Find(c => c.UserId == userId && c.EndDate > DateTime.Now).Count() > 0)
            {
                throw new Exception("User has unfinished course.");
            }

            var newUserCourse = new UserCourse
            {
                UserId  = userId,
                EndDate = DateTime.Now.AddDays(durationDays)
            };

            var tasksForTopic = database.Tasks.Find(t => t.TopicId == topicId).ToList();
            var rand          = new Random();

            for (int i = 0; i < nTasks; ++i)
            {
                var randomTask = tasksForTopic[rand.Next(0, tasksForTopic.Count)];
                tasksForTopic.Remove(randomTask);

                var newCourseTask = new CourseTask
                {
                    TaskId  = randomTask.Id,
                    CompPer = 0
                };
                newUserCourse.CourseTasks.Add(newCourseTask);
            }

            database.UserCourses.Create(newUserCourse);
            database.Save();

            return(newUserCourse);
        }
Пример #2
0
        public void Create(string email, string password)
        {
            ValidateEmail(email);
            ValidatePassword(password);

            var user = new User {
                Name = email
            };

            user.Hash = HashConverter.ToString(CreateHash(password));

            database.Users.Create(user);
            database.Save();
        }