private CompoundResultReading <decimal?> CreateTestReadingforaDecimalValue(CustomerEventReadingEntity testReadingEntity, int readingId, List <StandardFindingTestReadingEntity> standardFindingTestReadingEntities, decimal?value) { StandardFindingTestReadingEntity standardFindingTestReading = null; if (testReadingEntity.StandardFindingTestReadingId != null) { standardFindingTestReading = standardFindingTestReadingEntities.Find(standardFindingTestReadingEntity => (standardFindingTestReadingEntity.ReadingId == readingId) && (testReadingEntity.StandardFindingTestReadingId == standardFindingTestReadingEntity.StandardFindingTestReadingId) ); } var testReading = new CompoundResultReading <decimal?>(testReadingEntity.CustomerEventReadingId) { Label = (ReadingLabels)readingId, Reading = value, ReadingSource = testReadingEntity.IsManual ? ReadingSource.Manual : ReadingSource.Automatic, RecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = new OrganizationRoleUser(testReadingEntity.CreatedByOrgRoleUserId), DateCreated = testReadingEntity.CreatedOn, DataRecorderModifier = testReadingEntity.UpdatedByOrgRoleUserId.HasValue ? new OrganizationRoleUser(testReadingEntity.UpdatedByOrgRoleUserId.Value) : null, DateModified = testReadingEntity.UpdatedOn } }; decimal testReadingValue = 0; var allFindings = new TestResultService().GetAllStandardFindings <decimal?>((int)TestType.Hemoglobin, readingId); if (testReadingEntity.Value != null && decimal.TryParse(testReadingEntity.Value, out testReadingValue)) { var findings = (new TestResultService()).GetMultipleCalculatedStandardFinding(decimal.Round(testReadingValue, 1), (int)TestType.Hemoglobin, readingId); var finding = findings.FirstOrDefault(); if (findings.Count() == 1) { testReading.Finding = new StandardFinding <decimal?>(Convert.ToInt64(testReadingEntity.StandardFindingTestReadingId == null ? finding : standardFindingTestReading.StandardFindingId)); } else if (findings.Count() > 1) { var avFindings = allFindings.FindAll(f => f.Label.ToLower().IndexOf(_toCheckFor) == 0); finding = findings.FirstOrDefault(f => avFindings.Select(av => av.Id).Contains(f)); testReading.Finding = new StandardFinding <decimal?>(Convert.ToInt64(testReadingEntity.StandardFindingTestReadingId == null ? finding : standardFindingTestReading.StandardFindingId)); } } else if (testReadingEntity.StandardFindingTestReadingId != null) { testReading.Finding = new StandardFinding <decimal?>(standardFindingTestReading.StandardFindingId); } if (testReading.Finding != null) { testReading.Finding = allFindings.Find(standardFinding => standardFinding.Id == testReading.Finding.Id); } return(testReading); }
public async Task <ActionResult> ModeratorTopicTestResults(int?courseId, string userEmail) { try { // I. Checks. if (userEmail == null) { return(RedirectToAction("Login", "Account")); } string userId = UserService.FindUserIdByEmail(userEmail); // Check id. if (!int.TryParse(courseId.ToString(), out int intCourseId)) { return(RedirectToAction("Index")); } // II. Set ViewBag properties. ViewBag.UserName = (await UserService.GetAsync(userId)).UserName; // Get CourseDTO object. CourseDTO courseDTO = await CourseService.GetAsync(intCourseId); ViewBag.CourseTitle = courseDTO.CourseTitle; ViewBag.ParentId = intCourseId; ViewBag.Trainee = userEmail; // III. AutoMapper Setup. var config = new MapperConfiguration(cfg => { cfg.CreateMap <TestResultDTO, TestResultViewModel>() .ForMember("Id", opt => opt.MapFrom(tr => tr.TestResultId)) .ForMember("TestTitle", opt => opt.MapFrom(tr => tr.TestResultDetails.FirstOrDefault().Question.Topic.TopicTitle)) .ForMember(tr => tr.TestResultDetails, option => option.Ignore()) .ForMember(tr => tr.UserEmail, option => option.Ignore()); }); IMapper iMapper = config.CreateMapper(); //IV.Get data for a View. IEnumerable <TestResultDTO> testResultDTOs = TestResultService.Find(tr => tr.UserProfileId == userId && tr.IsTopicTest); IEnumerable <TestResultDTO> source = TestResultService.Find(tr => tr.UserProfileId == userId && tr.IsTopicTest) .Where(course => course.TestResultDetails.FirstOrDefault().Question.Topic.CourseId == intCourseId); //.ToList(); IEnumerable <TestResultViewModel> testResults = iMapper.Map <IEnumerable <TestResultDTO>, IEnumerable <TestResultViewModel> >(source).OrderBy(tr => tr.TestTitle); // V. Session["PreviousAction"] = "ModeratorTopicTestResults"; Session["UserEmail"] = userEmail; return(View(testResults)); } catch (Exception ex) { string innerException = string.Empty; if (ex.InnerException != null) { innerException = ex.InnerException.Message; } throw new Exception("Error!!! InnerException: " + innerException + "; " + ex.Message); } }
public async Task <ActionResult> ModeratorCourseTestResults(int?courseId, string userEmail) { try { // I. Checks. // Get course Id for the selected course and check User email. if (!int.TryParse(courseId.ToString(), out int intCourseId) && userEmail != null) { return(RedirectToAction("Index")); } // Get CourseDTO object. CourseDTO courseDTO = await CourseService.GetAsync(intCourseId); if (courseDTO == null) { return(RedirectToAction("Index")); } // II. Set ViewBag properties. ViewBag.CourseTitle = courseDTO.CourseTitle; ViewBag.ParentId = intCourseId; ViewBag.Trainee = userEmail; // III. AutoMapper Setup. var config = new MapperConfiguration(cfg => { cfg.CreateMap <TestResultDTO, TestResultViewModel>() .ForMember("Id", opt => opt.MapFrom(tr => tr.TestResultId)) .ForMember("TestTitle", opt => opt.MapFrom(tr => tr.TestResultDetails.FirstOrDefault().Question.Topic.Course.CourseTitle)) .ForMember("UserEmail", opt => opt.MapFrom(tr => tr.UserProfile.Email)); cfg.CreateMap <TestResultDetailDTO, TestResultDetailViewModel>() .ForMember("Question", opt => opt.MapFrom(trd => trd.Question.QuestionText)) .ForMember("Topic", opt => opt.MapFrom(trd => trd.Question.Topic.TopicTitle)); }); IMapper iMapper = config.CreateMapper(); // IV. Get data for a view. IEnumerable <SubscriptionDTO> courseSubscriptions = SubscriptionService.Find(dto => dto.CourseId == intCourseId && dto.Email == userEmail); IEnumerable <TestResultDTO> source = TestResultService.Find(tr => !tr.IsTopicTest) .Where(tr => tr.TestResultDetails.FirstOrDefault().Question.Topic.CourseId == intCourseId) .Join(courseSubscriptions, tr => tr.UserProfileId, cs => cs.UserProfileId, (tr, cs) => tr).Distinct(); //.ToList(); IEnumerable <TestResultViewModel> courseTestResults = iMapper.Map <IEnumerable <TestResultDTO>, IEnumerable <TestResultViewModel> >(source); // V. Session["PreviousAction"] = "ModeratorCourseTestResults"; Session["UserEmail"] = userEmail; return(View(courseTestResults)); } catch (Exception ex) { throw new Exception(ex.Message); } }
// GET: CourseTestResults public async Task <ActionResult> CourseTestResults(int?id) { try { // I. Checks. string currentUserId = System.Web.HttpContext.Current.User.Identity.GetUserId(); if (currentUserId == null) { return(RedirectToAction("Login", "Account")); } // Check id. if (!int.TryParse(id.ToString(), out int intId)) { return(RedirectToAction("Index")); } // Get CourseDTO object. CourseDTO courseDTO = await CourseService.GetAsync(intId); if (courseDTO == null) { return(RedirectToAction("Index")); } // II. Set ViewBag properties. ViewBag.UserName = (await UserService.GetAsync(currentUserId)).UserName; ViewBag.CourseTitle = courseDTO.CourseTitle; // III. AutoMapper Setup. var config = new MapperConfiguration(cfg => { cfg.CreateMap <TestResultDTO, TestResultViewModel>() .ForMember("Id", opt => opt.MapFrom(tr => tr.TestResultId)) .ForMember("TestTitle", opt => opt.MapFrom(tr => tr.TestResultDetails.FirstOrDefault().Question.Topic.Course.CourseTitle)) .ForMember(tr => tr.TestResultDetails, option => option.Ignore()) .ForMember(tr => tr.UserEmail, option => option.Ignore()); }); IMapper iMapper = config.CreateMapper(); // IV. Get data for a View. IEnumerable <TestResultDTO> source = TestResultService.Find(tr => tr.UserProfileId == currentUserId && !tr.IsTopicTest); //.ToList(); IEnumerable <TestResultViewModel> courseTestResultList = iMapper.Map <IEnumerable <TestResultDTO>, IEnumerable <TestResultViewModel> >(source) .Where(tr => tr.TestTitle == courseDTO.CourseTitle) .OrderBy(tr => tr.TestTitle); // V. Session["PreviousAction"] = "CourseTestResults"; Session["UserEmail"] = null; return(View(courseTestResultList)); } catch (Exception ex) { throw new Exception(ex.Message); } }
// GET: Index public async Task <ActionResult> Index() { try { // I. Checks. string currentUserId = System.Web.HttpContext.Current.User.Identity.GetUserId(); if (currentUserId == null) { return(RedirectToAction("Login", "Account")); } // II. AutoMapper Setup. var config = new MapperConfiguration(cfg => { cfg.CreateMap <CourseDTO, CourseViewModel>() .ForMember("Id", opt => opt.MapFrom(obj => obj.CourseId)) .ForMember("Name", opt => opt.MapFrom(obj => obj.CourseTitle)) .ForMember("IsSubscribed", opt => opt.MapFrom(course => course.Subscriptions.Where(subscription => currentUserId != null && subscription.UserProfileId == currentUserId && subscription.CourseId == course.CourseId && (DateTime.Now - subscription.StartDate < TimeSpan.FromDays(subscription.SubscriptionPeriod)) && subscription.IsApproved).Count() == 1)) .ForMember("IsInApproving", opt => opt.MapFrom(course => course.Subscriptions.Where(subscription => currentUserId != null && subscription.UserProfileId == currentUserId && subscription.CourseId == course.CourseId && (DateTime.Now - subscription.StartDate < TimeSpan.FromDays(subscription.SubscriptionPeriod)) && !subscription.IsApproved).Count() == 1)); cfg.CreateMap <TestResultDTO, TestResultViewModel>() .ForMember("Id", opt => opt.MapFrom(tr => tr.TestResultId)) .ForMember("TestTitle", opt => opt.MapFrom(tr => tr.TestResultDetails.FirstOrDefault().Question.Topic.Course.CourseTitle)) .ForMember(tr => tr.UserEmail, option => option.Ignore()); cfg.CreateMap <TestResultDetailDTO, TestResultDetailViewModel>() .ForMember("Question", opt => opt.MapFrom(trd => trd.Question.QuestionText)) .ForMember("Topic", opt => opt.MapFrom(trd => trd.Question.Topic.TopicTitle)); }); IMapper iMapper = config.CreateMapper(); // III. Set ViewBag properties. if (currentUserId != null) { ViewBag.UserName = (await UserService.GetAsync(currentUserId)).UserName; } IEnumerable <TestResultDTO> testResultDTOs = TestResultService.Find(tr => tr.UserProfileId == currentUserId && !tr.IsTopicTest); //.ToList(); IEnumerable <TestResultViewModel> userTestResults = iMapper.Map <IEnumerable <TestResultDTO>, IEnumerable <TestResultViewModel> >(testResultDTOs); ViewBag.UserTestResults = userTestResults; // IV. Get data for a view. IEnumerable <CourseDTO> source = CourseService.Find(dto => dto.IsApproved);//.ToList(); IEnumerable <CourseViewModel> courses = iMapper.Map <IEnumerable <CourseDTO>, IEnumerable <CourseViewModel> >(source); IEnumerable <CourseViewModel> courseOrderedList = courses.Where(course => course.IsSubscribed || course.IsFree) .OrderBy(course => course.Name) .OrderByDescending(course => course.IsSubscribed); // V. return(View(courseOrderedList)); } catch (Exception ex) { throw new Exception(ex.Message); } }
public override TestResult CreateActualTestResult(CustomerEventScreeningTestsEntity customerEventScreeningTestsEntity) { var customerEventReadingEntities = customerEventScreeningTestsEntity.CustomerEventReading.ToList(); var testResult = new FloChecABITestResult(customerEventScreeningTestsEntity.CustomerEventScreeningTestId) { LeftResultReadings = new FloChecABIReadings(), RightResultReadings = new FloChecABIReadings(), PencilDopplerUsed = this.CreateResultReading((int)ReadingLabels.PencilDopplerUsed, customerEventReadingEntities), RepeatStudy = this.CreateResultReading((int)ReadingLabels.RepeatStudy, customerEventReadingEntities) }; testResult.RightResultReadings.ABI = CreateResultReadingforNullableDecimal((int)ReadingLabels.RightABI, customerEventReadingEntities); testResult.LeftResultReadings.ABI = CreateResultReadingforNullableDecimal((int)ReadingLabels.LeftABI, customerEventReadingEntities); testResult.RightResultReadings.BFI = CreateResultReadingforNullableDecimal((int)ReadingLabels.RightHandBFI, customerEventReadingEntities); testResult.LeftResultReadings.BFI = CreateResultReadingforNullableDecimal((int)ReadingLabels.LeftHandBFI, customerEventReadingEntities); if (customerEventScreeningTestsEntity.TestMedia != null && customerEventScreeningTestsEntity.TestMedia.Count > 0) { var fileEntityCollection = customerEventScreeningTestsEntity.FileCollectionViaTestMedia.ToList(); var testMediaEntity = customerEventScreeningTestsEntity.TestMedia.FirstOrDefault(); testResult.ResultImage = new ResultMedia(testMediaEntity.MediaId) { File = GetFileObjectfromEntity(testMediaEntity.FileId, fileEntityCollection), Thumbnail = testMediaEntity.ThumbnailFileId != null ? new File(testMediaEntity.ThumbnailFileId.Value) : null, ReadingSource = testMediaEntity.IsManual ? ReadingSource.Manual : ReadingSource.Automatic }; } var standardFindings = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.FloChecABI); var standardFindingsLeftAbi = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.FloChecABI, (int)ReadingLabels.LeftABI); var standardFindingsRightAbi = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.FloChecABI, (int)ReadingLabels.RightABI); var testResultService = new TestResultService(); StandardFinding <decimal> leftResultFinding, rightResultFinding; leftResultFinding = rightResultFinding = null; if (standardFindings == null || standardFindings.Count < 1) { standardFindings = standardFindingsLeftAbi; } int findingId = 0; if (testResult.LeftResultReadings.ABI != null) { findingId = testResultService.GetCalculatedStandardFinding(testResult.LeftResultReadings.ABI.Reading, (int)TestType.FloChecABI, standardFindingsLeftAbi != null && standardFindingsLeftAbi.Count() > 0 ? (int?)ReadingLabels.LeftABI : null); leftResultFinding = standardFindings.Where(f => f.Id == findingId).SingleOrDefault(); } if (testResult.RightResultReadings.ABI != null) { findingId = testResultService.GetCalculatedStandardFinding(testResult.RightResultReadings.ABI.Reading, (int)TestType.FloChecABI, standardFindingsRightAbi != null && standardFindingsRightAbi.Count() > 0 ? (int?)ReadingLabels.RightABI : null); rightResultFinding = standardFindings.Where(f => f.Id == findingId).SingleOrDefault(); } if (standardFindingsLeftAbi == null || standardFindingsLeftAbi.Count() < 1) { var customerEventTestStandardFindingEntity = customerEventScreeningTestsEntity.CustomerEventTestStandardFinding.FirstOrDefault(); if (customerEventTestStandardFindingEntity != null) { var standardFindingTestReadingEntity = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventTestStandardFinding.LastOrDefault(); var standardFindingEntity = standardFindings.ToList().FindAll(standardFinding => standardFinding.Id == standardFindingTestReadingEntity.StandardFindingId).FirstOrDefault(); if (standardFindingEntity != null) { testResult.Finding = new StandardFinding <decimal>(standardFindingEntity.Id) { CustomerEventStandardFindingId = customerEventTestStandardFindingEntity.CustomerEventTestStandardFindingId, Label = standardFindingEntity.Label, MaxValue = Convert.ToInt32(standardFindingEntity.MaxValue), MinValue = Convert.ToInt32(standardFindingEntity.MinValue) }; } } else { testResult.Finding = GetFindingToConsider(leftResultFinding, rightResultFinding); if (testResult.Finding != null) { var standardFinding = standardFindings.Find(finding => finding.Id == testResult.Finding.Id); if (standardFinding != null) { testResult.Finding = standardFinding; } } } } else { var testReadingLAbiReading = customerEventReadingEntities.Where(customerEventReading => customerEventReading.TestReading.ReadingId == (int)ReadingLabels.LeftABI).SingleOrDefault(); var testReadingRAbiReading = customerEventReadingEntities.Where(customerEventReading => customerEventReading.TestReading.ReadingId == (int)ReadingLabels.RightABI).SingleOrDefault(); if (testReadingLAbiReading != null && testReadingLAbiReading.StandardFindingTestReadingId != null) { var standardFindingReadingEntity = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventReading.ToList().Find(stdFindingTestReading => stdFindingTestReading.TestId == (int)TestType.FloChecABI && stdFindingTestReading.ReadingId == (int)ReadingLabels.LeftABI); if (standardFindingReadingEntity != null) { testResult.LeftResultReadings.Finding = new StandardFinding <decimal>(standardFindingReadingEntity.StandardFindingId); } } else if (leftResultFinding != null) { testResult.LeftResultReadings.Finding = leftResultFinding; } if (testResult.LeftResultReadings.Finding != null) { testResult.LeftResultReadings.Finding = standardFindings.Where(sf => sf.Id == testResult.LeftResultReadings.Finding.Id).SingleOrDefault(); } //----------------------------------------------------------------------------------- if (testReadingRAbiReading != null && testReadingRAbiReading.StandardFindingTestReadingId != null) { var standardFindingReadingEntity = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventReading.ToList().Find(stdFindingTestReading => stdFindingTestReading.TestId == (int)TestType.FloChecABI && stdFindingTestReading.ReadingId == (int)ReadingLabels.RightABI); if (standardFindingReadingEntity != null) { testResult.RightResultReadings.Finding = new StandardFinding <decimal>(standardFindingReadingEntity.StandardFindingId); } } else if (rightResultFinding != null) { testResult.RightResultReadings.Finding = rightResultFinding; } if (testResult.RightResultReadings.Finding != null) { testResult.RightResultReadings.Finding = standardFindings.Where(sf => sf.Id == testResult.RightResultReadings.Finding.Id).SingleOrDefault(); } } return(testResult); }
public override TestResult CreateActualTestResult(CustomerEventScreeningTestsEntity customerEventScreeningTestsEntity) { var customerEventReadingEntities = customerEventScreeningTestsEntity.CustomerEventReading.ToList(); var testResult = new PADTestResult(customerEventScreeningTestsEntity.CustomerEventScreeningTestId) { LeftResultReadings = new PadTestReadings(), RightResultReadings = new PadTestReadings(), PressureReadings = new CardiovisionPressureReadings(), SystolicHighestArm = this.CreateResultReadingforNullableInt((int)ReadingLabels.SystolicHighestArm, customerEventReadingEntities), PencilDopplerUsed = this.CreateResultReading((int)ReadingLabels.PencilDopplerUsed, customerEventReadingEntities), RepeatStudy = this.CreateResultReading((int)ReadingLabels.RepeatStudy, customerEventReadingEntities) }; testResult.RightResultReadings.SystolicArm = CreateResultReadingforNullableInt((int)ReadingLabels.SystolicRArm, customerEventReadingEntities); testResult.RightResultReadings.SystolicAnkle = CreateResultReadingforNullableInt((int)ReadingLabels.SystolicRAnkle, customerEventReadingEntities); testResult.RightResultReadings.ABI = CreateResultReadingforNullableDecimal((int)ReadingLabels.RightABI, customerEventReadingEntities); testResult.RightResultReadings.UnabletoOcclude = this.CreateResultReading((int)ReadingLabels.RightUnabletoOcclude, customerEventReadingEntities); testResult.LeftResultReadings.SystolicArm = CreateResultReadingforNullableInt((int)ReadingLabels.SystolicLArm, customerEventReadingEntities); testResult.LeftResultReadings.SystolicAnkle = CreateResultReadingforNullableInt((int)ReadingLabels.SystolicLAnkle, customerEventReadingEntities); testResult.LeftResultReadings.ABI = CreateResultReadingforNullableDecimal((int)ReadingLabels.LeftABI, customerEventReadingEntities); testResult.LeftResultReadings.UnabletoOcclude = this.CreateResultReading((int)ReadingLabels.LeftUnabletoOcclude, customerEventReadingEntities); var standardFindings = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.PAD); var standardFindingsLeftAbi = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.PAD, (int)ReadingLabels.LeftABI); var standardFindingsRightAbi = new TestResultService().GetAllStandardFindings <decimal>((int)TestType.PAD, (int)ReadingLabels.RightABI); var testResultService = new TestResultService(); StandardFinding <decimal> leftResultFinding, rightResultFinding; leftResultFinding = rightResultFinding = null; if (standardFindings == null || standardFindings.Count < 1) { standardFindings = standardFindingsLeftAbi; } int findingId = 0; if (testResult.LeftResultReadings.ABI != null) { findingId = testResultService.GetCalculatedStandardFinding(testResult.LeftResultReadings.ABI.Reading, (int)TestType.PAD, standardFindingsLeftAbi != null && standardFindingsLeftAbi.Count() > 0 ? (int?)ReadingLabels.LeftABI : null); leftResultFinding = standardFindings.Where(f => f.Id == findingId).SingleOrDefault(); } if (testResult.RightResultReadings.ABI != null) { findingId = testResultService.GetCalculatedStandardFinding(testResult.RightResultReadings.ABI.Reading, (int)TestType.PAD, standardFindingsRightAbi != null && standardFindingsRightAbi.Count() > 0 ? (int?)ReadingLabels.RightABI : null); rightResultFinding = standardFindings.Where(f => f.Id == findingId).SingleOrDefault(); } if (standardFindingsLeftAbi == null || standardFindingsLeftAbi.Count() < 1) { var customerEventTestStandardFindingEntity = customerEventScreeningTestsEntity.CustomerEventTestStandardFinding.FirstOrDefault(); if (customerEventTestStandardFindingEntity != null) { var standardFindingTestReadingEntity = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventTestStandardFinding.LastOrDefault(); var standardFindingEntity = standardFindings.ToList().FindAll(standardFinding => standardFinding.Id == standardFindingTestReadingEntity.StandardFindingId).FirstOrDefault(); if (standardFindingEntity != null) { testResult.Finding = new StandardFinding <decimal>(standardFindingEntity.Id) { CustomerEventStandardFindingId = customerEventTestStandardFindingEntity.CustomerEventTestStandardFindingId, Label = standardFindingEntity.Label, MaxValue = Convert.ToInt32(standardFindingEntity.MaxValue), MinValue = Convert.ToInt32(standardFindingEntity.MinValue) }; } } else { testResult.Finding = GetFindingToConsider(leftResultFinding, rightResultFinding); if (testResult.Finding != null) { var standardFinding = standardFindings.Find(finding => finding.Id == testResult.Finding.Id); if (standardFinding != null) { testResult.Finding = standardFinding; } } } } else { var testReadingLAbiReading = customerEventReadingEntities.Where(customerEventReading => customerEventReading.TestReading.ReadingId == (int)ReadingLabels.LeftABI).SingleOrDefault(); var testReadingRAbiReading = customerEventReadingEntities.Where(customerEventReading => customerEventReading.TestReading.ReadingId == (int)ReadingLabels.RightABI).SingleOrDefault(); if (testReadingLAbiReading != null && testReadingLAbiReading.StandardFindingTestReadingId != null) { var standardFindingReadingEntity = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventReading.ToList().Find(stdFindingTestReading => stdFindingTestReading.TestId == (int)TestType.PAD && stdFindingTestReading.ReadingId == (int)ReadingLabels.LeftABI); if (standardFindingReadingEntity != null) { testResult.LeftResultReadings.Finding = new StandardFinding <decimal>(standardFindingReadingEntity.StandardFindingId); } } else if (leftResultFinding != null) { testResult.LeftResultReadings.Finding = leftResultFinding; } if (testResult.LeftResultReadings.Finding != null) { testResult.LeftResultReadings.Finding = standardFindings.Where(sf => sf.Id == testResult.LeftResultReadings.Finding.Id).SingleOrDefault(); } //----------------------------------------------------------------------------------- if (testReadingRAbiReading != null && testReadingRAbiReading.StandardFindingTestReadingId != null) { var standardFindingReadingEntity = customerEventScreeningTestsEntity.StandardFindingTestReadingCollectionViaCustomerEventReading.ToList().Find(stdFindingTestReading => stdFindingTestReading.TestId == (int)TestType.PAD && stdFindingTestReading.ReadingId == (int)ReadingLabels.RightABI); if (standardFindingReadingEntity != null) { testResult.RightResultReadings.Finding = new StandardFinding <decimal>(standardFindingReadingEntity.StandardFindingId); } } else if (rightResultFinding != null) { testResult.RightResultReadings.Finding = rightResultFinding; } if (testResult.RightResultReadings.Finding != null) { testResult.RightResultReadings.Finding = standardFindings.Where(sf => sf.Id == testResult.RightResultReadings.Finding.Id).SingleOrDefault(); } } return(testResult); }
// Course topics list. public async Task <ActionResult> CourseTopics(int?id) { try { // I.Checks. // Check id. if (!int.TryParse(id.ToString(), out int intId)) { return(RedirectToAction("Index")); } // Get courseDTO object. CourseDTO courseDTO = await CourseService.GetAsync(intId); if (courseDTO == null) { return(RedirectToAction("Index")); } // II. AutoMapper Setup. var config = new MapperConfiguration(cfg => { cfg.CreateMap <TestResultDTO, TestResultViewModel>() .ForMember("Id", opt => opt.MapFrom(tr => tr.TestResultId)) .ForMember("TestTitle", opt => opt.MapFrom(tr => tr.TestResultDetails.FirstOrDefault().Question.Topic.TopicTitle)); cfg.CreateMap <TestResultDetailDTO, TestResultDetailViewModel>() .ForMember("Question", opt => opt.MapFrom(trd => trd.Question.QuestionText)) .ForMember("Topic", opt => opt.MapFrom(trd => trd.Question.Topic.TopicTitle)); cfg.CreateMap <TopicDTO, TopicViewModel>() .ForMember("ID", opt => opt.MapFrom(obj => obj.TopicId)) .ForMember("Name", opt => opt.MapFrom(obj => obj.TopicTitle)); }); IMapper iMapper = config.CreateMapper(); // III. Set ViewBag properties. // Get a role name for the current user. string currentUserId = System.Web.HttpContext.Current.User.Identity.GetUserId(); if (currentUserId != null) { ViewBag.RoleName = UserService.FindUserRoleById(currentUserId); } else { ViewBag.RoleName = null; } // Check: is this user subscribed to this course? SubscriptionDTO activeSubscription = SubscriptionService.Find(obj => obj.UserProfileId == currentUserId && obj.CourseId == intId && (DateTime.Now - obj.StartDate < TimeSpan.FromDays(obj.SubscriptionPeriod))) .FirstOrDefault(); ViewBag.IsInApproving = false; ViewBag.IsSubscribed = false; if (activeSubscription != null) { if (activeSubscription.IsApproved) { ViewBag.IsSubscribed = true; } else { ViewBag.IsInApproving = true; } } ViewBag.ParentId = intId; ViewBag.CourseName = courseDTO.CourseTitle; ViewBag.ParentParentId = courseDTO.SpecialityId; IEnumerable <TestResultDTO> testResultDTOs = TestResultService.Find(tr => tr.UserProfileId == currentUserId && tr.IsTopicTest); IEnumerable <TestResultViewModel> userTestResults = iMapper.Map <IEnumerable <TestResultDTO>, IEnumerable <TestResultViewModel> >(testResultDTOs); ViewBag.UserTestResults = userTestResults; ViewBag.AttemptsNumber = courseDTO.AttemptsNumber; // IV. Get data for a view. List <TopicDTO> source = TopicService.Find(dto => dto.CourseId == intId).OrderBy(o => o.TopicNumber).ToList(); IEnumerable <TopicViewModel> topicOrderedList = iMapper.Map <IEnumerable <TopicDTO>, IEnumerable <TopicViewModel> >(source); // VI. return(View(topicOrderedList)); } catch (Exception ex) { throw new Exception(ex.Message); } }
// Speciality courses list. public async Task <ActionResult> SpecialityCourses(int?id) { try { // I.Checks. // Check id. if (!int.TryParse(id.ToString(), out int intId)) { return(RedirectToAction("Index")); } // Get SpecialityDTO object. SpecialityDTO specialityDTO = await SpecialityService.GetAsync(intId); if (specialityDTO == null) { return(RedirectToAction("Index")); } // II. AutoMapper Setup. // Get Id for the current user. string currentUserId = System.Web.HttpContext.Current.User.Identity.GetUserId(); var config = new MapperConfiguration(cfg => { cfg.CreateMap <CourseDTO, CourseViewModel>() .ForMember("Id", opt => opt.MapFrom(obj => obj.CourseId)) .ForMember("Name", opt => opt.MapFrom(obj => obj.CourseTitle)) .ForMember("IsSubscribed", opt => opt.MapFrom(course => course.Subscriptions.Where(subscription => currentUserId != null && subscription.UserProfileId == currentUserId && subscription.CourseId == course.CourseId && (DateTime.Now - subscription.StartDate < TimeSpan.FromDays(subscription.SubscriptionPeriod)) && subscription.IsApproved).Count() == 1)) .ForMember("IsInApproving", opt => opt.MapFrom(course => course.Subscriptions.Where(subscription => currentUserId != null && subscription.UserProfileId == currentUserId && subscription.CourseId == course.CourseId && (DateTime.Now - subscription.StartDate < TimeSpan.FromDays(subscription.SubscriptionPeriod)) && !subscription.IsApproved).Count() == 1)); cfg.CreateMap <TestResultDTO, TestResultViewModel>() .ForMember("Id", opt => opt.MapFrom(tr => tr.TestResultId)) .ForMember("TestTitle", opt => opt.MapFrom(tr => tr.TestResultDetails.FirstOrDefault().Question.Topic.Course.CourseTitle)); cfg.CreateMap <TestResultDetailDTO, TestResultDetailViewModel>() .ForMember("Question", opt => opt.MapFrom(trd => trd.Question.QuestionText)) .ForMember("Topic", opt => opt.MapFrom(trd => trd.Question.Topic.TopicTitle)); }); IMapper iMapper = config.CreateMapper(); // III. Set ViewBag properties. // Get a role name for the current user. if (currentUserId != null) { ViewBag.RoleName = UserService.FindUserRoleById(currentUserId); } else { ViewBag.RoleName = null; } ViewBag.ParentId = intId; ViewBag.SpecialityName = specialityDTO.SpecialityName; ViewBag.ParentParentId = specialityDTO.SubjectId; IEnumerable <TestResultDTO> testResultDTOs = TestResultService.Find(tr => tr.UserProfileId == currentUserId && !tr.IsTopicTest); IEnumerable <TestResultViewModel> userTestResults = iMapper.Map <IEnumerable <TestResultDTO>, IEnumerable <TestResultViewModel> >(testResultDTOs); ViewBag.UserTestResults = userTestResults; // IV. Get data for a view. IEnumerable <CourseDTO> source = CourseService.Find(dto => dto.SpecialityId == intId && dto.IsApproved) .OrderBy(o => o.CourseTitle).OrderByDescending(o => o.IsFree); IEnumerable <CourseViewModel> courseOrderedList = iMapper.Map <IEnumerable <CourseDTO>, IEnumerable <CourseViewModel> >(source); // V. return(View(courseOrderedList)); } catch (Exception ex) { throw new Exception(ex.Message); } }