public string PostCreateAssessment(PostAssessmentModal postAssessmentModal, Guid AssessmentId) { var result = ObjAssessMentDAL.PostCreateAssessment(postAssessmentModal, AssessmentId); //Need to send notification emails based on the selection. return(result); }
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"); } }
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); }
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 })); }