コード例 #1
0
        public CMSResult SendAppNotification(OfflineTestPaperViewModel viewModel, List <ListOfPlayerId> listOfPlayerId, List <ListOfPlayerId> listOfStudentId,
                                             int offlineTestPaperId)
        {
            var cmsResult        = new CMSResult();
            var notificationList = new List <SendNotificationByPlayerId>();

            foreach (var playerId in listOfPlayerId)
            {
                var studentSId          = playerId.SId;
                var sendAppNotification = new SendNotificationByPlayerId
                {
                    Message = "OfflineTest-<br />" + viewModel.Title + " offline test paper on " + viewModel.TestDate.ToString("dd-MM-yyyy") + ", Total Marks - " + viewModel.TotalMarks +
                              "$^$" + playerId.SId + "@" + offlineTestPaperId,
                    PlayerIds  = playerId.ParentPlayerId,
                    AppIds     = ConfigurationManager.AppSettings[Common.Constants.ParentAppId],
                    RestApiKey = ConfigurationManager.AppSettings[Common.Constants.ParentRestAppId]
                };
                notificationList.Add(sendAppNotification);
            }
            foreach (var playerId in listOfStudentId)
            {
                var studentSId          = playerId.SId;
                var sendAppNotification = new SendNotificationByPlayerId
                {
                    Message = "OfflineTest-<br />" + viewModel.Title + " offline test paper on " + viewModel.TestDate.ToString("dd-MM-yyyy") + ", Total Marks - " + viewModel.TotalMarks +
                              "$^$" + playerId.SId + "@" + offlineTestPaperId,
                    PlayerIds  = playerId.ParentPlayerId,
                    AppIds     = ConfigurationManager.AppSettings[Common.Constants.StudentAppId],
                    RestApiKey = ConfigurationManager.AppSettings[Common.Constants.StudentRestAppId]
                };
                notificationList.Add(sendAppNotification);
            }
            var notification = notificationList.ToArray();

            if (notificationList.Count > 0)
            {
                HostingEnvironment.QueueBackgroundWorkItem(cancellationToken => _sendNotificationService.StartProcessingByPlayerId(notification, cancellationToken));
                cmsResult.Results.Add(new Result {
                    Message = "App Notification sent successfully.", IsSuccessful = true
                });
            }
            else
            {
                cmsResult.Results.Add(new Result {
                    Message = "No one is registered in parent app.", IsSuccessful = true
                });
            }

            return(cmsResult);
        }
コード例 #2
0
 public ActionResult Delete(OfflineTestPaperViewModel viewModel)
 {
     if (ModelState.IsValid)
     {
         var result = _offlineTestPaper.Delete(viewModel.OfflineTestPaperId);
         if (result.Success)
         {
             Success(result.Results.FirstOrDefault().Message);
             ModelState.Clear();
         }
         else
         {
             _logger.Warn(result.Results.FirstOrDefault().Message);
             Warning(result.Results.FirstOrDefault().Message, true);
         }
     }
     return(RedirectToAction("Index"));
 }
コード例 #3
0
        public ActionResult Edit(OfflineTestPaperViewModel viewModel)
        {
            var           cmsResult            = new CMSResult();
            List <string> listOfEmail          = new List <string>();
            List <string> listOfName           = new List <string>();
            List <string> listOfNumber         = new List <string>();
            var           finalParentPlayerId  = new List <ListOfPlayerId>();
            var           finalStudentPlayerId = new List <ListOfPlayerId>();

            if (viewModel.SMS)
            {
                viewModel.Media += ", SMS";
            }
            if (viewModel.AppNotification)
            {
                viewModel.Media += ", AppNotification";
            }
            if (ModelState.IsValid)
            {
                var offlineTests = _repository.Project <OfflineTestPaper, bool>(offlineTest => (from offline in offlineTest where offline.OfflineTestPaperId == viewModel.OfflineTestPaperId select offline).Any());

                if (!offlineTests)
                {
                    _logger.Warn(string.Format("Exam Schedule not exists '{0}'.", viewModel.Title));
                    Danger(string.Format("Exam Schedule not exists '{0}'.", viewModel.Title));
                }
                TimeSpan span = (Convert.ToDateTime(viewModel.TestOutTime) - Convert.ToDateTime(viewModel.TestInTime));
                if (viewModel.TestInTime != null && viewModel.TestOutTime != null && Convert.ToDateTime(viewModel.TestInTime).ToShortTimeString() != "12:00 AM" && Convert.ToDateTime(viewModel.TestOutTime).ToShortTimeString() != "12:00 AM" && viewModel.TestOutTime != null && !(span >= TimeSpan.FromMinutes(30) && span <= TimeSpan.FromHours(3)))
                {
                    cmsResult.Results.Add(new Result {
                        Message = "The time limit should be min lengh of (1/2 hr) & max length of  (3 hrs).", IsSuccessful = false
                    });
                }
                else
                {
                    string subject     = "Exam Schedule Update";
                    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))
                        {
                            if (viewModel.AppNotification)
                            {
                                if (student.parentAppPlayerId != "" && student.parentAppPlayerId != null)
                                {
                                    finalParentPlayerId.Add(new ListOfPlayerId
                                    {
                                        SId            = student.SId,
                                        ParentPlayerId = student.parentAppPlayerId
                                    });
                                }
                                if (student.studentAppPlayerId != "" && student.studentAppPlayerId != null)
                                {
                                    finalStudentPlayerId.Add(new ListOfPlayerId
                                    {
                                        SId            = student.SId,
                                        ParentPlayerId = student.studentAppPlayerId
                                    });
                                }
                            }

                            listOfEmail.Add(student.Email);
                            listOfName.Add(student.Name);
                            listOfNumber.Add(student.StudentContact);
                        }
                    }

                    int resultCount = cmsResult.Results.Where(x => x.IsSuccessful == true).Count();
                    if (resultCount > 0)
                    {
                        var result = _offlineTestPaper.Update(new OfflineTestPaper
                        {
                            OfflineTestPaperId = viewModel.OfflineTestPaperId,
                            TotalMarks         = viewModel.TotalMarks,
                            TestDate           = viewModel.TestDate,
                            TestInTime         = viewModel.TestInTime == null ? DateTime.Now.Date : Convert.ToDateTime(viewModel.TestInTime.Trim()),
                            TestOutTime        = viewModel.TestOutTime == null ? DateTime.Now.Date : Convert.ToDateTime(viewModel.TestOutTime.Trim()),
                            Title = viewModel.Title,
                            Media = viewModel.Media
                        });

                        if (result.Success)
                        {
                            var roleUserId = User.Identity.GetUserId();
                            var roles      = _aspNetRolesService.GetCurrentUserRole(roleUserId);
                            if (roles == "BranchAdmin")
                            {
                                var resultEmail = sendMailfromBranchAdmin(viewModel.Title, viewModel.Media);
                            }
                            cmsResult = SendNotificationToStudent(viewModel, subject, viewModel.OfflineTestPaperId, listOfEmail, listOfName, listOfNumber,
                                                                  finalParentPlayerId, finalStudentPlayerId);
                            var errorMessage = "";
                            foreach (var messageFailure in cmsResult.Results)
                            {
                                errorMessage += messageFailure.Message + "<br/>";
                            }
                            Success(result.Results.FirstOrDefault().Message + "<br />" + errorMessage);
                            ModelState.Clear();
                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            _logger.Warn(result.Results.FirstOrDefault().Message);
                            Warning(result.Results.FirstOrDefault().Message, true);
                        }
                    }
                }
            }
            return(View(viewModel));
        }
コード例 #4
0
        public JsonResult SendOffineTestPaperNotification(OfflineTestPaperViewModel viewModel)
        {
            var           cmsResult            = new CMSResult();
            List <string> listOfEmail          = new List <string>();
            List <string> listOfName           = new List <string>();
            List <string> listOfNumber         = new List <string>();
            var           finalParentPlayerId  = new List <ListOfPlayerId>();
            var           finalStudentPlayerId = new List <ListOfPlayerId>();

            if (ModelState.IsValid)
            {
                TimeSpan span = (Convert.ToDateTime(viewModel.TestOutTime) - Convert.ToDateTime(viewModel.TestInTime));
                if (viewModel.TestInTime != null && viewModel.TestOutTime != null && Convert.ToDateTime(viewModel.TestInTime).ToShortTimeString() != "12:00 AM" && Convert.ToDateTime(viewModel.TestOutTime).ToShortTimeString() != "12:00 AM" && viewModel.TestOutTime != null && !(span >= TimeSpan.FromMinutes(30) && span <= TimeSpan.FromHours(3)))
                {
                    cmsResult.Results.Add(new Result {
                        Message = "The time limit should be min lengh of (1/2 hr) & max length of  (3 hrs).", IsSuccessful = false
                    });
                }
                else
                {
                    string subject = "Exam Schedule Create";
                    try
                    {
                        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))
                            {
                                if (viewModel.AppNotification)
                                {
                                    if (student.parentAppPlayerId != "" && student.parentAppPlayerId != null)
                                    {
                                        finalParentPlayerId.Add(new ListOfPlayerId
                                        {
                                            SId            = student.SId,
                                            ParentPlayerId = student.parentAppPlayerId
                                        });
                                    }
                                    if (student.studentAppPlayerId != "" && student.studentAppPlayerId != null)
                                    {
                                        finalStudentPlayerId.Add(new ListOfPlayerId
                                        {
                                            SId            = student.SId,
                                            ParentPlayerId = student.studentAppPlayerId
                                        });
                                    }
                                }

                                listOfEmail.Add(student.Email);
                                listOfName.Add(student.Name);
                                listOfNumber.Add(student.StudentContact);
                            }
                        }

                        if (listOfNumber.Count > 0)
                        {
                            var offlineTestPaper = new OfflineTestPaper
                            {
                                OfflineTestPaperId = viewModel.OfflineTestPaperId,
                                Title            = viewModel.Title,
                                TestDate         = viewModel.TestDate,
                                TestInTime       = viewModel.TestInTime == null ? DateTime.Now.Date : Convert.ToDateTime(viewModel.TestInTime.Trim()),
                                TestOutTime      = viewModel.TestOutTime == null ? DateTime.Now.Date : Convert.ToDateTime(viewModel.TestOutTime.Trim()),
                                TotalMarks       = viewModel.TotalMarks,
                                SelectedBranches = viewModel.SelectedBranches,
                                SelectedBatches  = viewModel.SelectedBatches,
                                ClassId          = viewModel.ClassId,
                                SubjectId        = viewModel.SubjectId,
                                Media            = viewModel.Media
                            };
                            var result = _offlineTestPaper.Save(offlineTestPaper);

                            if (result.Success)
                            {
                                var offlineTestPaperId = offlineTestPaper.OfflineTestPaperId;
                                var roleUserId         = User.Identity.GetUserId();
                                var roles = _aspNetRolesService.GetCurrentUserRole(roleUserId);
                                if (roles == "BranchAdmin")
                                {
                                    var resultEmail = sendMailfromBranchAdmin(viewModel.Title, viewModel.Media);
                                }

                                cmsResult = SendNotificationToStudent(viewModel, subject, offlineTestPaperId, listOfEmail, listOfName, listOfNumber,
                                                                      finalParentPlayerId, finalStudentPlayerId);

                                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
                                });
                            }
                        }
                        else
                        {
                            cmsResult.Results.Add(new Result {
                                Message = "No student available please select another batch.", IsSuccessful = false
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.Error(ex.Message + "catch SendOffineTestPaperNotification");
                        throw;
                    }
                }
            }
            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));
        }
コード例 #5
0
        public CMSResult SendNotificationToStudent(OfflineTestPaperViewModel viewModel, string subject, int offlineTestPaperId, List <string> listOfEmail,
                                                   List <string> listOfName, List <string> listOfNumber, List <ListOfPlayerId> finalParentPlayerId, List <ListOfPlayerId> finalStudentPlayerId)
        {
            var cmsResult = new CMSResult();

            if (listOfEmail.Count > 0)
            {
                var result = SendEmail(listOfEmail.Distinct().ToList(), listOfName.Distinct().ToList(), viewModel.Title, viewModel.ClassName, viewModel.SubjectName, viewModel.SelectedBatchesName, viewModel.TestDate, viewModel.TotalMarks, subject);
                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());
                    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, finalParentPlayerId, finalStudentPlayerId, offlineTestPaperId);

                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
                    });
                }
            }

            return(cmsResult);
        }