public ActionResult AnonymouslyVerificationOfGivenCertificate(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());

            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(View(verifiedGivenCertificate));
        }
Exemple #2
0
        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"));
            }
        }