示例#1
0
        public void RemoveInstructor(int memberId)
        {
            string         roleInstructor = UserRoles.Instructor.ToString();
            InstructorData instructor     = _repository.GetQuery <InstructorData>(d => d.MemberId == memberId)
                                            .Include(d => d.Member)
                                            .FirstOrDefault();

            if (instructor == null)
            {
                throw new ApplicationException("No instructor record found associated with MemberID=" + memberId.ToString());
            }

            Member member = _repository.GetQuery <Member>(m => m.Id == memberId)
                            .Include(m => m.Roles)
                            .FirstOrDefault();

            // delete instructor data
            _repository.Delete <InstructorData>(i => i.Id == instructor.Id);

            // remove instructor role
            Role role = member.Roles.FirstOrDefault(r => r.Name == roleInstructor);

            if (role != null)
            {
                member.Roles.Remove(role);
            }

            _repository.UnitOfWork.SaveChanges();
        }
        public ActionResult UpdateInstructor(int?id)
        {
            if (User.IsInRole("Instructor"))
            {
                ProfileCommon  profile    = HttpContext.Profile as ProfileCommon;
                int            memberId   = profile.MemberId;
                InstructorData instructor = _dataService.GetInstructorInfoByMemberId(memberId);

                UpdateInstructorViewModel viewModel = null;
                if (instructor != null)
                {
                    viewModel = new UpdateInstructorViewModel(instructor);
                    if (instructor.AuthorizedAircraft != null && instructor.AuthorizedAircraft.Count > 0)
                    {
                        viewModel.AuthorizedAircraft = instructor.AuthorizedAircraft.Select(a => a.AircraftId).ToList();
                    }
                }
                else
                {
                    viewModel = new UpdateInstructorViewModel();
                }

                viewModel.MemberId     = memberId;
                viewModel.AircraftList = GetAircraftList();

                return(View(ViewNames.UpdateInstructor, viewModel));
            }
            else if (User.IsInRole("Admin"))
            {
                if (id == null)
                {
                    throw new HttpException("Must have member ID");
                }

                InstructorData            instructor = _dataService.GetInstructorInfoByMemberId((int)id);
                UpdateInstructorViewModel viewModel  = null;
                if (instructor != null)
                {
                    viewModel = new UpdateInstructorViewModel(instructor);
                    if (instructor.AuthorizedAircraft != null && instructor.AuthorizedAircraft.Count > 0)
                    {
                        viewModel.AuthorizedAircraft = instructor.AuthorizedAircraft.Select(a => a.AircraftId).ToList();
                    }
                }
                else
                {
                    viewModel = new UpdateInstructorViewModel();
                }

                viewModel.MemberId     = (int)id;
                viewModel.AircraftList = GetAircraftList();

                return(View(ViewNames.UpdateInstructor, viewModel));
            }
            else
            {
                throw new HttpException(403, "You are not authorized to perform this operation.");
            }
        }
        public void getInstructorsDataTest()
        {
            var service = new Service1();

            InstructorData instructors = service.getInstructorsData();

            Assert.IsTrue(instructors.InstructorsTable.Rows.Count > 0);
        }
示例#4
0
        public InstructorData GetInstructorInfoByMemberId(int memberId)
        {
            InstructorData info = _repository.GetQuery <InstructorData>(o => o.MemberId == memberId)
                                  .Include(o => o.Member)
                                  .Include(o => o.AuthorizedAircraft)
                                  .Include("AuthorizedAircraft.Aircraft")
                                  .FirstOrDefault();

            return(info);
        }
        protected override void Seed(ContosoUniversityContext context)
        {
            base.Seed(context);

            StudentsData.Seed(context);
            InstructorData.Seed(context);
            DepartmentData.Seed(context);
            CourseData.Seed(context);
            OfficeAssignmentData.Seed(context);
            EnrollmentData.Seed(context);
        }
示例#6
0
 public void SaveInstructor(InstructorData instructor)
 {
     if (instructor.Id > 0)
     {
         _repository.Attach(instructor);
     }
     else
     {
         _repository.Add(instructor);
     }
     _repository.UnitOfWork.SaveChanges();
 }
示例#7
0
        private void ValidateUserData(InstructorData request)
        {
            _validation.NotValidId(request.Id, $"{nameof(request.Id)}");

            _validation.NotValidField(request.FullName, 50, $"{nameof(request.FullName)}");

            _validation.NotValidEmail(request.Email);

            _validation.NotValidField(request.Bio, 256, $"{nameof(request.Bio)}");

            _validation.NotValidField(request.Language, 10, $"{nameof(request.Language)}");
        }
示例#8
0
        public UpdateInstructorViewModel(InstructorData entity)
        {
            Id       = entity.Id;
            MemberId = entity.MemberId;

            CertificateNumber            = entity.CertificateNumber;
            Ratings                      = entity.Ratings;
            InstructOnWeekends           = entity.InstructOnWeekends;
            InstructOnWeekdays           = entity.InstructOnWeekdays;
            InstructOnWeekdayNights      = entity.InstructOnWeekdayNights;
            AvailableForCheckoutsAnnuals = entity.AvailableForCheckoutsAnnuals;
            DesignatedForStageChecks     = entity.DesignatedForStageChecks;
            Comments                     = entity.Comments;
            AuthorizedAircraft           = new List <int>();
        }
示例#9
0
        public async Task <Instructor> GetInstructor(int id)
        {
            var httpClient = new HttpClient();

            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", Preferences.Get("accesstoken", ""));
            var response = await httpClient.GetStringAsync(baseUrl + "instructors/" + id);

            JObject        jsonResponse         = JObject.Parse(response);
            JToken         result               = jsonResponse["data"];
            var            instructorAttributes = result["attributes"];
            InstructorData instructorData       = result.ToObject <InstructorData>();

            instructorData.instructorAttributes = instructorAttributes.ToObject <InstructorAttributes>();
            Instructor instructor = CreateInstructorFromData(instructorData);

            return(instructor);
        }
        public ActionResult InstructorDetails(int memberId)
        {
            InstructorData instructor = _dataService.GetInstructorInfoByMemberId(memberId);
            Member         member     = _dataService.GetMember(memberId);

            InstructorViewModel instructorVM = new InstructorViewModel()
            {
                MemberId = instructor.MemberId,
                AltPhone = member.Phone,
                AvailableForCheckoutsAnnuals = instructor.AvailableForCheckoutsAnnuals,
                InstructOnWeekdayNights      = instructor.InstructOnWeekdayNights,
                InstructOnWeekdays           = instructor.InstructOnWeekdays,
                InstructOnWeekends           = instructor.InstructOnWeekends,
                CeritifcateNumber            = instructor.CertificateNumber,
                Comments = instructor.Comments,
                DesignatedForStageChecks = instructor.DesignatedForStageChecks,
                Email    = member.Login.Email,
                FullName = member.FullName,
                Id       = instructor.Id,
                Phone    = member.Phone,
                Ratings  = instructor.Ratings
            };

            if (instructor.AuthorizedAircraft != null)
            {
                instructorVM.AuthorizedAircraft = new List <AircraftListItemViewModel>();

                foreach (var ac in instructor.AuthorizedAircraft)
                {
                    AircraftListItemViewModel avm = new AircraftListItemViewModel
                    {
                        Id = ac.AircraftId,
                        RegistrationNumber = ac.Aircraft.RegistrationNumber
                    };
                    instructorVM.AuthorizedAircraft.Add(avm);
                }
            }

            return(View(ViewNames.InstructorDetails, instructorVM));
        }
示例#11
0
        public async Task <List <Instructor> > GetInstructors()
        {
            var httpClient = new HttpClient();

            Console.WriteLine("Access token: " + Preferences.Get("accesstoken", ""));
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", Preferences.Get("accesstoken", ""));
            var response = await httpClient.GetStringAsync(baseUrl + "instructors");

            JObject           jsonResponse = JObject.Parse(response);
            IList <JToken>    results      = jsonResponse["data"].Children().ToList();
            List <Instructor> instructorz  = new List <Instructor>();

            foreach (JToken result in results)
            {
                var            instructorAttributes = result["attributes"];
                InstructorData instructorData       = result.ToObject <InstructorData>();
                instructorData.instructorAttributes = instructorAttributes.ToObject <InstructorAttributes>();
                instructorz.Add(CreateInstructorFromData(instructorData));
            }

            return(instructorz);
            //return true;
        }
示例#12
0
        private Instructor CreateInstructorFromData(InstructorData instructorData)
        {
            Instructor instructor = new Instructor
            {
                Id           = Convert.ToInt32(instructorData.Id),
                Name         = instructorData.instructorAttributes.Name,
                Language     = instructorData.instructorAttributes.Language,
                Nationality  = instructorData.instructorAttributes.Nationality,
                Gender       = instructorData.instructorAttributes.Gender,
                Phone        = instructorData.instructorAttributes.Phone,
                Email        = instructorData.instructorAttributes.Email,
                Education    = instructorData.instructorAttributes.Education,
                OneLineTitle = instructorData.instructorAttributes.OneLineTitle,
                Description  = instructorData.instructorAttributes.Description,
                Experience   = instructorData.instructorAttributes.Experience,
                HourlyRate   = instructorData.instructorAttributes.HourlyRate,
                CourseDomain = instructorData.instructorAttributes.CourseDomain,
                City         = instructorData.instructorAttributes.City,
                ImagePath    = instructorData.instructorAttributes.ImageUrl.Replace("http://localhost:3000/", rootUrl)
            };

            return(instructor);
        }
示例#13
0
        public void CreateLoginsAndMembers()
        {
            Role roleAdmin      = _dbContext.Roles.First(r => r.Id == (int)UserRoles.Admin);
            Role rolePilot      = _dbContext.Roles.FirstOrDefault(r => r.Id == (int)UserRoles.Pilot);
            Role roleInstructor = _dbContext.Roles.FirstOrDefault(r => r.Id == (int)UserRoles.Instructor);
            Role roleOwner      = _dbContext.Roles.First(r => r.Id == (int)UserRoles.AircraftOwner);

            string salt       = SimpleHash.GetSalt(32);
            string hash       = SimpleHash.MD5("password1", salt);
            Login  loginAdmin = new Login()
            {
                Username     = "******",
                Password     = SimpleHash.MD5("password1", salt),
                PasswordSalt = salt,
                MemberPIN    = "1110",
                Email        = "*****@*****.**"
            };

            try
            {
                _dbContext.Logins.Add(loginAdmin);
                _dbContext.SaveChanges();
            }
            catch (DbEntityValidationException ex)
            {
                foreach (var e in ex.EntityValidationErrors)
                {
                    Debug.WriteLine(e.Entry);
                }
                throw;
            }

            Member memberAdmin = new Member()
            {
                Status        = "Active",
                AddressLine_1 = "1234 Main St",
                City          = "Plano",
                Zip           = "75035",
                FirstName     = "Frank",
                LastName      = "Zappa",
                LastMedical   = DateTime.Now,
                //PrimaryEmail = "*****@*****.**",
                LoginId = loginAdmin.Id,
                Roles   = new List <Role>()
                {
                    roleAdmin
                }
            };

            _dbContext.Members.Add(memberAdmin);
            _dbContext.SaveChanges();

            Login loginOwner1 = new Login()
            {
                Username     = "******",
                Email        = "*****@*****.**",
                Password     = SimpleHash.MD5("test", salt),
                PasswordSalt = salt,
                MemberPIN    = "1211"
            };

            _dbContext.Logins.Add(loginOwner1);
            _dbContext.SaveChanges();

            Member memberOwner1 = new Member()
            {
                Status        = "Active",
                AddressLine_1 = "1234 Main St",
                City          = "Beverly Hills",
                Zip           = "23031",
                FirstName     = "John",
                LastName      = "Travolta",
                LastMedical   = DateTime.Now,
                //PrimaryEmail = "*****@*****.**",
                LoginId = loginOwner1.Id,
                Roles   = new List <Role>()
                {
                    roleOwner
                }
            };

            _dbContext.Members.Add(memberOwner1);

            Login loginOwner2 = new Login()
            {
                Username     = "******",
                Email        = "*****@*****.**",
                Password     = SimpleHash.MD5("test", salt),
                PasswordSalt = salt,
                MemberPIN    = "1351"
            };

            _dbContext.Logins.Add(loginOwner2);
            _dbContext.SaveChanges();

            Member memberOwner2 = new Member()
            {
                Status        = "Active",
                AddressLine_1 = "1234 Poplar Ave",
                City          = "Santa Monica",
                Zip           = "450123",
                FirstName     = "Harrison",
                LastName      = "Ford",
                LastMedical   = DateTime.Now,
                //PrimaryEmail = "*****@*****.**",
                LoginId = loginOwner2.Id,
                Roles   = new List <Role>()
                {
                    roleOwner
                }
            };

            _dbContext.Members.Add(memberOwner2);

            Login loginPilot1 = new Login()
            {
                Username     = "******",
                Email        = "*****@*****.**",
                Password     = SimpleHash.MD5("test", salt),
                PasswordSalt = salt,
                MemberPIN    = "1525"
            };

            _dbContext.Logins.Add(loginPilot1);
            _dbContext.SaveChanges();

            Member memberPilot1 = new Member()
            {
                Status        = "Active",
                AddressLine_1 = "1010 Addison Circle",
                City          = "Addison",
                Zip           = "750444",
                FirstName     = "Bob",
                LastName      = "Hoover",
                LastMedical   = DateTime.Now.AddDays(-100),
                //PrimaryEmail = "*****@*****.**",
                LoginId = loginPilot1.Id,
                Roles   = new List <Role>()
                {
                    rolePilot
                }
            };

            _dbContext.Members.Add(memberPilot1);
            _dbContext.SaveChanges();

            Login loginInstructor1 = new Login()
            {
                Username     = "******",
                Email        = "*****@*****.**",
                Password     = SimpleHash.MD5("test", salt),
                PasswordSalt = salt,
                MemberPIN    = "1010"
            };

            _dbContext.Logins.Add(loginInstructor1);
            _dbContext.SaveChanges();

            Member memberInstructor1 = new Member()
            {
                Status        = "Active",
                AddressLine_1 = "1234 Somewhere Lane",
                City          = "Beverly Hills",
                Zip           = "90210",
                FirstName     = "Billy",
                LastName      = "Bathwater",
                LastMedical   = DateTime.Now.AddDays(-100),
                //PrimaryEmail = "*****@*****.**",
                LoginId = loginInstructor1.Id,
                Roles   = new List <Role>()
                {
                    roleInstructor
                }
            };

            _dbContext.Members.Add(memberInstructor1);
            _dbContext.SaveChanges();

            InstructorData instructor1Data = new InstructorData()
            {
                AvailableForCheckoutsAnnuals = true,
                CertificateNumber            = "1234567890",
                DesignatedForStageChecks     = false,
                InstructOnWeekdayNights      = false,
                InstructOnWeekdays           = false,
                InstructOnWeekends           = true,
                Member  = memberInstructor1,
                Ratings = "CFI, CFII, MEI"
            };

            _dbContext.InstructorData.Add(instructor1Data);
            _dbContext.SaveChanges();

            Login loginGuest = new Login()
            {
                Username     = "******",
                Email        = "*****@*****.**",
                Password     = SimpleHash.MD5("password1", salt),
                PasswordSalt = salt,
                ForumUserId  = 179,
                MemberPIN    = "1790"
            };

            _dbContext.Logins.Add(loginGuest);
            _dbContext.SaveChanges();

            Login jeremyLogin = new Login()
            {
                Username     = "******",
                Password     = SimpleHash.MD5("2g4uFOOl", "6YA+Ie1h2GLV1GU/K5EobHfSm4GPpXgAm+BbICN2RvM="),
                PasswordSalt = "6YA+Ie1h2GLV1GU/K5EobHfSm4GPpXgAm+BbICN2RvM=",
                ForumUserId  = 1,
                Email        = "*****@*****.**",
                MemberPIN    = "1530"
            };

            _dbContext.Logins.Add(jeremyLogin);
            _dbContext.SaveChanges();

            Member jeremyMember = new Member()
            {
                Status        = "ace1",
                AddressLine_1 = "1234 Venture Dr",
                City          = "McKinney",
                Zip           = "75070",
                FirstName     = "Ace",
                LastName      = "Ventura",
                LastMedical   = DateTime.Now,

                LoginId = jeremyLogin.Id,
                Roles   = new List <Role>()
                {
                    roleAdmin
                }
            };

            _dbContext.Members.Add(jeremyMember);
            _dbContext.SaveChanges();
        }
        public ActionResult UpdateInstructor(UpdateInstructorViewModel viewModel)
        {
            InstructorData instructor = _dataService.GetInstructorInfoByMemberId(viewModel.MemberId);

            if (instructor == null)
            {
                instructor = new InstructorData();
            }

            ProfileCommon profile = ProfileCommon.GetProfile();

            instructor.MemberId = viewModel.MemberId;
            instructor.AvailableForCheckoutsAnnuals = viewModel.AvailableForCheckoutsAnnuals;
            instructor.CertificateNumber            = viewModel.CertificateNumber;
            instructor.Ratings = viewModel.Ratings;
            instructor.InstructOnWeekdayNights = viewModel.InstructOnWeekdayNights;
            instructor.InstructOnWeekdays      = viewModel.InstructOnWeekdays;
            instructor.InstructOnWeekends      = viewModel.InstructOnWeekends;
            instructor.Comments = viewModel.Comments;
            if (User.IsInRole(UserRoles.Admin.ToString()))
            {
                instructor.DesignatedForStageChecks = viewModel.DesignatedForStageChecks;

                if (viewModel.AuthorizedAircraft.Count > 0)
                {
                    if (instructor.AuthorizedAircraft == null)
                    {
                        instructor.AuthorizedAircraft = new List <InstructorAuthorization>();
                    }

                    foreach (var acId in viewModel.AuthorizedAircraft)
                    {
                        if (instructor.AuthorizedAircraft.Any(aa => aa.AircraftId == acId))
                        {
                            continue;
                        }

                        InstructorAuthorization auth = new InstructorAuthorization()
                        {
                            AircraftId     = acId,
                            InstructorId   = viewModel.Id,
                            AuthorizedOn   = DateTime.Now,
                            AuthorizedById = profile.MemberId
                        };

                        instructor.AuthorizedAircraft.Add(auth);
                    }
                }
            }

            _dataService.SaveInstructor(instructor);


            //Member member = _dataService.GetMember(instructor.MemberId);

            //InstructorViewModel instructorVM = new InstructorViewModel()
            //{
            //    MemberId = instructor.MemberId,
            //    AltPhone = member.Phone,
            //    AvailableForCheckoutsAnnuals = instructor.AvailableForCheckoutsAnnuals,
            //    InstructOnWeekdayNights = instructor.InstructOnWeekdayNights,
            //    InstructOnWeekdays = instructor.InstructOnWeekdays,
            //    InstructOnWeekends = instructor.InstructOnWeekends,
            //    CeritifcateNumber = instructor.CertificateNumber,
            //    Comments = instructor.Comments,
            //    DesignatedForStageChecks = instructor.DesignatedForStageChecks,
            //    Email = member.Login.Email,
            //    FullName = member.FullName,
            //    Id = instructor.Id,
            //    Phone = member.Phone,
            //    Ratings = instructor.Ratings
            //};

            return(RedirectToAction("InstructorDetails", new { memberId = instructor.MemberId }));
        }
示例#15
0
        public void ImportInstructors()
        {
            IEnumerator <NtfcDataSet.InstructorIDRow> rows = _dataSet.InstructorID.GetEnumerator();
            Role instructorRole = _dbContext.Roles.First(r => r.Name.Contains("Instructor"));

            while (rows.MoveNext())
            {
                NtfcDataSet.InstructorIDRow row = rows.Current;

                if (row.Instructor_MID == "537" || row.Instructor_MID == "547" || row.Instructor_MID == "734" || row.Instructor_MID == "735" || row.Instructor_MID == "999")
                {
                    continue;
                }

                InstructorData instructor = new InstructorData();
                if (!row.IsannualsNull())
                {
                    instructor.AvailableForCheckoutsAnnuals = row.annuals.ToLower() == "yes" ? true : false;
                }
                else
                {
                    instructor.AvailableForCheckoutsAnnuals = false;
                }
                instructor.CertificateNumber = String.Empty;
                if (!row.IsnotesNull())
                {
                    instructor.Comments = row.notes;
                }
                instructor.DesignatedForStageChecks = false;
                if (!row.IsdaysNull())
                {
                    instructor.InstructOnWeekdays = row.days.ToLower() == "yes" ? true : false;
                }
                else
                {
                    instructor.InstructOnWeekdays = false;
                }
                if (!row.IseveningsNull())
                {
                    instructor.InstructOnWeekdayNights = row.evenings.ToLower() == "yes" ? true : false;
                }
                else
                {
                    instructor.InstructOnWeekdayNights = false;
                }
                if (!row.IsweekendsNull())
                {
                    instructor.InstructOnWeekends = row.weekends.ToLower() == "yes" ? true : false;
                }
                else
                {
                    instructor.InstructOnWeekends = false;
                }
                instructor.Ratings = String.Empty;

                Login login = _dbContext.Logins.Where(l => l.MemberPIN == row.Instructor_MID).Include(l => l.ClubMember).FirstOrDefault();
                if (login == null)
                {
                    continue;
                }

                Member member = login.ClubMember.First();
                member.Roles.Add(instructorRole);
                instructor.Member = member;
                _dbContext.InstructorData.Add(instructor);

                _dbContext.SaveChanges();
            }
        }