public ActionResult GivenCertificateDetails(string givenCertificateIdentificator) { var givenCertificate = _context.givenCertificateRepository.GetGivenCertificateById(givenCertificateIdentificator); var certificate = _context.certificateRepository.GetCertificateById(givenCertificate.Certificate); var user = _context.userRepository.GetUserByGivenCertificateId(givenCertificate.GivenCertificateIdentificator); var companies = _context.companyRepository.GetCompaniesById(user.CompanyRoleManager.Concat(user.CompanyRoleWorker).Distinct().ToList()); var course = _context.courseRepository.GetCourseById(givenCertificate.Course); var meetings = _context.meetingRepository.GetMeetingsById(course.Meetings); List <string> instructorsIdentificators = new List <string>(); meetings.ToList().ForEach(z => z.Instructors.ToList().ForEach(s => instructorsIdentificators.Add(s))); instructorsIdentificators.Distinct(); var instructors = _context.userRepository.GetInstructorsById(instructorsIdentificators); DisplayCourseViewModel courseViewModel = _mapper.Map <DisplayCourseViewModel>(course); courseViewModel.Branches = _context.branchRepository.GetBranchesById(courseViewModel.Branches); List <DisplayMeetingWithoutCourseViewModel> meetingsViewModel = new List <DisplayMeetingWithoutCourseViewModel>(); foreach (var meeting in meetings) { DisplayMeetingWithoutCourseViewModel singleMeeting = _mapper.Map <DisplayMeetingWithoutCourseViewModel>(meeting); singleMeeting.Instructors = _mapper.Map <List <DisplayCrucialDataUserViewModel> >(instructors.Where(z => meeting.Instructors.Contains(z.Id)).ToList()); meetingsViewModel.Add(singleMeeting); } List <DisplayCompanyViewModel> companiesViewModel = _mapper.Map <List <DisplayCompanyViewModel> >(companies); DisplayAllUserInformationViewModel userViewModel = _mapper.Map <DisplayAllUserInformationViewModel>(user); userViewModel.Roles = _context.userRepository.TranslateRoles(userViewModel.Roles); List <DisplayCrucialDataWithContactUserViewModel> instructorsViewModel = _mapper.Map <List <DisplayCrucialDataWithContactUserViewModel> >(instructors); DisplayCertificateViewModel certificateViewModel = _mapper.Map <DisplayCertificateViewModel>(certificate); certificateViewModel.Branches = _context.branchRepository.GetBranchesById(certificateViewModel.Branches); GivenCertificateDetailsViewModel verifiedGivenCertificate = new GivenCertificateDetailsViewModel(); verifiedGivenCertificate.GivenCertificate = _mapper.Map <DisplayGivenCertificateToUserWithoutCourseExtendedViewModel>(givenCertificate); verifiedGivenCertificate.GivenCertificate.Certificate = certificateViewModel; verifiedGivenCertificate.Course = courseViewModel; verifiedGivenCertificate.Meetings = meetingsViewModel; verifiedGivenCertificate.User = userViewModel; verifiedGivenCertificate.Instructors = instructorsViewModel; verifiedGivenCertificate.Companies = companiesViewModel; return(View(verifiedGivenCertificate)); }
public ActionResult VerifyGivenCertificate(string givenCertificateIdentificator, bool anonymousVerification = true) { try { ObjectId.Parse(givenCertificateIdentificator); } catch (System.Exception) { return(BadRequest("Błędny format identyfikatora")); } var givenCertificate = _context.givenCertificateRepository.GetGivenCertificateById(givenCertificateIdentificator); if (givenCertificate != null) { var certificate = _context.certificateRepository.GetCertificateById(givenCertificate.Certificate); var user = _context.userRepository.GetUserByGivenCertificateId(givenCertificate.GivenCertificateIdentificator); var companies = _context.companyRepository.GetCompaniesById(user.CompanyRoleManager.Concat(user.CompanyRoleWorker).Distinct().ToList()); if (anonymousVerification) { List <DisplayCompanyViewModel> companiesViewModel = _mapper.Map <List <DisplayCompanyViewModel> >(companies); DisplayCrucialDataWithBirthDateUserViewModel userViewModel = _mapper.Map <DisplayCrucialDataWithBirthDateUserViewModel>(user); DisplayCrucialDataCertificateViewModel certificateViewModel = _mapper.Map <DisplayCrucialDataCertificateViewModel>(certificate); GivenCertificateDetailsForAnonymousViewModel verifiedGivenCertificate = new GivenCertificateDetailsForAnonymousViewModel(); verifiedGivenCertificate.GivenCertificate = _mapper.Map <DisplayGivenCertificateToUserWithoutCourseViewModel>(givenCertificate); verifiedGivenCertificate.GivenCertificate.Certificate = certificateViewModel; verifiedGivenCertificate.User = userViewModel; verifiedGivenCertificate.Companies = companiesViewModel; return(Ok(verifiedGivenCertificate)); } else { var course = _context.courseRepository.GetCourseById(givenCertificate.Course); var meetings = _context.meetingRepository.GetMeetingsById(course.Meetings); List <string> instructorsIdentificators = new List <string>(); meetings.ToList().ForEach(z => z.Instructors.ToList().ForEach(s => instructorsIdentificators.Add(s))); instructorsIdentificators.Distinct(); var instructors = _context.userRepository.GetInstructorsById(instructorsIdentificators); DisplayCourseViewModel courseViewModel = _mapper.Map <DisplayCourseViewModel>(course); courseViewModel.Branches = _context.branchRepository.GetBranchesById(courseViewModel.Branches); List <DisplayMeetingWithoutCourseViewModel> meetingsViewModel = new List <DisplayMeetingWithoutCourseViewModel>(); foreach (var meeting in meetings) { DisplayMeetingWithoutCourseViewModel singleMeeting = _mapper.Map <DisplayMeetingWithoutCourseViewModel>(meeting); singleMeeting.Instructors = _mapper.Map <List <DisplayCrucialDataUserViewModel> >(instructors.Where(z => meeting.Instructors.Contains(z.Id)).ToList()); meetingsViewModel.Add(singleMeeting); } List <DisplayCompanyViewModel> companiesViewModel = _mapper.Map <List <DisplayCompanyViewModel> >(companies); DisplayAllUserInformationViewModel userViewModel = _mapper.Map <DisplayAllUserInformationViewModel>(user); userViewModel.Roles = _context.userRepository.TranslateRoles(userViewModel.Roles); List <DisplayCrucialDataWithContactUserViewModel> instructorsViewModel = _mapper.Map <List <DisplayCrucialDataWithContactUserViewModel> >(instructors); DisplayCertificateViewModel certificateViewModel = _mapper.Map <DisplayCertificateViewModel>(certificate); certificateViewModel.Branches = _context.branchRepository.GetBranchesById(certificateViewModel.Branches); GivenCertificateDetailsViewModel verifiedGivenCertificate = new GivenCertificateDetailsViewModel(); verifiedGivenCertificate.GivenCertificate = _mapper.Map <DisplayGivenCertificateToUserWithoutCourseExtendedViewModel>(givenCertificate); verifiedGivenCertificate.GivenCertificate.Certificate = certificateViewModel; verifiedGivenCertificate.Course = courseViewModel; verifiedGivenCertificate.Meetings = meetingsViewModel; verifiedGivenCertificate.User = userViewModel; verifiedGivenCertificate.Instructors = instructorsViewModel; verifiedGivenCertificate.Companies = companiesViewModel; return(Ok(verifiedGivenCertificate)); } } else { return(BadRequest("Certyfikat nie został odnaleziony")); } }