Esempio n. 1
0
        public void NewAddress_InsertOrUpdate_Persisted()
        {
            var detail = new StudentDetailModel()
            {
                Name    = "Jane Doe",
                Address = new AddressDetailModel()
                {
                    City    = "Brno",
                    Country = "Jihomoravsky-kraj",
                    State   = "Czechia",
                    Street  = "Bozetechova 2",
                },
                Grade   = new GradeMapper().MapListModel(Seed.GradeJane),
                Courses = new List <StudentCourseListModel>()
                {
                    new StudentCourseListModel()
                    {
                        CourseId = Seed.IcsCourse.Id,
                        Name     = Seed.IcsCourse.Name,
                    }
                }
            };

            detail = _facadeSUT.Save(detail);

            Assert.NotEqual(Guid.Empty, detail.Id);

            var entityFromDb = _repository.GetById(detail.Id);

            Assert.Equal(detail, _mapper.Map(entityFromDb), StudentDetailModel.StudentDetailModelComparer);
        }
Esempio n. 2
0
        public void GivenStudentWithSchool_WhenGettingStudentDetails_ThenViewModelContainsSchoolName()
        {
            ViewResult         result = Target.Details(1) as ViewResult;
            StudentDetailModel actual = result.AssertGetViewModel <StudentDetailModel>();

            Assert.IsNotNull(actual.SchoolName);
        }
Esempio n. 3
0
        public StudentDetailModel GenerateStudentDetailViewModel(EducationSecurityPrincipal user, int id)
        {
            Student student = StudentRepository.Items.Include(s => s.ApprovedProviders).
                              Include("CustomFieldValues.CustomDataOrigin").
                              Include("CustomFieldValues.CustomField").
                              Include("Classes.Teacher").
                              Include("ServiceRequests.CreatingUser").
                              Include("ServiceRequests.ServiceType").
                              Include("ServiceRequests.Subject").
                              Include("ServiceRequests.FulfillmentDetails.FulfillmentStatus").
                              Include("ServiceRequests.FulfillmentDetails.CreatingUser").
                              Include("StudentAssignedOfferings.ServiceOffering.Provider").
                              Include("StudentAssignedOfferings.ServiceOffering.ServiceType").
                              Include("StudentAssignedOfferings.ServiceOffering.Program").
                              Include("StudentAssignedOfferings.CreatingUser").
                              Include(s => s.School).
                              SingleOrDefault(i => i.Id == id);

            if (student == null)
            {
                throw new EntityNotFoundException("Requested student could not be found.");
            }
            IViewStudentDetailPermission permission = (IViewStudentDetailPermission)PermissionFactory.Current.Create("ViewStudentDetail", student);

            permission.GrantAccess(user);
            StudentDetailModel viewModel = new StudentDetailModel();

            viewModel.OnlyUploadedCustomField = permission.CustomFieldOnly;
            List <CustomFieldValue> displayFields = new List <CustomFieldValue>();

            if (permission.CustomFieldOnly)
            {
                displayFields = student.CustomFieldValues.Where(c => c.CustomDataOrigin.CreatingUserId == user.Identity.User.Id).ToList();
            }
            else
            {
                foreach (var field in student.CustomFieldValues)
                {
                    IPermission fieldPermission = PermissionFactory.Current.Create("ViewStudentCustomFieldData", field.CustomField);
                    if ((field.CustomDataOrigin.CreatingUserId == user.Identity.User.Id) || (fieldPermission.TryGrantAccess(user)))
                    {
                        displayFields.Add(field);
                    }
                }
            }
            PrivateHealthDataViewEventRepository.Add(Auditor.CreatePrivateHealthInfoViewEvent(user.Identity.User, displayFields.Where(c => c.CustomField is PrivateHealthField).ToList()));
            RepositoryContainer.Save();
            student.CustomFieldValues = displayFields;
            viewModel.CopyFrom(student);
            if (permission.CustomFieldOnly)
            {
                viewModel.DateOfBirth              = null;
                viewModel.Parents                  = null;
                viewModel.ServiceRequests          = Enumerable.Empty <ServiceRequest>();
                viewModel.StudentAssignedOfferings = Enumerable.Empty <StudentAssignedOffering>();
                viewModel.Classes                  = Enumerable.Empty <Class>();
            }
            return(viewModel);
        }
Esempio n. 4
0
        public void GivenValidStudentId_WhenGenerateStudentDetailViewModel_ThenViewModelContainsRequestData()
        {
            StudentDetailModel actual = Target.GenerateStudentDetailViewModel(User, 1);

            Assert.AreNotEqual(0, actual.ServiceRequests.Select(r => r.CreatingUser).Count());
            Assert.AreNotEqual(0, actual.ServiceRequests.Select(r => r.ServiceType).Count());
            Assert.AreNotEqual(0, actual.ServiceRequests.Select(r => r.Subject).Count());
        }
Esempio n. 5
0
        public void GivenValidStudentId_AndDifferentUserCreatedOneOfTheServiceRequestFulfillments_WhenGenerateStudentDetailViewModel_ThenViewModelContainsPerformedByUserForEachServiceRequestFulfillmentDetail()
        {
            StudentDetailModel actual = Target.GenerateStudentDetailViewModel(User, 1);

            var fulfillmentDetails = actual.ServiceRequests.Single().FulfillmentDetails;
            var performedByUsers = actual.ServiceRequests.Single().FulfillmentDetails.Select(m => m.CreatingUser).Where(u => u != null);
            Assert.AreEqual(fulfillmentDetails.Count, performedByUsers.Count());
        }
Esempio n. 6
0
        public override async Task PreRender()
        {
            int id = Convert.ToInt32(Context.Parameters["Id"]);

            Student = await studentService.GetStudentByIdAsync(id);

            await base.PreRender();
        }
Esempio n. 7
0
        public void GivenStudentWithClassesAndTeachers_WhenGettingStudentDetails_ThenViewModelContainsClassesWithTeachers()
        {
            ViewResult         result = Target.Details(1) as ViewResult;
            StudentDetailModel actual = result.AssertGetViewModel <StudentDetailModel>();

            Assert.IsTrue(actual.Classes.Any());
            Assert.IsTrue(actual.Classes.All(c => c.Teacher != null));
        }
        public void GivenAStudentId_WhenStudentDetailsActionIsCalled_ThenAViewResultForTheDesiredStudentIsReturned()
        {
            StudentDetailModel expected = new StudentDetailModel();
            MockLogicManager.Expect(m => m.GenerateStudentDetailViewModel(User, 1)).Return(expected);

            var result = Target.Details(1) as ViewResult;

            result.AssertGetViewModel(expected);
        }
Esempio n. 9
0
        public void GivenValidStudentId_WhenGenerateStudentDetailViewModel_ThenViewModelContainsServiceData()
        {
            AssemblySetup.ForceDeleteEducationDatabase("SSD");
            InitializeTest();
            StudentDetailModel actual = Target.GenerateStudentDetailViewModel(User, 1);

            Assert.AreNotEqual(0, actual.StudentAssignedOfferings.Select(s => s.ServiceOffering.Provider).Count());
            Assert.AreNotEqual(0, actual.StudentAssignedOfferings.Select(s => s.ServiceOffering.ServiceType).Count());
            Assert.AreNotEqual(0, actual.StudentAssignedOfferings.Select(s => s.CreatingUser).Count());
        }
Esempio n. 10
0
        public override async Task PreRender()
        {
            int id = 0;

            if (int.TryParse(Context.Parameters["Id"].ToString(), out id))
            {
                Student = await studentService.GetStudentByIdAsync(id);
            }
            await base.PreRender();
        }
Esempio n. 11
0
        public void WhenStudentDetailsActionIsCalled_ThenAViewResultIsCreated()
        {
            StudentDetailModel expected = new StudentDetailModel();

            MockLogicManager.Expect(m => m.GenerateStudentDetailViewModel(User, 1)).Return(expected);

            ActionResult result = Target.Details(1);

            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
Esempio n. 12
0
        public void GivenAStudentId_WhenStudentDetailsActionIsCalled_ThenAViewResultForTheDesiredStudentIsReturned()
        {
            StudentDetailModel expected = new StudentDetailModel();

            MockLogicManager.Expect(m => m.GenerateStudentDetailViewModel(User, 1)).Return(expected);

            var result = Target.Details(1) as ViewResult;

            result.AssertGetViewModel(expected);
        }
Esempio n. 13
0
        public async Task UpdateStudentAsync(StudentDetailModel student)
        {
            var entity = await studentDbContext.Students.FirstOrDefaultAsync(s => s.Id == student.Id);

            entity.FirstName      = student.FirstName;
            entity.LastName       = student.LastName;
            entity.About          = student.About;
            entity.EnrollmentDate = student.EnrollmentDate;

            await studentDbContext.SaveChangesAsync();
        }
Esempio n. 14
0
 //public async Task InsertStudentAsync(StudentDetailModel student)
 public async Task InsertStudentAsync(StudentDetailModel student)
 {
     var document = new Student()
     {
         Id             = student.Id,
         FirstName      = student.FirstName,
         LastName       = student.LastName,
         About          = student.About,
         EnrollmentDate = student.EnrollmentDate
     };
     await _students.InsertOneAsync(document);
 }
 private static void AssertViewModel(Student expectedState, StudentDetailModel actual)
 {
     Assert.AreEqual(expectedState.Classes, actual.Classes);
     Assert.AreEqual(expectedState.DateOfBirth, actual.DateOfBirth);
     Assert.AreEqual(expectedState.Grade, actual.Grade);
     Assert.AreEqual(expectedState.Id, actual.Id);
     Assert.AreEqual(expectedState.FullName, actual.Name);
     Assert.AreEqual(expectedState.Parents, actual.Parents);
     Assert.AreEqual(expectedState.School.Name, actual.SchoolName);
     Assert.AreEqual(expectedState.ServiceRequests, actual.ServiceRequests);
     Assert.AreEqual(expectedState.StudentSISId, actual.SISId);
     CollectionAssert.AreEqual(expectedState.StudentAssignedOfferings.ToList(), actual.StudentAssignedOfferings.ToList());
 }
Esempio n. 16
0
        //public async Task UpdateStudent(StudentDetailModel student)
        public async Task UpdateStudentAsync(StudentDetailModel student)
        {
            var document = new Student()
            {
                Id             = student.Id,
                FirstName      = student.FirstName,
                LastName       = student.LastName,
                About          = student.About,
                EnrollmentDate = student.EnrollmentDate
            };

            await _students.ReplaceOneAsync(Student => Student.Id == student.Id, document);
        }
Esempio n. 17
0
        public async Task InsertStudentAsync(StudentDetailModel student)
        {
            var entity = new Student()
            {
                FirstName      = student.FirstName,
                LastName       = student.LastName,
                About          = student.About,
                EnrollmentDate = student.EnrollmentDate
            };

            studentDbContext.Students.Add(entity);
            await studentDbContext.SaveChangesAsync();
        }
Esempio n. 18
0
        //public async Task<StudentDetailModel> GetStudentByIdAsync(int studentId)
        public async Task <StudentDetailModel> GetStudentByIdAsync(int studentId)
        {
            Student document = await _students.FindAsync <Student>(Student => Student.Id == studentId).Result.FirstOrDefaultAsync();

            StudentDetailModel student = new StudentDetailModel();

            student.Id             = document.Id;
            student.FirstName      = document.FirstName;
            student.LastName       = document.LastName;
            student.About          = document.About;
            student.EnrollmentDate = document.EnrollmentDate;

            return(student);
        }
Esempio n. 19
0
        // GET api/Students/5
        public StudentDetailModel GetStudent(int id)
        {
            Student student = this.studentRepository.Get(id);

            if (student == null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            var studentEntity = this.studentRepository.Get(id);

            StudentDetailModel studentDetailModel = new StudentDetailModel()
            {
                FirstName = studentEntity.FirstName,
                LastName  = studentEntity.LastName,
                Grade     = studentEntity.Grade,
                Age       = studentEntity.Age,
                StudentId = studentEntity.StudentId
            };

            var schools = this.schoolRepository.All();
            var school  =
                (from s in schools
                 where s.Students.Any(x => x.StudentId == studentEntity.StudentId)
                 select s).First();

            studentDetailModel.School = new SchoolModel()
            {
                SchoolId = school.SchoolId,
                Name     = school.Name,
                Location = school.Location
            };

            var marks        = this.markRepository.All();
            var studentMarks =
                from mark in marks
                where mark.Student.StudentId == id
                select mark;

            studentDetailModel.Marks = studentMarks.Select(new Func <Mark, MarkModel>(x => new MarkModel()
            {
                Value   = x.Value,
                Subject = x.Subject,
                MarkId  = x.MarkId
            })).ToList();

            return(studentDetailModel);
        }
Esempio n. 20
0
        public async Task InsertStudentAsync(StudentDetailModel student)
        {
            var entity = new Student()
            {
                Id             = new Random().Next(1, int.MaxValue),
                FirstName      = student.FirstName,
                LastName       = student.LastName,
                About          = student.About,
                EnrollmentDate = Timestamp.FromDateTime(student.EnrollmentDate.ToUniversalTime())
            };

            FirestoreDb       db     = FirestoreDb.Create(Project);
            var               Id     = Guid.NewGuid().ToString();
            DocumentReference docRef = db.Collection(Collection).Document(Id);
            await docRef.SetAsync(entity);
        }
Esempio n. 21
0
        public void ProcessUploadedFile(Guid fileId)
        {
            StreamReader file = null;

            try
            {
                string line;
                file = new StreamReader(storage.GetFile(fileId));
                while ((line = file.ReadLine()) != null)
                {
                    //we are getting eac part of the todo into an array.
                    //parts[0] will be the Todo Text and parts[1] will be the Due date
                    var parts = line.Split(",");
                    //first part of this if statement checks that the Todo Text is a valid non empty text
                    //second part checks that we are passing in a valid date time
                    if (!string.IsNullOrWhiteSpace(parts?[0]) &&
                        !string.IsNullOrWhiteSpace(parts?[1]) &&
                        !string.IsNullOrWhiteSpace(parts?[3]) &&
                        DateTime.TryParse(parts?[2], out DateTime enrollmentDate))
                    {
                        var model = new StudentDetailModel
                        {
                            FirstName      = parts?[0],
                            LastName       = parts?[1],
                            EnrollmentDate = enrollmentDate,
                            About          = parts?[3]
                        };
                        //this line creates a background job for each Todo Item
                        BackgroundJob.Enqueue(() => InsertStudentAsync(model));
                    }
                }
                file.Close();
            }
            catch (Exception e)
            {
            }
            finally
            {
                if (file is object)
                {
                    file.Close();
                }

                storage.DeleteFile(fileId);
            }
        }
Esempio n. 22
0
        public async Task UpdateStudentAsync(StudentDetailModel student)
        {
            FirestoreDb   db       = FirestoreDb.Create(Project);
            Query         docRef   = db.Collection(Collection).WhereEqualTo("Id", student.Id).Limit(1);
            QuerySnapshot snapshot = await docRef.GetSnapshotAsync();

            if (snapshot.Count > 0)
            {
                DocumentReference           studentRef = db.Collection(Collection).Document(snapshot.ElementAt(0).Id);
                Dictionary <string, object> updates    = new Dictionary <string, object>
                {
                    { nameof(student.About), student.About },
                    { nameof(student.EnrollmentDate), Timestamp.FromDateTime(student.EnrollmentDate.ToUniversalTime()) },
                    { nameof(student.FirstName), student.FirstName },
                    { nameof(student.LastName), student.LastName }
                };
                await studentRef.UpdateAsync(updates);
            }
        }
        public StudentDetailModel get_Student_ById(string user_id)
        {
            var dbcon     = new SqlConnection(ConfigurationManager.ConnectionStrings["_MyLearnDBEntities"].ToString());
            var dbcommand = new SqlCommand();

            dbcommand.Connection  = dbcon;
            dbcommand.CommandText = "select * from AspNetUsers where id = @user_id";
            dbcommand.Parameters.AddWithValue("@user_id", SqlDbType.UniqueIdentifier).Value = user_id;
            dbcon.Open();
            var reader = dbcommand.ExecuteReader();
            var model  = new StudentDetailModel();

            while (reader.Read())
            {
                model.StudentId   = reader["Id"].ToString();
                model.StudentName = reader["UserName"].ToString();
            }
            dbcon.Close();
            return(model);
        }
Esempio n. 24
0
        public IActionResult Detail(int id)
        {
            var student = _students.GetById(id);

            var model = new StudentDetailModel
            {
                Id                 = id,
                FirstName          = student.FirstName,
                LastName           = student.LastName,
                Address            = student.Address,
                Email              = student.Email,
                IndexNumber        = student.IndexNumber,
                Pesel              = student.Pesel,
                TelephoneNumber    = student.TelephoneNumber,
                Semester_Students  = student.Semester_Students,
                Student_Activities = student.Student_Activities
            };

            return(View(model));
        }
        public IActionResult Detail(int id)
        {
            var student = _studentService.Get(id);

            var model = new StudentDetailModel
            {
                Id              = student.Id,
                LastName        = student.LastName ?? "No Last Name Provided",
                FirstName       = student.FirstName ?? "No First Name Provided",
                Address         = student.Address ?? "No Address Provided",
                HomeLibrary     = student.HomeLibraryBranch?.Name ?? "No Home Library",
                MemberSince     = student.LibraryCard?.Created,
                OverdueFees     = student.LibraryCard?.Fees,
                LibraryCardId   = student.LibraryCard?.Id,
                Telephone       = string.IsNullOrEmpty(student.Telephone) ? "No Telephone Number Provided" : student.Telephone,
                CheckoutHistory = _studentService.GetCheckoutHistory(id),
                Holds           = _studentService.GetHolds(id)
            };

            return(View(model));
        }
 public StudentDetailModel GenerateStudentDetailViewModel(EducationSecurityPrincipal user, int id)
 {
     Student student = StudentRepository.Items.Include(s => s.ApprovedProviders).
                                               Include("CustomFieldValues.CustomDataOrigin").
                                               Include("CustomFieldValues.CustomField").
                                               Include("Classes.Teacher").
                                               Include("ServiceRequests.CreatingUser").
                                               Include("ServiceRequests.ServiceType").
                                               Include("ServiceRequests.Subject").
                                               Include("ServiceRequests.FulfillmentDetails.FulfillmentStatus").
                                               Include("ServiceRequests.FulfillmentDetails.CreatingUser").
                                               Include("StudentAssignedOfferings.ServiceOffering.Provider").
                                               Include("StudentAssignedOfferings.ServiceOffering.ServiceType").
                                               Include("StudentAssignedOfferings.ServiceOffering.Program").
                                               Include("StudentAssignedOfferings.CreatingUser").
                                               Include(s => s.School).
                                               SingleOrDefault(i => i.Id == id);
     if (student == null)
     {
         throw new EntityNotFoundException("Requested student could not be found.");
     }
     IViewStudentDetailPermission permission = (IViewStudentDetailPermission)PermissionFactory.Current.Create("ViewStudentDetail", student);
     permission.GrantAccess(user);
     StudentDetailModel viewModel = new StudentDetailModel();
     viewModel.OnlyUploadedCustomField = permission.CustomFieldOnly;
     List<CustomFieldValue> displayFields = new List<CustomFieldValue>();
     if (permission.CustomFieldOnly)
     {
         displayFields = student.CustomFieldValues.Where(c => c.CustomDataOrigin.CreatingUserId == user.Identity.User.Id).ToList();
     }
     else
     {
         foreach (var field in student.CustomFieldValues)
         {
             IPermission fieldPermission = PermissionFactory.Current.Create("ViewStudentCustomFieldData", field.CustomField);
             if ((field.CustomDataOrigin.CreatingUserId == user.Identity.User.Id) || (fieldPermission.TryGrantAccess(user)))
             {
                 displayFields.Add(field);
             }
         }
     }
     PrivateHealthDataViewEventRepository.Add(Auditor.CreatePrivateHealthInfoViewEvent(user.Identity.User, displayFields.Where(c => c.CustomField is PrivateHealthField).ToList()));
     RepositoryContainer.Save();
     student.CustomFieldValues = displayFields;
     viewModel.CopyFrom(student);
     if (permission.CustomFieldOnly)
     {
         viewModel.DateOfBirth = null;
         viewModel.Parents = null;
         viewModel.ServiceRequests = Enumerable.Empty<ServiceRequest>();
         viewModel.StudentAssignedOfferings = Enumerable.Empty<StudentAssignedOffering>();
         viewModel.Classes = Enumerable.Empty<Class>();
     }
     return viewModel;
 }
Esempio n. 27
0
        public void GivenValidStudentId_WhenGenerateStudentDetailViewModel_ThenViewModelContainsFulfillmentDetailsData()
        {
            StudentDetailModel actual = Target.GenerateStudentDetailViewModel(User, 1);

            Assert.AreNotEqual(0, actual.ServiceRequests.First().FulfillmentDetails.Count());
        }
 private static void AssertViewModel(Student expectedState, StudentDetailModel actual)
 {
     Assert.AreEqual(expectedState.Classes, actual.Classes);
     Assert.AreEqual(expectedState.DateOfBirth, actual.DateOfBirth);
     Assert.AreEqual(expectedState.Grade, actual.Grade);
     Assert.AreEqual(expectedState.Id, actual.Id);
     Assert.AreEqual(expectedState.FullName, actual.Name);
     Assert.AreEqual(expectedState.Parents, actual.Parents);
     Assert.AreEqual(expectedState.School.Name, actual.SchoolName);
     Assert.AreEqual(expectedState.ServiceRequests, actual.ServiceRequests);
     Assert.AreEqual(expectedState.StudentSISId, actual.SISId);
     CollectionAssert.AreEqual(expectedState.StudentAssignedOfferings.ToList(), actual.StudentAssignedOfferings.ToList());
 }
 public void InitializeTest()
 {
     Target = new StudentDetailModel();
 }
        public void WhenStudentDetailsActionIsCalled_ThenAViewResultIsCreated()
        {
            StudentDetailModel expected = new StudentDetailModel();
            MockLogicManager.Expect(m => m.GenerateStudentDetailViewModel(User, 1)).Return(expected);

            ActionResult result = Target.Details(1);

            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
Esempio n. 31
0
        public void GivenValidStudentId_WhenGenerateStudentDetailViewModel_ThenViewModelContainsClassData()
        {
            StudentDetailModel actual = Target.GenerateStudentDetailViewModel(User, 1);

            Assert.AreNotEqual(0, actual.Classes.Select(c => c.Teacher).Count());
        }
        public override async Task PreRender()
        {
            Student = await studentService.GetStudentByIdAsync(Context.Parameters["Id"].ToString());

            await base.PreRender();
        }