コード例 #1
0
        public IEnumerable <DalUser> GetCoauthors(DalTest test)
        {
            if (context.Database.Connection.State != ConnectionState.Open)
            {
                context.Database.Connection.Open();
            }
            Tests ormtest              = context.Set <Tests>().FirstOrDefault(tests => tests.id == test.Id);
            IEnumerable <Users> users  = ormtest.CoAuthors.AsEnumerable();
            List <DalUser>      result = new List <DalUser>();

            foreach (Users u in users)
            {
                result.Add(new DalUser()
                {
                    Id           = u.id,
                    Login        = u.Login,
                    Email        = u.Email,
                    FirstName    = u.FirstName,
                    SecondName   = u.SecondName,
                    ThirdName    = u.ThirdName,
                    PasswordHash = u.PasswordHash
                });
            }
            return(result);
        }
コード例 #2
0
        public void Delete(DalTest e)
        {
            context.Database.Connection.Open();
            Tests test = context.Set <Tests>().FirstOrDefault(tests => tests.id == e.Id);

            context.Set <Tests>().Remove(test);
        }
コード例 #3
0
        /// <summary>
        /// Updates test in data storage.
        /// </summary>
        /// <param name="test"> Test to update.</param>
        /// <exception> System.ArgumentNullException if test is null.</exception>
        public void Update(DalTest test)
        {
            if (test == null)
            {
                throw new ArgumentNullException(nameof(test));
            }

            var dbTest        = context.Set <Test>().Find(test.Id);
            var testQuestions = dbTest.Questions.ToList();

            context.Entry(dbTest).CurrentValues.SetValues(test);

            foreach (var testQuestion in testQuestions)
            {
                var question = test.Questions?.SingleOrDefault(q => q.Id == testQuestion.Id);
                if (question != null)
                {
                    context.Entry(testQuestion).CurrentValues.SetValues(question);
                }
                else
                {
                    context.Set <Question>().Remove(testQuestion);
                }

                var dbQuestion      = context.Set <Question>().Find(testQuestion.Id);
                var questionAnswers = dbQuestion?.Answers.ToList();

                foreach (var questionAnswer in questionAnswers)
                {
                    var answer = question.Answers?.SingleOrDefault(a => a.Id == questionAnswer.Id);
                    if (answer != null)
                    {
                        context.Entry(questionAnswer).CurrentValues.SetValues(answer);
                    }
                    else
                    {
                        context.Set <Answer>().Remove(questionAnswer);
                    }
                }
            }

            foreach (var question in test.Questions)
            {
                if (!testQuestions.Any(q => q.Id == question.Id))
                {
                    dbTest.Questions.Add(question.ToQuestion());
                }
                else
                {
                    foreach (var answer in question.Answers)
                    {
                        if (!testQuestions.SingleOrDefault(q => q.Id == question.Id).Answers.Any(a => a.Id == answer.Id))
                        {
                            dbTest.Questions.SingleOrDefault(q => q.Id == question.Id).Answers.Add(answer.ToAnswer());
                        }
                    }
                }
            }
        }
コード例 #4
0
        public void SetCoauthor(DalUser user, DalTest test)
        {
            context.Database.Connection.Open();
            Users ormuser = context.Set <Users>().FirstOrDefault(users => users.id == user.Id);
            Tests ormtest = context.Set <Tests>().FirstOrDefault(tests => tests.id == test.Id);

            ormtest.CoAuthors.Add(ormuser);
        }
コード例 #5
0
ファイル: TestRepository.cs プロジェクト: s4egol/Epam-Project
        public void Delete(DalTest entity)
        {
            var test = context.Tests.FirstOrDefault(x => x.Id == entity.Id);

            if (test != null)
            {
                context.Tests.Remove(test);
            }
        }
コード例 #6
0
 public static Test ToOrmTest(this DalTest test)
 {
     return(new Test()
     {
         Id = test.Id,
         Name = test.Name,
         TestTypeId = test.TestTypeId
     });
 }
コード例 #7
0
ファイル: TestRepository.cs プロジェクト: s4egol/Epam-Project
        public void PublichingTest(DalTest test)
        {
            var searchTest = context.Tests.FirstOrDefault(x => x.Id == test.Id);

            if (searchTest != null)
            {
                searchTest.Published = !searchTest.Published;
            }
        }
コード例 #8
0
        public void Delete(DalTest entity)
        {
            var ormTest = entity.ToOrmTest();
            var test    = context.Set <Test>().FirstOrDefault(u => u.Id == ormTest.Id);

            context.Set <Test>().Attach(test);
            context.Set <Test>().Remove(test);
            context.Entry(test).State = System.Data.Entity.EntityState.Deleted;
        }
コード例 #9
0
        public void Create(DalTest entity)
        {
            var test       = entity.ToOrmTest();
            var ormProfile = context.Set <Profile>().FirstOrDefault(u => u.UserId == test.UserId);

            ormProfile.CreatedTests.Add(test);

            context.Set <Test>().Add(test);
        }
コード例 #10
0
ファイル: TestRepository.cs プロジェクト: s4egol/Epam-Project
        public void Update(DalTest entity)
        {
            var test = context.Tests.FirstOrDefault(x => x.Name == entity.NameTest);

            if (test != null)
            {
                test.Description = entity.Description;
                test.Time        = entity.TimeSec;
            }
        }
コード例 #11
0
        public void Create(DalTest e)
        {
            if (e == null)
            {
                return;
            }
            var test = e.ToTest();

            context.Set <Test>().Add(test);
        }
コード例 #12
0
 public static Test ToOrmTest(this DalTest test)
 {
     return(new Test
     {
         Id = test.Id,
         Name = test.NameTest,
         Description = test.Description,
         Published = test.Published,
         UserId = test.UserId
     });
 }
コード例 #13
0
        public bool AllowedUser(DalTest test, DalUser user)
        {
            if (context.Database.Connection.State != ConnectionState.Open)
            {
                context.Database.Connection.Open();
            }
            Users ormuser = context.Set <Users>().FirstOrDefault(users => users.id == user.Id);
            Tests ormtest = context.Set <Tests>().FirstOrDefault(tests => tests.id == test.Id);

            return(ormtest.AllowedUsers.Contains(ormuser));
            //    return context.Set<Tests>().Any(t => t.AllowedUsers.Contains(ormuser)) && t.id == test.Id);
        }
コード例 #14
0
 public static TestEntity ToBllTest(this DalTest dalTest)
 {
     return(new TestEntity
     {
         Id = dalTest.Id,
         TestName = dalTest.NameTest,
         Description = dalTest.Description,
         TimeSec = dalTest.TimeSec,
         Published = dalTest.Published,
         UserId = dalTest.UserId
     });
 }
コード例 #15
0
 public static TestEntity ToBllTest(this DalTest test)
 {
     if (test != null)
     {
         return(new TestEntity()
         {
             Id = test.Id,
             Name = test.Name,
             TestTypeId = test.TestTypeId
         });
     }
     return(null);
 }
コード例 #16
0
 public static Test ToTestWithId(this DalTest test)
 {
     if (test == null)
     {
         return(null);
     }
     return(new Test()
     {
         Id = test.Id,
         Name = test.Name,
         Number = test.Number,
         TimeToDo = test.TimeToDo
     });
 }
コード例 #17
0
 /// <summary>
 /// Maps DalTest entity to  BllTest entity.
 /// </summary>
 /// <param name="test"> DalTest instance.</param>
 /// <returns> BllTest instance.</returns>
 public static BllTest ToBllTest(this DalTest test)
 {
     return(new BllTest()
     {
         Id = test.Id,
         Name = test.Name,
         Created = test.Created,
         IsTimed = test.IsTimed,
         TimeToComplete = test.TimeToComplete,
         Subject = test.Subject?.ToBllSubject(),
         UserId = test.User?.Id,
         Questions = test.Questions.Select(q => q.ToBllQuestion()).ToList()
     });
 }
コード例 #18
0
 public static TestEntity ToBllTest(this DalTest test)
 {
     if (test == null)
     {
         return(null);
     }
     return(new TestEntity()
     {
         Id = test.Id,
         Name = test.Name,
         Number = test.Number,
         TimeToDo = test.TimeToDo
     });
 }
コード例 #19
0
        public static DalTest ToDal(this TestEntity test)
        {
            var dalTest = new DalTest()
            {
                Id                   = test.Id,
                Creator              = test.Creator,
                Description          = test.Description,
                Name                 = test.Name,
                MinProcentToPassTest = test.MinProcentToPassTest,
                Time                 = test.Time,
                Questions            = test.Questions?.Select(q => q.ToDal()).ToList()
            };

            return(dalTest);
        }
コード例 #20
0
        public static Test ToEntity(this DalTest test)
        {
            var testEntity = new Test()
            {
                Id                   = test.Id,
                Creator              = test.Creator,
                Description          = test.Description,
                Name                 = test.Name,
                MinProcentToPassTest = test.MinProcentToPassTest,
                Time                 = test.Time,
                Questions            = test.Questions?.Select(q => q.ToEntity()).ToList()
            };

            return(testEntity);
        }
コード例 #21
0
 public void Update(DalTest entity)
 {
     if (entity != null)
     {
         var testToUpdate = context.Set <Test>().FirstOrDefault(u => u.Id == entity.Id);
         var ormTest      = entity.ToOrmTest();
         context.Set <Test>().Attach(testToUpdate);
         testToUpdate.Title                = ormTest.Title;
         testToUpdate.Description          = ormTest.Description;
         testToUpdate.ThemeId              = ormTest.ThemeId;
         testToUpdate.TimeLimit            = ormTest.TimeLimit;
         testToUpdate.MinToSuccess         = ormTest.MinToSuccess;
         testToUpdate.MinToSuccess         = ormTest.MinToSuccess;
         context.Entry(testToUpdate).State = System.Data.Entity.EntityState.Modified;
     }
 }
コード例 #22
0
 public static TestEntity ToBllTest(this DalTest e)
 {
     return(new TestEntity()
     {
         Id = e.Id,
         AllowedTime = e.AllowedTime,
         Anonymous = e.Anonymous,
         AuthorId = e.AuthorId,
         CreationDate = e.CreationDate,
         Description = e.Description,
         GlobalAvailability = e.GlobalAvailability,
         Interview = e.Interview,
         Name = e.Name,
         QuestionCount = e.QuestionCount
     });
 }
コード例 #23
0
 /// <summary>
 /// Maps DalTest entity to Test entity.
 /// </summary>
 /// <param name="test"> DalTest instance.</param>
 /// <returns> Test instance.</returns>
 public static Test ToTest(this DalTest test)
 {
     return(new Test()
     {
         Id = test.Id,
         UserId = test.User.Id,
         SubjectId = test.Subject.Id,
         Name = test.Name,
         Created = test.Created,
         IsTimed = test.IsTimed,
         TimeToComplete = test.TimeToComplete,
         User = null,
         Subject = test.Subject?.Id == 0 ? test.Subject.ToSubject() : null,
         Questions = test.Questions.Select(q => q.ToQuestion()).ToList()
     });
 }
コード例 #24
0
        public static TestEntity ToBll(this DalTest test)
        {
            var testEntity = new TestEntity()
            {
                Id                   = test.Id,
                Creator              = test.Creator,
                Description          = test.Description,
                Name                 = test.Name,
                MinProcentToPassTest = test.MinProcentToPassTest,
                Time                 = test.Time,
            };

            foreach (var q in test.Questions)
            {
                testEntity.Questions.Add(q.ToBll());
            }
            return(testEntity);
        }
コード例 #25
0
        public static DalTest ToDal(this Test test)
        {
            var dalTest = new DalTest()
            {
                Id                   = test.Id,
                Creator              = test.Creator,
                Description          = test.Description,
                Name                 = test.Name,
                MinProcentToPassTest = test.MinProcentToPassTest,
                Time                 = test.Time
            };

            foreach (var t in test.Questions)
            {
                dalTest.Questions.Add(t.ToDal());
            }
            return(dalTest);
        }
コード例 #26
0
        public void Update(DalTest entity)
        {
            if (entity == null)
            {
                return;
            }
            var test = context.Set <Test>().SingleOrDefault(t => t.Id == entity.Id);

            if (test == default(Test))
            {
                test = entity.ToTest();
                context.Set <Test>().Add(test);
                return;
            }
            test.Name                 = entity.Name;
            test.Number               = entity.Number;
            test.TimeToDo             = entity.TimeToDo;
            context.Entry(test).State = EntityState.Modified;
        }
コード例 #27
0
        public void StartTest(DalUser user, DalTest test)
        {
            if (IsUserTested(user))
            {
                return;
            }
            Users      ormuser      = context.Set <Users>().FirstOrDefault(users => users.id == user.Id);
            Tests      ormtest      = context.Set <Tests>().FirstOrDefault(tests => tests.id == test.Id);
            UsersTests startingTest = new UsersTests()
            {
                TestId            = ormtest.id,
                BeginningTime     = DateTime.Now,
                EndingTime        = null,
                MarkForTest       = null,
                RightAnswersCount = null,
                UserId            = ormuser.id
            };

            context.Set <UsersTests>().Add(startingTest);
        }
コード例 #28
0
        public void Update(DalTest entity)
        {
            if (context.Database.Connection.State != ConnectionState.Open)
            {
                context.Database.Connection.Open();
            }
            Tests test = context.Set <Tests>().FirstOrDefault(tests => tests.id == entity.Id);

            //check existing
            test.Name                  = entity.Name;
            test.AllowedTime           = entity.AllowedTime;
            test.Anonymous             = entity.Anonymous;
            test.AuthorId              = entity.AuthorId;
            test.CreationDate          = entity.CreationDate;
            test.Description           = entity.Description;
            test.GlobalAvailability    = entity.GlobalAvailability;
            test.Interview             = entity.Interview;
            test.QuestionCount         = entity.QuestionCount;
            test.RequiredQuestionCount = entity.RequiredQuestionCount;
        }
コード例 #29
0
        public IEnumerable <DalQuestion> GetAllTestQuestions(DalTest test)
        {
            if (context.Database.Connection.State != ConnectionState.Open)
            {
                context.Database.Connection.Open();
            }
            IEnumerable <Questions> questions = context.Set <Questions>().Where(q => q.TestId == test.Id).AsEnumerable();
            List <DalQuestion>      result    = new List <DalQuestion>();

            foreach (Questions question in questions)
            {
                result.Add(new DalQuestion()
                {
                    Id = question.id,
                    QuestionNumberInTest = question.QuestionNumberInTest,
                    QuestionStructure    = question.QuestionStructure,
                    TestId = question.TestId
                });
            }
            return(result);
        }
コード例 #30
0
        public static Test ToOrmTest(this DalTest dalTest)
        {
            if (dalTest == null)
            {
                return(null);
            }
            var ormTest = new Test()
            {
                Id           = dalTest.Id,
                Title        = dalTest.Title,
                Description  = dalTest.Description,
                TimeLimit    = dalTest.TimeLimit,
                MinToSuccess = dalTest.MinToSuccess,
                DateCreation = dalTest.DateCreation,
                UserId       = dalTest.UserId,
                ThemeId      = dalTest.ThemeId,
                Questions    = dalTest.Questions.Select(r => r.ToOrmQuestion()).ToList(),
                TestResults  = dalTest.TestResults.Select(r => r.ToOrmTestResult()).ToList()
            };

            return(ormTest);
        }
コード例 #31
0
 public static DalTest ToDalTest(this TestEntity testEntity)
 {
     DalTest dalTest = new DalTest()
     {
         Id = testEntity.Id,
         Name = testEntity.Name,
         Questions = new List<DalQuestion>()
     };
     foreach (var questionEntity in testEntity.Questions)
     {
         dalTest.Questions.Add(questionEntity.ToDalQuestion());
     }
     return dalTest;
 }