Example #1
0
        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));
        }