Exemple #1
0
        public string PostCreateAssessment(PostAssessmentModal postAssessmentModal, Guid AssessmentId)
        {
            var result = ObjAssessMentDAL.PostCreateAssessment(postAssessmentModal, AssessmentId);

            //Need to send notification emails based on the selection.

            return(result);
        }
Exemple #2
0
 public string PostCreateAssessment(PostAssessmentModal postAssessmentModal)
 {
     try
     {
         var newAssessemntGuid = Guid.NewGuid();
         //Need to send notification emails based on the selection.
         string result = ObjAssessmentBll.PostCreateAssessment(postAssessmentModal, newAssessemntGuid);
         if (result.ToUpper() == "SUCCESS")
         {
             result = Convert.ToString(newAssessemntGuid);
         }
         return(result);
     }
     catch (Exception ex)
     {
         return("Failed");
     }
 }
Exemple #3
0
        public string PostCreateAssessment(PostAssessmentModal postAssessmentModal, Guid AssessmentId)
        {
            string result = "Failed";

            dateTime = DateTime.UtcNow.AddHours(5).AddMinutes(30);
            try
            {
                using (DBEntities TestEngineDBContext = new DBEntities())
                {
                    var assesmentDetailMaster = new DataAccess.AssessmentDetailMaster();
                    assesmentDetailMaster.AssessmentName         = postAssessmentModal.AssessmentName;
                    assesmentDetailMaster.ID                     = AssessmentId;
                    assesmentDetailMaster.CreatedDate            = dateTime;
                    assesmentDetailMaster.IsBrowserLock          = postAssessmentModal.IsBrowserLockEnabled;
                    assesmentDetailMaster.IsPrintScreenLock      = postAssessmentModal.IsPrintScreenLockEnabled;
                    assesmentDetailMaster.IsDeleted              = false;
                    assesmentDetailMaster.ModifiedDate           = dateTime;
                    assesmentDetailMaster.ScheduledEndDatetime   = postAssessmentModal.ScheduleTo;
                    assesmentDetailMaster.ScheduledStartDatetime = postAssessmentModal.ScheduleFrom;
                    assesmentDetailMaster.EligibilityCriteriaId  = postAssessmentModal.SelectedShortListCriteria;


                    //Question bank updation
                    List <AssessmentQuestionBankDetail> lstAssessmentQuestionBankDetail = new List <AssessmentQuestionBankDetail>();
                    foreach (var item in postAssessmentModal.LstQuestionBankSelected)
                    {
                        var questionBankInfo = TestEngineDBContext.QuestionBankMasters.FirstOrDefault(x => x.ID == item);
                        if (questionBankInfo != null)
                        {
                            AssessmentQuestionBankDetail objAssessmentQuestionBankDetail = new AssessmentQuestionBankDetail();
                            objAssessmentQuestionBankDetail.AssessmentID           = assesmentDetailMaster.ID;
                            objAssessmentQuestionBankDetail.IsDeleted              = false;
                            objAssessmentQuestionBankDetail.CreatedDate            = dateTime;
                            objAssessmentQuestionBankDetail.ID                     = Guid.NewGuid();
                            objAssessmentQuestionBankDetail.ModifiedDate           = dateTime;
                            objAssessmentQuestionBankDetail.QuestionBankID         = item;
                            objAssessmentQuestionBankDetail.QuestionBankName       = questionBankInfo.QuestionBankName;
                            objAssessmentQuestionBankDetail.Duration               = questionBankInfo.Duration;
                            objAssessmentQuestionBankDetail.AssessmentDetailMaster = assesmentDetailMaster;
                            lstAssessmentQuestionBankDetail.Add(objAssessmentQuestionBankDetail);
                        }
                    }

                    //Candidate form selection

                    List <CandidateAssesmentDetailsForm> lstCandidateAssesmentDetailsForm = new List <CandidateAssesmentDetailsForm>();
                    foreach (var item in postAssessmentModal.LstCandidateFormSelectedFields)
                    {
                        var assesmentModalInfo = TestEngineDBContext.AssesmentMasterDetailsForms.ToList();
                        CandidateAssesmentDetailsForm candidateAssesmentDetailsForm = new CandidateAssesmentDetailsForm();
                        candidateAssesmentDetailsForm.AssessmentId     = assesmentDetailMaster.ID;
                        candidateAssesmentDetailsForm.Createddate      = dateTime;
                        candidateAssesmentDetailsForm.DisplayFieldName = assesmentModalInfo.FirstOrDefault(x => x.id == item.FormId).DisplayFieldName;
                        candidateAssesmentDetailsForm.FieldName        = assesmentModalInfo.FirstOrDefault(x => x.id == item.FormId).FieldName;
                        candidateAssesmentDetailsForm.FieldType        = assesmentModalInfo.FirstOrDefault(x => x.id == item.FormId).FieldType;
                        candidateAssesmentDetailsForm.FormId           = assesmentModalInfo.FirstOrDefault(x => x.id == item.FormId).FormId;
                        candidateAssesmentDetailsForm.id                  = Guid.NewGuid();
                        candidateAssesmentDetailsForm.IsEnabled           = true;
                        candidateAssesmentDetailsForm.IsLocked            = assesmentModalInfo.FirstOrDefault(x => x.id == item.FormId).IsLocked;
                        candidateAssesmentDetailsForm.IsMandatory         = item.IsMandatory;
                        candidateAssesmentDetailsForm.ModificationHistory = string.Empty;
                        candidateAssesmentDetailsForm.ModifiedDate        = dateTime;
                        candidateAssesmentDetailsForm.Remarks             = string.Empty;
                        candidateAssesmentDetailsForm.Values              = assesmentModalInfo.FirstOrDefault(x => x.id == item.FormId).Values;
                        lstCandidateAssesmentDetailsForm.Add(candidateAssesmentDetailsForm);
                    }


                    //Schedule plan updation
                    TestEngineDBContext.AssessmentDetailMasters.Add(assesmentDetailMaster);

                    if (postAssessmentModal.lstBulkScheduleIds != null)
                    {
                        if (postAssessmentModal.lstBulkScheduleIds.Any())
                        {
                            List <AssessmentUserDetail> lstAssesmentdetailMaster = new List <AssessmentUserDetail>();
                            foreach (var item in postAssessmentModal.lstBulkScheduleIds)
                            {
                                AssessmentUserDetail assessmentUserDetail = new AssessmentUserDetail();
                                assessmentUserDetail.AssessmentID = assesmentDetailMaster.ID;
                                assessmentUserDetail.CreatedDate  = dateTime;
                                assessmentUserDetail.ID           = Guid.NewGuid();
                                assessmentUserDetail.IsDeleted    = false;
                                assessmentUserDetail.ModifiedDate = dateTime;
                                assessmentUserDetail.UserID       = item;
                                lstAssesmentdetailMaster.Add(assessmentUserDetail);
                            }
                            TestEngineDBContext.AssessmentUserDetails.AddRange(lstAssesmentdetailMaster);
                        }
                    }

                    if (postAssessmentModal.SingleScheduleModal != null)
                    {
                        UserDetailMaster UserDetailMaster = new UserDetailMaster();
                        UserDetailMaster.CreatedDate  = dateTime;
                        UserDetailMaster.Id           = Guid.NewGuid();
                        UserDetailMaster.IsDeleted    = false;
                        UserDetailMaster.ModifiedDate = dateTime;
                        UserDetailMaster.UserTitle    = assesmentDetailMaster.AssessmentName + " - Assessment";
                        TestEngineDBContext.UserDetailMasters.Add(UserDetailMaster);


                        ExaminerMaster examinerMaster = new ExaminerMaster();
                        examinerMaster.ID           = Guid.NewGuid();
                        examinerMaster.AssessmentId = assesmentDetailMaster.ID;
                        examinerMaster.UserDetailId = UserDetailMaster.Id;
                        examinerMaster.CreatedDate  = DateTime.UtcNow.AddHours(5).AddMinutes(30);
                        examinerMaster.ModifiedDate = DateTime.UtcNow.AddHours(5).AddMinutes(30);
                        TestEngineDBContext.ExaminerMasters.Add(examinerMaster);


                        DefaultRegistation defaultRegistation = new DefaultRegistation();
                        defaultRegistation.UserDetailId    = UserDetailMaster.Id;
                        defaultRegistation.ID              = Guid.NewGuid();
                        defaultRegistation.Name            = postAssessmentModal.SingleScheduleModal.FirstName + " " + postAssessmentModal.SingleScheduleModal.LastName;
                        defaultRegistation.Email           = postAssessmentModal.SingleScheduleModal.Email;
                        defaultRegistation.Password        = postAssessmentModal.SingleScheduleModal.Password;
                        defaultRegistation.MobileNumber    = postAssessmentModal.SingleScheduleModal.Mobile;
                        defaultRegistation.UserName        = postAssessmentModal.SingleScheduleModal.UserName;
                        defaultRegistation.IsDeleted       = false;
                        defaultRegistation.IsExamCompleted = false;
                        TestEngineDBContext.DefaultRegistations.Add(defaultRegistation);

                        AssessmentUserDetail assessmentUserDetail = new AssessmentUserDetail();
                        assessmentUserDetail.AssessmentID = assesmentDetailMaster.ID;
                        assessmentUserDetail.CreatedDate  = dateTime;
                        assessmentUserDetail.ID           = Guid.NewGuid();
                        assessmentUserDetail.IsDeleted    = false;
                        assessmentUserDetail.ModifiedDate = dateTime;
                        assessmentUserDetail.UserID       = UserDetailMaster.Id;
                        TestEngineDBContext.AssessmentUserDetails.Add(assessmentUserDetail);
                    }


                    //Common Login Info
                    if (postAssessmentModal.CommonLoginModal != null)
                    {
                        if (!string.IsNullOrEmpty(postAssessmentModal.CommonLoginModal.CommonLoginUserName) && !string.IsNullOrEmpty(postAssessmentModal.CommonLoginModal.CommonLoginPassword))
                        {
                            UserDetailMaster UserDetailMaster = new UserDetailMaster();
                            UserDetailMaster.CreatedDate  = dateTime;
                            UserDetailMaster.Id           = Guid.NewGuid();
                            UserDetailMaster.IsDeleted    = false;
                            UserDetailMaster.ModifiedDate = dateTime;
                            UserDetailMaster.UserTitle    = assesmentDetailMaster.AssessmentName + " - Assessment";
                            TestEngineDBContext.UserDetailMasters.Add(UserDetailMaster);


                            ExaminerMaster examinerMaster = new ExaminerMaster();
                            examinerMaster.ID           = Guid.NewGuid();
                            examinerMaster.AssessmentId = assesmentDetailMaster.ID;
                            examinerMaster.UserDetailId = UserDetailMaster.Id;
                            examinerMaster.CreatedDate  = DateTime.UtcNow.AddHours(5).AddMinutes(30);
                            examinerMaster.ModifiedDate = DateTime.UtcNow.AddHours(5).AddMinutes(30);
                            TestEngineDBContext.ExaminerMasters.Add(examinerMaster);

                            List <DefaultRegistation> lstDefaultReg = new List <DefaultRegistation>();
                            if (postAssessmentModal.CommonLoginModal.CLSendLoginDetailsto != null)
                            {
                                foreach (var items in postAssessmentModal.CommonLoginModal.CLSendLoginDetailsto.Split(','))
                                {
                                    DefaultRegistation defaultRegistation = new DefaultRegistation();
                                    defaultRegistation.UserDetailId    = UserDetailMaster.Id;
                                    defaultRegistation.ID              = Guid.NewGuid();
                                    defaultRegistation.Name            = postAssessmentModal.SingleScheduleModal.FirstName + " " + postAssessmentModal.SingleScheduleModal.LastName;
                                    defaultRegistation.Email           = postAssessmentModal.SingleScheduleModal.Email;
                                    defaultRegistation.Password        = postAssessmentModal.SingleScheduleModal.Password;
                                    defaultRegistation.MobileNumber    = postAssessmentModal.SingleScheduleModal.Mobile;
                                    defaultRegistation.IsDeleted       = false;
                                    defaultRegistation.IsExamCompleted = false;
                                    lstDefaultReg.Add(defaultRegistation);
                                }
                            }
                            AssessmentUserDetail assessmentUserDetail = new AssessmentUserDetail();
                            assessmentUserDetail.AssessmentID = assesmentDetailMaster.ID;
                            assessmentUserDetail.CreatedDate  = dateTime;
                            assessmentUserDetail.ID           = Guid.NewGuid();
                            assessmentUserDetail.IsDeleted    = false;
                            assessmentUserDetail.ModifiedDate = dateTime;
                            assessmentUserDetail.UserID       = UserDetailMaster.Id;
                            TestEngineDBContext.AssessmentUserDetails.Add(assessmentUserDetail);
                            TestEngineDBContext.DefaultRegistations.AddRange(lstDefaultReg);
                        }
                    }

                    //Alert information to Admin

                    if (!string.IsNullOrEmpty(postAssessmentModal.AssesmentAlertEmail))
                    {
                        List <AssessmentAdminEmailNotification> lstAssesmentEMailNotification = new List <AssessmentAdminEmailNotification>();
                        foreach (var items in postAssessmentModal.AssesmentAlertEmail.Split(','))
                        {
                            AssessmentAdminEmailNotification assessmentAdminEmailNotification = new AssessmentAdminEmailNotification();
                            assessmentAdminEmailNotification.AssessmentId = assesmentDetailMaster.ID;
                            assessmentAdminEmailNotification.EmailId      = items;
                            assessmentAdminEmailNotification.id           = Guid.NewGuid();
                            assessmentAdminEmailNotification.IsAdminEmailCompletionAlertEnabled = postAssessmentModal.IsAssessmentCompletionAlertEnabled;
                            lstAssesmentEMailNotification.Add(assessmentAdminEmailNotification);
                        }
                        if (lstAssesmentEMailNotification.Any())
                        {
                            TestEngineDBContext.AssessmentAdminEmailNotifications.AddRange(lstAssesmentEMailNotification);
                        }
                    }


                    //Alert Information to Students
                    if (postAssessmentModal.AssessmentStudentAlertModal != null)
                    {
                        AssessmentStudentNotification assessmentStudentNotification = new AssessmentStudentNotification();
                        assessmentStudentNotification.AssessmentId      = assesmentDetailMaster.ID;
                        assessmentStudentNotification.BCC               = postAssessmentModal.AssessmentStudentAlertModal.BCC;
                        assessmentStudentNotification.BodyofMessage     = postAssessmentModal.AssessmentStudentAlertModal.BodyofMessage;
                        assessmentStudentNotification.CC                = postAssessmentModal.AssessmentStudentAlertModal.CC;
                        assessmentStudentNotification.CommunicationType = postAssessmentModal.AssessmentStudentAlertModal.CommunicationType;
                        assessmentStudentNotification.CreatedDate       = dateTime;
                        assessmentStudentNotification.id                = Guid.NewGuid();
                        assessmentStudentNotification.IsEnabled         = postAssessmentModal.AssessmentStudentAlertModal.IsEnabled;
                        assessmentStudentNotification.ModHistory        = string.Empty;
                        assessmentStudentNotification.ModifiedDate      = dateTime;
                        assessmentStudentNotification.Remarks           = string.Empty;
                        assessmentStudentNotification.Type              = postAssessmentModal.AssessmentStudentAlertModal.Type;
                        TestEngineDBContext.AssessmentStudentNotifications.Add(assessmentStudentNotification);
                    }

                    TestEngineDBContext.AssessmentQuestionBankDetails.AddRange(lstAssessmentQuestionBankDetail);
                    TestEngineDBContext.CandidateAssesmentDetailsForms.AddRange(lstCandidateAssesmentDetailsForm);
                    TestEngineDBContext.SaveChanges();
                    result = "Success";
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }
Exemple #4
0
        public ActionResult PostCreateAssessment(PostAssessmentModal postAssessmentModal)
        {
            string result = "Failed";

            string Result = "Failed";

            try
            {
                string postData = JsonConvert.SerializeObject(postAssessmentModal);
                logger.WriteToLogFile("Post Data " + postData);

                if (postAssessmentModal == null)
                {
                    postAssessmentModal.lstBulkScheduleIds = new List <Guid>();
                }

                string              apiUrl   = System.Configuration.ConfigurationManager.AppSettings["WebApiUrl"];
                HttpClient          client   = new HttpClient();
                HttpResponseMessage response = client.PostAsJsonAsync(apiUrl + "/Assessment/PostCreateAssessment", postAssessmentModal).Result;
                if (response.IsSuccessStatusCode)
                {
                    var    retresult    = response.Content.ReadAsStringAsync().Result;
                    string assessmentID = JsonConvert.DeserializeObject <string>(retresult);
                    if (postAssessmentModal.lstBulkScheduleIds != null)
                    {
                        if (postAssessmentModal.lstBulkScheduleIds.Any())
                        {
                            var userDetailId = postAssessmentModal.lstBulkScheduleIds.FirstOrDefault();

                            HttpClient clientuser = new HttpClient();

                            HttpResponseMessage responsfinal = clientuser.GetAsync(apiUrl + "/Assessment/GetUploadedUserDetail?UserDetailId=" + userDetailId).Result;
                            if (responsfinal.IsSuccessStatusCode)
                            {
                                Result = responsfinal.Content.ReadAsStringAsync().Result;

                                var finalUserdetails = JsonConvert.DeserializeObject <List <UsersDetailsModel> >(Result);

                                foreach (var item in finalUserdetails)
                                {
                                    if (item != null)
                                    {
                                        var        password = item.Password;
                                        GoogleMail mail     = new GoogleMail();
                                        string     url      = ConfigurationManager.AppSettings["ExamPortalUrl"] + assessmentID;
                                        mail.Body    = "Hi " + item.Name + ",UserName -" + item.Email + " Password  - " + item.Password + "<a href=\"" + url + "\">Click Here</a>";
                                        mail.Subject = "Assessment Detail";
                                        mail.ToMail  = item.Email;
                                        logger.WriteToLogFile("PostCreateAssessment Google Mail -" + " Mail Body : " + mail.Body + "Mail To : " + mail.ToMail);
                                        response = client.PostAsJsonAsync(apiUrl + "/GoogleMail/SendGoogleMail", mail).Result;
                                        result   = response.Content.ReadAsStringAsync().Result;
                                        result   = JsonConvert.DeserializeObject <string>(result);
                                    }
                                }
                            }
                        }
                    }
                    else if (postAssessmentModal.SingleScheduleModal != null)
                    {
                        GoogleMail mail = new GoogleMail();
                        string     url  = ConfigurationManager.AppSettings["ExamPortalUrl"] + assessmentID;
                        mail.Body    = "Hi " + postAssessmentModal.SingleScheduleModal.FirstName + ",UserName -" + postAssessmentModal.SingleScheduleModal.UserName + " Password  - " + postAssessmentModal.SingleScheduleModal.Password + "<a href=\"" + url + "\">Click Here</a>";
                        mail.Subject = "Assessment Detail";
                        mail.ToMail  = postAssessmentModal.SingleScheduleModal.Email;
                        logger.WriteToLogFile("PostCreateAssessment Google Mail -" + " Mail Body : " + mail.Body + "Mail To : " + mail.ToMail);
                        //var data = JsonConvert.SerializeObject(mail);
                        response = client.PostAsJsonAsync(apiUrl + "/GoogleMail/SendGoogleMail", mail).Result;
                        result   = response.Content.ReadAsStringAsync().Result;
                        result   = JsonConvert.DeserializeObject <string>(result);
                    }
                    if (assessmentID.ToUpper() != "FAILED")
                    {
                        result = "SUCCESS";
                    }
                }
            }
            catch (Exception ex)
            {
                logger.WriteToLogFile("PostCreateAssessment - " + ex.ToString());
                if (ex.InnerException != null)
                {
                    logger.WriteToLogFile("PostCreateAssessment InnerException - " + ex.ToString());
                }
            }
            return(Json(new { Result = result }));
        }