public CMSResult SaveArrengeTest(ArrengeTest newArrengeTest) { CMSResult cmsresult = new CMSResult(); //var isExists = _repository.Project<ArrengeTest, bool>( // arrengeTestests => (from t in arrengeTestests // where t.TestPaperId == newArrengeTest.TestPaperId && t.SelectedBatches == newArrengeTest.SelectedBatches // && t.SelectedBranches == newArrengeTest.SelectedBranches // select t).Any()); //if (isExists) //{ // cmsresult.Results.Add(new Result("Test already Arrenge for this batch!", false)); //} //else //{ _repository.Add(newArrengeTest); _repository.CommitChanges(); cmsresult.Results.Add(new Result("Test Arrenge added successfully!", true)); // } return(cmsresult); }
public JsonResult SendTestPaper(TestPaperDeleteViewModel viewModel) { var cmsResult = new CMSResult(); int studentCount = 0; List <string> listOfEmail = new List <string>(); List <string> listOfName = new List <string>(); List <string> listOfNumber = new List <string>(); List <ListOfPlayerId> listOfParentPlayerId = new List <ListOfPlayerId>(); List <ListOfPlayerId> listOfStudentPlayerId = new List <ListOfPlayerId>(); List <string> listOfStudentBatch = new List <string>(); if (ModelState.IsValid) { var studentList = _studentService.GetStudentByBranchClassBatchForTestPaper(viewModel.SelectedBranches, viewModel.ClassId.ToString(), viewModel.SelectedBatches); var batchIds = viewModel.SelectedBatches.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(int.Parse).ToList(); var batch = _repository.LoadList <Batch>(x => batchIds.Contains(x.BatchId)); foreach (var student in studentList) { if (batchIds.Contains(student.BatchId)) { listOfEmail.Add(student.Email); listOfName.Add(student.Name); listOfNumber.Add(student.StudentContact); listOfStudentPlayerId.Add(new ListOfPlayerId { SId = student.SId, ParentPlayerId = student.studentAppPlayerId }); //listOfParentPlayerId.Add(new ListOfPlayerId //{ // SId = student.SId, // ParentPlayerId = student.parentAppPlayerId //}); listOfStudentBatch.Add(student.BatchName); } } listOfParentPlayerId = listOfParentPlayerId.Where(s => !string.IsNullOrWhiteSpace(s.ParentPlayerId)).ToList(); listOfStudentPlayerId = listOfStudentPlayerId.Where(s => !string.IsNullOrWhiteSpace(s.ParentPlayerId)).ToList(); var numberOfStudent = (viewModel.Email ? listOfEmail.Distinct().ToList().Count : 0) + (viewModel.SMS ? listOfNumber.Distinct().ToList().Count : 0) + listOfParentPlayerId.Count + listOfStudentPlayerId.Count; int arrangeTestId = 0; studentCount = listOfEmail.Distinct().ToList().Count; if (numberOfStudent > 0) { try { var arrangeTest = new ArrengeTest { TestPaperId = viewModel.TestPaperId, SelectedBranches = viewModel.SelectedBranches != null ? viewModel.SelectedBranches : "", SelectedBatches = viewModel.SelectedBatches != null ? viewModel.SelectedBatches : "", StudentCount = studentCount, Media = viewModel.Media, Date = viewModel.Date, StartTime = Convert.ToDateTime(viewModel.StartTime), TimeDuration = viewModel.TimeDuration }; var result = _testPaperService.SaveArrengeTest(arrangeTest); if (result.Success) { arrangeTestId = arrangeTest.ArrengeTestId; var resultTest = _testPaperService.UpdateTestStatus(new TestPaper { TestPaperId = viewModel.TestPaperId }); } else { cmsResult.Results.Add(new Result { Message = result.Results[0].Message, IsSuccessful = false }); } } catch (Exception ex) { _logger.Error(ex.Message + "catch SendTestPaper"); } } if (listOfName.Count > 0) { if (viewModel.Email) { if (listOfEmail.Count > 0) { var result = SendEmail(listOfEmail.Distinct().ToList(), listOfName.Distinct().ToList(), viewModel, listOfStudentBatch); studentCount = listOfEmail.Distinct().Count(); if (result == true) { cmsResult.Results.Add(new Result { Message = "Email sent successfully.", IsSuccessful = true }); } else { cmsResult.Results.Add(new Result { Message = "Something went wrong to send email.", IsSuccessful = false }); } } } if (viewModel.SMS) { if (listOfNumber.Count > 0) { var result = SendSMS(viewModel.Title, listOfNumber.Distinct().ToList()); studentCount = listOfNumber.Distinct().Count(); if (result.Success) { cmsResult.Results.Add(new Result { Message = result.Results[0].Message, IsSuccessful = true }); } else { cmsResult.Results.Add(new Result { Message = result.Results[0].Message, IsSuccessful = false }); } } } if (viewModel.AppNotification) { var response = SendAppNotification(viewModel, listOfParentPlayerId, listOfStudentPlayerId, arrangeTestId); studentCount = listOfParentPlayerId.Distinct().Count(); studentCount = listOfStudentPlayerId.Distinct().Count(); if (response.Success) { cmsResult.Results.Add(new Result { Message = response.Results[0].Message, IsSuccessful = true }); } else { cmsResult.Results.Add(new Result { Message = response.Results[0].Message, IsSuccessful = false }); } } } else { cmsResult.Results.Add(new Result { Message = "No student available please select another batch.", IsSuccessful = false }); } int resultCount = cmsResult.Results.Where(x => x.IsSuccessful == true).Count(); } else { var errors = ModelState.Values.SelectMany(x => x.Errors).ToArray(); foreach (var item in errors) { cmsResult.Results.Add(new Result { Message = item.ErrorMessage, IsSuccessful = false }); } } return(Json(cmsResult, JsonRequestBehavior.AllowGet)); }