Esempio n. 1
0
        public ChatViewModel(ExamDbContext db, User CurrentUser, User Companion, Action TeacherShowStudents)
        {
            this.db = db;

            this.CurrentUser = CurrentUser;
            this.Companion   = Companion;

            Messages = new List <MessageModel>();
            List <Message> newmessages;

            if (CurrentUser.UserType.Type == "Student")
            {
                newmessages = db.Message.Where(m => m.StudentId == this.CurrentUser.Student.StudentId && m.TeacherId == this.Companion.Teacher.TeacherId).ToList();
            }
            else
            {
                newmessages = db.Message.Where(m => m.TeacherId == this.CurrentUser.Teacher.TeacherId && m.StudentId == this.Companion.Student.StudentId).ToList();
            }

            if (newmessages != null)
            {
                foreach (Message m in newmessages)
                {
                    Messages.Add(new MessageModel(m, this.CurrentUser.UserTypeId));
                }
            }

            teacherShowStudents = TeacherShowStudents;

            lastCheck                  = DateTime.Now;
            checkChangesTimer          = new Timer(1000);
            checkChangesTimer.Elapsed += CheckChangesTimer_Elapsed;
            checkChangesTimer.Start();
        }
Esempio n. 2
0
        public void InvalidRegisterShouldReturnErrorsCollection()
        {
            var options = new DbContextOptionsBuilder <ExamDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(InvalidRegisterShouldReturnErrorsCollection))
                          .Options;

            using (var context = new ExamDbContext(options))
            {
                var validator    = new RegisterValidator();
                var usersService = new UsersService(context, validator, config);
                var added        = new ExamenNet.ViewModels.RegisterPostModel
                {
                    FirstName = "firstName1",
                    LastName  = "lastName1",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    Password  = "******"   //invalid password should invalidate register
                };

                var result = usersService.Register(added);

                Assert.IsNotNull(result);
                Assert.AreEqual(1, result.ErrorMessages.Count());
            }
        }
        public void SetUp()
        {
            _studentsdata = new List <Student>
            {
                new Student {
                    Id = 1, FirstName = "sergey", Name = "pupinin"
                },
                new Student {
                    Id = 2, FirstName = "Ahmet", Name = "Kocyigit"
                },
                new Student {
                    Id = 666, FirstName = "Lion", Name = "gelders"
                },
            }.AsQueryable();

            _mockSet = new Mock <DbSet <Student> >();
            _mockSet.As <IQueryable <Student> >().Setup(m => m.Provider).Returns(_studentsdata.Provider);
            _mockSet.As <IQueryable <Student> >().Setup(m => m.Expression).Returns(_studentsdata.Expression);
            _mockSet.As <IQueryable <Student> >().Setup(m => m.ElementType).Returns(_studentsdata.ElementType);
            _mockSet.As <IQueryable <Student> >().Setup(m => m.GetEnumerator()).Returns(() => _studentsdata.GetEnumerator());
            _mockContext = new Mock <ExamDbContext>();
            _mockContext.Setup(c => c.Students).Returns(_mockSet.Object);
            _studentDbRepository = new StudentDbRepository(_mockContext.Object);

            _context = new ExamDbContext();
        }
        public TheoryViewModel(ExamDbContext db, int TopicId, Action showTopics, Action <object> showTasks) : base()
        {
            this.db = db;

            Topic topic = this.db.Topic.Find(TopicId);

            this.TopicId = TopicId;
            Title        = topic.Title;

            try
            {
                theoryFilePath = Path.GetTempPath() + "tempFile.xps";
                File.WriteAllBytes(theoryFilePath, topic.Theory);
                TheoryFile = new XpsDocument(theoryFilePath, FileAccess.Read);
                Theory     = TheoryFile.GetFixedDocumentSequence();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Не удалосб загрузить файл с теорией. " + ex.Message);
            }


            this.showTopics = showTopics;
            this.showTasks  = showTasks;
        }
Esempio n. 5
0
        public void GetAllShouldReturnAllRegisteredUsers()
        {
            var options = new DbContextOptionsBuilder <ExamDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(GetAllShouldReturnAllRegisteredUsers))
                          .Options;

            using (var context = new ExamDbContext(options))
            {
                var validator    = new RegisterValidator();
                var usersService = new UsersService(context, validator, config);
                var added1       = new ExamenNet.ViewModels.RegisterPostModel
                {
                    FirstName = "firstName1",
                    LastName  = "firstName1",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    Password  = "******"
                };
                var added2 = new ExamenNet.ViewModels.RegisterPostModel
                {
                    FirstName = "secondName2",
                    LastName  = "secondName2",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    Password  = "******"
                };
                usersService.Register(added1);
                usersService.Register(added2);

                int numberOfElements = usersService.GetAll().Count();

                Assert.NotZero(numberOfElements);
                Assert.AreEqual(2, numberOfElements);
            }
        }
        public void SetUp()
        {
            _dataBytes  = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 };
            _dataBytes1 = new byte[] { 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10 };
            _dataBytes2 = new byte[] { 0x20, 0x10, 0x20, 0x10, 0x10, 0x20, 0x20 };

            _data = new List <Exam>
            {
                new Exam {
                    Id = 666, Bytes = _dataBytes, Md5 = "grst"
                },
                new Exam {
                    Bytes = _dataBytes1, Md5 = "pqr"
                },
                new Exam {
                    Bytes = _dataBytes2, Md5 = "tvt"
                },
            }.AsQueryable();
            _mockSet = new Mock <DbSet <Exam> >();
            _mockSet.As <IQueryable <Exam> >().Setup(m => m.Provider).Returns(_data.Provider);
            _mockSet.As <IQueryable <Exam> >().Setup(m => m.Expression).Returns(_data.Expression);
            _mockSet.As <IQueryable <Exam> >().Setup(m => m.ElementType).Returns(_data.ElementType);
            _mockSet.As <IQueryable <Exam> >().Setup(m => m.GetEnumerator()).Returns(() => _data.GetEnumerator());
            _mockContext = new Mock <ExamDbContext>();
            _mockContext.Setup(c => c.Exams).Returns(_mockSet.Object);
            _examDbRepository = new ExamDbRepository(_mockContext.Object);

            _context = new ExamDbContext();
        }
        public ShowStudentsViewModel(Teacher teacher, ExamDbContext db, Action <object> CurrentAction, string CurrentActionTitle)
        {
            this.db                 = db;
            CurrentTeacher          = teacher;
            currentAction           = CurrentAction;
            this.CurrentActionTitle = CurrentActionTitle;

            searchString = "";

            Students    = new List <StudentModel>();
            allStudents = new List <StudentModel>();

            try
            {
                var students = teacher.Student.ToList();

                if (students.Count > 0)
                {
                    foreach (Student s in students)
                    {
                        allStudents.Add(new StudentModel(s));
                    }
                }

                Students = allStudents;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка. " + ex.Message);
            }
        }
Esempio n. 8
0
        public void ValidRegisterShouldCreateNewUser()
        {
            var options = new DbContextOptionsBuilder <ExamDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(ValidRegisterShouldCreateNewUser))// "ValidRegisterShouldCreateANewUser")
                          .Options;

            using (var context = new ExamDbContext(options))
            {
                var validator    = new RegisterValidator();
                var usersService = new UsersService(context, validator, config);
                var added        = new ExamenNet.ViewModels.RegisterPostModel
                {
                    FirstName = "firstName1",
                    LastName  = "lastName1",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    Password  = "******"
                };

                var result = usersService.Register(added);

                Assert.IsNull(result);
                Assert.AreEqual(added.Username, context.Users.FirstOrDefault(u => u.Id == 1).Username);
                // Assert.AreEqual(1, context.Users.UserRole.FirstOrDefault(uur => uur.Id == 1).UserId);
            }
        }
Esempio n. 9
0
        public void GetByIdShouldReturnAnValidUser()
        {
            var options = new DbContextOptionsBuilder <ExamDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(GetByIdShouldReturnAnValidUser))
                          .Options;

            using (var context = new ExamDbContext(options))
            {
                var validator    = new RegisterValidator();
                var usersService = new UsersService(context, validator, config);
                var added1       = new ExamenNet.ViewModels.RegisterPostModel
                {
                    FirstName = "firstName1",
                    LastName  = "firstName1",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    Password  = "******"
                };

                usersService.Register(added1);
                var userById = usersService.GetById(1);

                Assert.NotNull(userById);
                Assert.AreEqual("firstName1", userById.FirstName);
            }
        }
Esempio n. 10
0
        public ErrorsCollection Validate(RegisterPostModel registerPostModel, ExamDbContext context)
        {
            ErrorsCollection errorCollection = new ErrorsCollection {
                Entity = nameof(RegisterPostModel)
            };
            User existing = context.Users.FirstOrDefault(u => u.Username == registerPostModel.Username);

            if (existing != null)
            {
                errorCollection.ErrorMessages.Add($"The username {registerPostModel.Username} is already taken!");
            }
            if (registerPostModel.Password.Length < 6)
            {
                errorCollection.ErrorMessages.Add("The password has to be longer than 6 characters");
            }
            //parola sa contina 2 cifre
            int numberOfDigits = 0;

            foreach (char c in registerPostModel.Password)
            {
                if (c >= '0' && c <= '9')
                {
                    numberOfDigits++;
                }
            }
            if (numberOfDigits < 2)
            {
                errorCollection.ErrorMessages.Add("The password must contains at least 2 digits");
            }
            if (errorCollection.ErrorMessages.Count > 0)
            {
                return(errorCollection);
            }
            return(null);
        }
Esempio n. 11
0
        public static void ZipExams(IEnumerable <Student> students)
        {
            var basePath = @"D:\school\PXL\2de jaar\Research project\2018_AON18\Aon18.api\Aon18.api\";

            System.IO.DirectoryInfo di = new DirectoryInfo(basePath + @"Export\");

            foreach (FileInfo file in di.GetFiles())
            {
                file.Delete();
            }

            //save exams
            var context    = new ExamDbContext();
            var repositiry = new ExamDbRepository(context);
            int index      = 0;

            //File file = new File();
            foreach (var student in students)
            {
                //get exam for student
                Exam   exam     = student.Examen;
                string fileName = student.FirstName + "_" + student.Name + "_" + student.StudentNumber + "_" + index.ToString() + ".zip";
                byte[] data     = exam.Bytes;
                var    filePath = basePath + @"Export\" + fileName;
                File.WriteAllBytes(filePath, data);

                index++;
            }

            //zip file export
            //ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);
        }
Esempio n. 12
0
        public void SetUp()
        {
            _data = new List <Skelet>
            {
                new Skelet {
                    Id = 666, FileName = "demo1"
                },
                new Skelet {
                    Id = 1, FileName = "demo2"
                },
                new Skelet {
                    Id = 2, FileName = "demo3"
                },
            }.AsQueryable();
            _mockSet = new Mock <DbSet <Skelet> >();
            _mockSet.As <IQueryable <Skelet> >().Setup(m => m.Provider).Returns(_data.Provider);
            _mockSet.As <IQueryable <Skelet> >().Setup(m => m.Expression).Returns(_data.Expression);
            _mockSet.As <IQueryable <Skelet> >().Setup(m => m.ElementType).Returns(_data.ElementType);
            _mockSet.As <IQueryable <Skelet> >().Setup(m => m.GetEnumerator()).Returns(() => _data.GetEnumerator());
            _mockContext = new Mock <ExamDbContext>();
            _mockContext.Setup(c => c.Skelets).Returns(_mockSet.Object);
            _skeletDbRepository = new SkeletDbRepository(_mockContext.Object);

            _context = new ExamDbContext();
        }
Esempio n. 13
0
 public void Configure(IServerRoutingTable serverRoutingTable)
 {
     using (var context = new ExamDbContext())
     {
         //context.Database.EnsureDeleted();
         context.Database.EnsureCreated();
     }
 }
        public TeacherViewModel(Teacher teacher, ExamDbContext db)
        {
            this.db        = db;
            CurrentTeacher = teacher;

            CurrentChatVM       = new ShowStudentsViewModel(CurrentTeacher, db, ShowChat, "Открыть чат");
            CurrentStatisticsVM = new ShowStudentsViewModel(CurrentTeacher, db, ShowStatistics, "Статистика");
        }
Esempio n. 15
0
 public void Configure(IServerRoutingTable serverRoutingTable)
 {
     // Once on start
     using (var db = new ExamDbContext())
     {
         db.Database.EnsureCreated();
     }
 }
 public StudentViewModel(Student student, ExamDbContext db)
 {
     this.db              = db;
     CurrentStudent       = student;
     CurrentStudyingVM    = new TopicsViewModel(db, ShowTheory, ShowTasks);
     CurrentChatViewModel = new ChatViewModel(db, CurrentStudent.User, CurrentStudent.Teacher.User);
     CurrentStatisticsVM  = new StatisticsViewModel(CurrentStudent, db);
     CurrentPlanViewModel = new PlanViewModel(CurrentStudent, db);
 }
 public AccauntController(ExamDbContext examdb, UserManager <Worker> user, RoleManager <IdentityRole> roleManager,
                          SignInManager <Worker> signInManager, ILogger <AccauntController> logger, IConfiguration cofiguration)
 {
     _db            = examdb;
     _userManager   = user;
     _signManager   = signInManager;
     _roleManager   = roleManager;
     _logger        = logger;
     _configuration = cofiguration;
 }
 public List <TimeLogType> GetAll()
 {
     using (var connection = new SQLiteConnection(ConnectionString))
     {
         connection.Open();
         using (var context = new ExamDbContext(connection, false))
         {
             return(context.Set <TimeLogType>().ToList());
         }
     }
 }
 public TimeLogType GetById(int id)
 {
     using (var connection = new SQLiteConnection(ConnectionString))
     {
         connection.Open();
         using (var context = new ExamDbContext(connection, false))
         {
             return(context.Set <TimeLogType>().ToList().FirstOrDefault(x => x.Id == id));
         }
     }
 }
Esempio n. 20
0
        public StatisticsViewModel(Student student, ExamDbContext db)
        {
            startDate     = DateTime.Today;
            endDate       = DateTime.Today;
            HasStartDate  = true;
            HasEndDate    = true;
            AreDatesValid = true;

            this.db        = db;
            CurrentStudent = student;
        }
 public void Create(TimeLogType timeLogType)
 {
     using (var connection = new SQLiteConnection(ConnectionString))
     {
         connection.Open();
         using (var context = new ExamDbContext(connection, false))
         {
             context.Set <TimeLogType>().Add(timeLogType);
             context.SaveChanges();
         }
     }
 }
Esempio n. 22
0
        public StatisticsViewModel(Student student, ExamDbContext db, bool IsTeacherCurrent, Action ShowStudents)
        {
            StartDate     = DateTime.Today;
            EndDate       = DateTime.Today;
            HasStartDate  = true;
            HasEndDate    = true;
            AreDatesValid = true;

            this.db               = db;
            CurrentStudent        = student;
            this.IsTeacherCurrent = IsTeacherCurrent;
            showStudents          = ShowStudents;
        }
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var context = new ExamDbContext(
                       serviceProvider.GetRequiredService <DbContextOptions <ExamDbContext> >()))
            {
                if (context.Courses.Any())
                {
                    return;
                }
                context.Courses.AddRange(
                    new Course
                {
                    Id      = 1,
                    Title   = "x Course",
                    AddedAt = DateTime.Now
                },
                    new Course
                {
                    Id      = 2,
                    Title   = "x Course",
                    AddedAt = DateTime.Now
                }
                    );
                context.Exams.AddRange(
                    new Exam
                {
                    Id                = 1,
                    Title             = "X Exam",
                    Information       = "Midterm Exam",
                    NumberOfQuestions = 5,
                    AddedAt           = DateTime.Now,
                    StartTime         = DateTime.Now,
                    EndTime           = DateTime.Now
                },

                    new Exam
                {
                    Id                = 2,
                    Title             = "y Exam",
                    Information       = "Final Exam",
                    NumberOfQuestions = 5,
                    AddedAt           = DateTime.Now,
                    StartTime         = DateTime.Now,
                    EndTime           = DateTime.Now
                }
                    );

                context.SaveChanges();
            }
        }
Esempio n. 24
0
        public TopicsViewModel(ExamDbContext db, Action <object> showTheory, Action <object> showTasks) : base()
        {
            this.db         = db;
            this.showTheory = showTheory;
            this.showTasks  = showTasks;

            try
            {
                Topics = db.Topic.ToList();
            }
            catch (Exception ex)
            {
                MessageBox.Show("При загрузке данных проихошла ошибка. " + ex.Message);
            }
        }
        public void GetByIdTest()
        {
            // Arrange
            int           id             = 666;
            Exam          expectedEntity = _data.ElementAt(0);
            DbSet <Exam>  dbSet          = Mock.Of <DbSet <Exam> >(set => set.Find((id)) == expectedEntity);
            ExamDbContext context        = new ExamDbContext();

            context.Exams = dbSet;
            IExamDbRepository repository = new ExamDbRepository(context);

            // Act
            var result = repository.GetById(id);

            // Assert
            Assert.AreSame(expectedEntity, result);
        }
Esempio n. 26
0
        public ChatViewModel(ExamDbContext db, User CurrentUser, User Companion)
        {
            this.db = db;

            this.CurrentUser = CurrentUser;
            this.Companion   = Companion;

            Messages = new List <MessageModel>();
            List <Message> newmessages;

            try
            {
                if (CurrentUser.UserType.Type == "Student")
                {
                    newmessages = db.Message.Where(m => m.StudentId == this.CurrentUser.Student.StudentId && m.TeacherId == this.Companion.Teacher.TeacherId).ToList();
                }
                else
                {
                    newmessages = db.Message.Where(m => m.TeacherId == this.CurrentUser.Teacher.TeacherId && m.StudentId == this.Companion.Student.StudentId).ToList();
                }

                if (newmessages != null)
                {
                    foreach (Message m in newmessages)
                    {
                        Messages.Add(new MessageModel(m, this.CurrentUser.UserTypeId));
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("При загрезке сообщений произошла ошибка! " + ex.Message);
            }


            teacherShowStudents = null;

            lastCheck                  = DateTime.Now;
            checkChangesTimer          = new Timer(1000);
            checkChangesTimer.Elapsed += CheckChangesTimer_Elapsed;
            checkChangesTimer.Start();
        }
Esempio n. 27
0
        public void AuthenticateShouldLogTheRegisteredUser()
        {
            var options = new DbContextOptionsBuilder <ExamDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(AuthenticateShouldLogTheRegisteredUser))
                          .Options;

            using (var context = new ExamDbContext(options))
            {
                var validator = new RegisterValidator();
                // var validatorUser = new UserRoleValidator();
                //var userUserRoleService = new UserUserRolesService(validatorUser, context);
                var usersService = new UsersService(context, validator, config);


                var added = new ExamenNet.ViewModels.RegisterPostModel
                {
                    FirstName = "firstName1",
                    LastName  = "lastName1",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    Password  = "******"
                };
                var result = usersService.Register(added);

                var authenticated = new ExamenNet.ViewModels.LoginPostModel
                {
                    Username = "******",
                    Password = "******"
                };
                //valid authentification
                var authresult = usersService.Authenticate(added.Username, added.Password);

                Assert.IsNotNull(authresult);
                Assert.AreEqual(1, authresult.Id);
                Assert.AreEqual(authenticated.Username, authresult.Username);

                //invalid user authentification
                var authresult1 = usersService.Authenticate("unknown", "abcdefg");
                Assert.IsNull(authresult1);
            }
        }
Esempio n. 28
0
        public TasksViewModel(ExamDbContext db, int TopicId, int StudentId, Action showThemes, Action <object> showTheory)
        {
            this.db = db;

            this.TopicId = TopicId;

            this.StudentId = StudentId;

            try
            {
                var tasks = db.Task.ToList().Where(t => t.TopicId == TopicId);
                Tasks = new List <TaskModel>();
                if (tasks != null)
                {
                    foreach (Task t in tasks)
                    {
                        if (t.TaskResult.Count > 0)
                        {
                            if (t.TaskResult.Last().IsSolved)
                            {
                                Tasks.Add(new TaskModel(t));
                            }
                        }
                        else
                        {
                            Tasks.Add(new TaskModel(t));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Не удалось загрузить задания. " + ex.Message);
            }

            this.showTopics = showThemes;
            this.showTheory = showTheory;
        }
Esempio n. 29
0
 public static void InitializeDbForTests(ExamDbContext db)
 {
     db.Projects.AddRange(GetSeedingProjects());
     db.Contacts.AddRange(GetSeedingContacts());
     db.SaveChanges();
 }
Esempio n. 30
0
 public LoginViewModel(ExamDbContext db)
 {
     this.db     = db;
     Success     = false;
     CurrentUser = null;
 }