public frmQuestionFormEdit(QuestionForm form) { // Required for Windows Form Designer support InitializeComponent(); m_QuestionForm = form; m_QuestionFormID = form.ID; }
// ------------------------------------------------------------------------------------- /// <summary> /// Copy constructor. /// </summary> /// <param name="origInstance">Original document data to copy.</param> // ------------------------------------------------------------------------------------- public QuestionForm(QuestionForm origInstance) : base(origInstance) { }
private void ExportRtf() { try { string rtf = @""; #region lekérdezzük a ProgramContainer -t (a szûrési feltételeknek megfelelõen) // Build filter document: Guid templateGuid = new Guid(cmbTemplate.SelectedValue); TemplateControl1.SetAnswer(); QuestionForm form = new QuestionForm(Guid.NewGuid()); form.TemplateRef = templateGuid; foreach (IQuestion question in TemplateControl1.Questions) { TemplateDetail detail = (TemplateDetail) question; if (detail.Answer.Trim().Length > 0) { QuestionFormDetail questionDetail = new QuestionFormDetail(form.ID, detail.ID, templateGuid); questionDetail.Answer = detail.Answer; form.Details.Add(questionDetail); } } // Get query result from database IProgramService srv = ServiceFactory.GetProgramService(); DataSet selected = srv.ProgramSelectByQuestionFormForRtf(form); #endregion DataTable dt = selected.Tables[0]; if (dt != null && dt.Rows.Count > 0) { //dt = Helper.DataTableTypeMakeString(dt); #region Jogosultság ellenörzés int publicityLevel = -1; Guid ownOrgID = Guid.Empty; publicityLevel = PublicityLevel.Public; if (Context.User.Identity.IsAuthenticated) { NdiPrincipal principal = (NdiPrincipal) Context.User; // be van lépve a júzer ownOrgID = principal.OrganisationID; if (principal.IsInRole("Registered")) { publicityLevel = PublicityLevel.RegisteredOnly; } } #endregion rtf = Helpers.CreateRtfFromPrograms(dt, Server.MapPath(""), publicityLevel, ownOrgID); // Writes result to response Helpers.DownloadFile(rtf, "Programok.rtf"); } else lblNotFound.Visible = true; } catch (Exception ex) { errorPanel.Exception = ex; } }
// ------------------------------------------------------------------------------------- /// <summary> /// Copy constructor. /// </summary> /// <param name="IDVal">Value of 'uID' field</param> /// <param name="origInstance">Original document data to copy.</param> // ------------------------------------------------------------------------------------- public QuestionForm(DBGuid IDVal, QuestionForm origInstance) : base(IDVal, origInstance) { }
protected void ShowGrid(DataGrid dataGrid, int index, string sort, string order) { dataGrid.PageSize = Helpers.GetPageSize("PageSize.ProgramList"); if (cmbTemplate.SelectedValue.ToString() == "") { btn_Search.Visible = false; btn_ExportCsv.Visible = false; btn_ExportRtf.Visible = false; btn_SearchClear.Visible = false; return; } // Build filter document: Guid templateGuid = new Guid(cmbTemplate.SelectedValue); TemplateControl1.SetAnswer(); QuestionForm form = new QuestionForm(Guid.NewGuid()); form.TemplateRef = templateGuid; foreach (IQuestion question in TemplateControl1.Questions) { TemplateDetail detail = (TemplateDetail) question; string ans = detail.Answer.Trim(); if (ans.Length > 0) { if (!ans.Equals("-- Összes --")) { QuestionFormDetail questionDetail = new QuestionFormDetail(form.ID, detail.ID, templateGuid); questionDetail.Answer = ans; form.Details.Add(questionDetail); } } } // Get query result from database IProgramService srv = ServiceFactory.GetProgramService(); ProgramContainer selected = srv.ProgramSelectByQuestionForm(form); if (selected.AllCount > 0) { dataGrid.Visible = true; lblNotFound.Visible = false; } else { dataGrid.Visible = false; lblNotFound.Visible = true; return; } ArrayList sortableList = null; // Sort if necessary if (sort == null) { sortableList = selected.All.Items; } else { if (String.Compare(order, "Ascending", true) == 0) { sortableList = selected.All.SortBy(sort, true); } else if (String.Compare(order, "Descending", true) == 0) { sortableList = selected.All.SortBy(sort, false); } else { sortableList = selected.All.SortBy(sort); } } // Bind list to datagrid control dataGrid.CurrentPageIndex = index; dataGrid.CurrentSortExpression = sort; dataGrid.CurrentSortOrder = order; dataGrid.DataSource = sortableList; dataGrid.DataBind(); }
private void ExportCsv() { try { #region lekérdezzük a ProgramContainer -t (a szûrési feltételeknek megfelelõen) // Build filter document: Guid templateGuid = new Guid(cmbTemplate.SelectedValue); TemplateControl1.SetAnswer(); QuestionForm form = new QuestionForm(Guid.NewGuid()); form.TemplateRef = templateGuid; foreach (IQuestion question in TemplateControl1.Questions) { TemplateDetail detail = (TemplateDetail) question; if (detail.Answer.Trim().Length > 0) { QuestionFormDetail questionDetail = new QuestionFormDetail(form.ID, detail.ID, templateGuid); questionDetail.Answer = detail.Answer; form.Details.Add(questionDetail); } } // Get query result from database IProgramService srv = ServiceFactory.GetProgramService(); //ProgramContainer selected = srv.ProgramSelectByQuestionForm(form); #endregion #region Jogosultság ellenörzés int publicityLevel = -1; Guid ownOrgID = Guid.Empty; publicityLevel = PublicityLevel.Public; if (Context.User.Identity.IsAuthenticated) { NdiPrincipal principal = (NdiPrincipal) Context.User; // be van lépve a júzer ownOrgID = principal.OrganisationID; if (principal.IsInRole("Registered")) { publicityLevel = PublicityLevel.RegisteredOnly; } } #endregion // Writes result to response //string csv = selected.ExportToCsv(publicityLevel, ownOrgID); string csv = srv.CreateCsvFromProgramsForQuestion(form, publicityLevel, ownOrgID); Helpers.DownloadFile(csv, "programok.csv"); } catch (Exception ex) { errorPanel.Exception = ex; } }
public bool PendingQuestionFormAcceptNew(PendingQuestionForm entity) { //Check permission: Admin PrincipalPermission permissionAdm = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator"); permissionAdm.Demand(); TraceCallEnterEvent.Raise(); try { //Check required fields if (entity.ID.IsNull) throw new ArgumentNullException("PendingQuestionForm.ID", "Az elbírálandó kérdõív azonosítója nincs megadva."); if (entity.ProgramCategoryId.Length == 0) throw new ArgumentNullException("PendingQuestionForm.ProgramCategoryId", "Az elbírálandó kérdõív kategóriája nincs megadva."); if (entity.TemplateRef.IsNull) throw new ArgumentNullException("PendingQuestionForm.TemplateRef", "A sablon azonosítója nincs megadva."); if (entity.Details.AllCount == 0) throw new ArgumentNullException("PendingQuestionForm.Details", "A válaszok nincsenek megadva."); if (entity.ProgramCategoryId.Equals("ORG")) { if (entity.OrganisationID.IsNull) throw new ArgumentNullException("PendingQuestionForm.OrganisationID", "A szervezet azonosítója nincs megadva."); } else { if (entity.ProgramID.IsNull) throw new ArgumentNullException("PendingQuestionForm.ProgramID", "A program azonosítója nincs megadva."); } // Logical checks: PendingQuestionForm selected = base.PendingQuestionFormSelect(entity.ID); if (selected == null) throw new ApplicationException("A megadott azonosítóval nem létezik elbírálandó kérdõív."); if (!selected.Status.Equals(QuestionFormStatus.New_WaitingForDecision)) throw new ApplicationException("Csak jóváhagyásra váró státuszú kérdõív bírálható el."); // Set properties DBGuid questionFormID = Guid.NewGuid(); QuestionForm questionForm = new QuestionForm(questionFormID); questionForm.TemplateRef = entity.TemplateRef; selected.DecidedBy = Thread.CurrentPrincipal.Identity.Name; selected.DecidedDate = DBDateTime.Now; selected.Status = QuestionFormStatus.New_Accepted; selected.QuestionFormRef = questionFormID; selected.IsActual = true; //utolsó módosítás, és elfogadás dátuma questionForm.LastModifiedDate = selected.SentDate; questionForm.DecidedDate = selected.DecidedDate; questionForm.LastModifiedByUser = selected.LastModifiedByUser; questionForm.IsActual = true; //Set mail: string modifiedAnswers = ""; PendingQuestionFormDetailContainer origAnswers = base.SelectChildrenByDetailOfPendingQuestionForm(entity.ID); TemplateDetailService templateDetailService = new TemplateDetailService(m_DataContext); foreach (PendingQuestionFormDetail origDetail in origAnswers.All) { string hash = origDetail.HashString(); PendingQuestionFormDetail currentDetail = (PendingQuestionFormDetail) entity.Details[hash]; if (currentDetail != null) { if (!origDetail.Answer.Equals(currentDetail.Answer)) { TemplateDetail question = templateDetailService.TemplateDetailSelect(origDetail.TemplateDetailRef, origDetail.TemplateRef); modifiedAnswers += "Kérdés: " + question.Question + "\n"; modifiedAnswers += " Eredeti válasz: " + origDetail.Answer + "\n"; modifiedAnswers += " Módosított válasz: " + currentDetail.Answer + "\n\n"; } } } if (modifiedAnswers.Length == 0) { modifiedAnswers = " A jóváhagyó módosítás nélkül fogadta el a kitöltött kérdõívet.\n"; } UserService userSrv = new UserService(m_DataContext); User sentBy = userSrv.UserSelect(selected.SentBy); Email mail = new Email(Guid.NewGuid()); mail.Category = EmailCategory.QuestionFormInsertAccept; mail.To = sentBy.Email; //Subject és body lekérdezése string body = ""; string subject = ""; EmailTemplateService srvTemplate = new EmailTemplateService(); srvTemplate.GetEmailTemplateByCode(ref subject, ref body, EmailCategory.QuestionFormInsertAccept); mail.Subject = subject; body = body.Replace("<FULL_USER_NAME>", sentBy.Name); body = body.Replace("<SENT_DATE>", entity.SentDate.ToString()); body = body.Replace("<TEMPLATE_NAME>", entity.TemplateName); body = body.Replace("<MODIFIED_ANSWERS>", modifiedAnswers); mail.MailBody = body; // Save data to database EmailService emailSrv = new EmailService(m_DataContext); QuestionFormService questionFormService = new QuestionFormService(m_DataContext); ProgramQuestionFormService programQuestionFormService = new ProgramQuestionFormService(m_DataContext); OrganisationQuestionFormService organisationQuestionFormService = new OrganisationQuestionFormService(m_DataContext); QuestionFormDetailService questionFormDetailService = new QuestionFormDetailService(m_DataContext); m_DataContext.BeginNestedTran(); try { questionFormService.QuestionFormInsert(questionForm); base.PendingQuestionFormUpdate(selected); if (entity.ProgramCategoryId.Equals("ORG")) { OrganisationQuestionForm organisationQuestionForm = new OrganisationQuestionForm("ORG", entity.OrganisationID, questionFormID); //organisationQuestionForm.QuestionFormRef = questionFormID; organisationQuestionFormService.OrganisationQuestionFormInsert(organisationQuestionForm); } else { ProgramQuestionForm programQuestionForm = new ProgramQuestionForm(entity.ProgramCategoryId, entity.ProgramID, questionFormID); //programQuestionForm.QuestionFormRef = questionFormID; programQuestionFormService.ProgramQuestionFormInsert(programQuestionForm); } foreach (PendingQuestionFormDetail pendingDetail in entity.Details.All) { QuestionFormDetail detail = new QuestionFormDetail(questionFormID, pendingDetail.TemplateDetailRef, entity.TemplateRef); detail.Answer = pendingDetail.Answer; detail.FreetextId = Guid.NewGuid(); questionFormDetailService.QuestionFormDetailInsert(detail); } emailSrv.EmailInsert(mail); m_DataContext.CommitNested(); } catch { m_DataContext.RollbackNested(); throw; } // Sending mail: try { emailSrv.EmailSend(mail.ID); } catch (Exception ex) { ExceptionManager.Publish(ex); return false; } // Log success BusinessAuditEvent.Success( new EventParameter("PendingQuestionFormID", entity.ID.ToString()), new EventParameter("ProgramID", entity.ProgramID.ToString()), new EventParameter("OrganisationID", entity.OrganisationID.ToString()) ); TraceCallReturnEvent.Raise(); return true; } catch (Exception ex) { ExceptionManager.Publish(ex); BusinessAuditEvent.Fail( new EventParameter("Exception", ex.ToString()), new EventParameter("PendingQuestionFormID", entity.ID.ToString()), new EventParameter("ProgramID", entity.ProgramID.ToString()), new EventParameter("OrganisationID", entity.OrganisationID.ToString()) ); TraceCallReturnEvent.Raise(false); throw; } }
public QuestionFormContainer QuestionFormSelectFiltered(QuestionForm filter) { TraceCallEnterEvent.Raise(); try { if (filter.ProgramCategoryId.IsNull) throw new ArgumentNullException("filter.ProgramCategoryId", "A program kategória nincs megadva."); QuestionFormContainer result; if (filter.ProgramCategoryId.Equals("ORG")) { DataSet entitySet = m_DataContext.ndihdQuestionFormOfOrganisationSelectFiltered( filter.OrganisationID, "ORG", filter.TemplateRef); result = new QuestionFormContainer(entitySet.Tables[0]); } else { DataSet entitySet = m_DataContext.ndihdQuestionFormOfProgramSelectFiltered( filter.ProgramID, filter.OrganisationID, filter.ProgramCategoryId, filter.TemplateRef); result = new QuestionFormContainer(entitySet.Tables[0]); } TraceCallReturnEvent.Raise(); return result; } catch (Exception ex) { ExceptionManager.Publish(ex); TraceCallReturnEvent.Raise(false); throw; } }
public virtual QuestionForm QuestionFormSelect(DBGuid IDVal) { TraceCallEnterEvent.Raise(); try { QuestionForm result = null; DataSet entitySet = m_DataContext.ndihdQuestionFormSelect(IDVal); if (entitySet.Tables[0].Rows.Count != 0) { result = new QuestionForm(entitySet); } TraceCallReturnEvent.Raise(); return result; } catch (Exception ex) { ExceptionManager.Publish(ex); TraceCallReturnEvent.Raise(false); throw; } }
public virtual void QuestionFormUpdate(QuestionForm entity) { TraceCallEnterEvent.Raise(); try { m_DataContext.BeginNestedTran(); try { int count; m_DataContext.ndihdQuestionFormUpdate(entity.ID, entity.TemplateRef, entity.LastModifiedDate, entity.DecidedDate, entity.IsActual, entity.LastModifiedByUser, entity.LastValidationDate, out count); if (count == 0) throw new ServiceUpdateException(); m_DataContext.CommitNested(); } catch { m_DataContext.RollbackNested(); throw; } TraceCallReturnEvent.Raise(); return; } catch (Exception ex) { ExceptionManager.Publish(ex); TraceCallReturnEvent.Raise(false); throw; } }
public virtual void QuestionFormDelete(QuestionForm entity) { TraceCallEnterEvent.Raise(); try { m_DataContext.BeginNestedTran(); try { m_DataContext.ndihdQuestionFormDelete(entity.ID); m_DataContext.CommitNested(); } catch { m_DataContext.RollbackNested(); throw; } TraceCallReturnEvent.Raise(); return; } catch (Exception ex) { ExceptionManager.Publish(ex); TraceCallReturnEvent.Raise(false); throw; } }
// ------------------------------------------------------------------------------------- /// <summary> /// Fill datagrid with data /// </summary> // ------------------------------------------------------------------------------------- private void FillDatagrid(DBGuid ID) { try { string sortColumn = "OrganisationName"; int selectedRow = -1; // storing the previous sort order if (dtgMain.DataSource != null) { sortColumn = ((DataTable) dtgMain.DataSource).DefaultView.Sort; } // retrieving data from BusinessServices QuestionForm filter = new QuestionForm(Guid.NewGuid()); if (cmbCategory.SelectedIndex > 0) { filter.ProgramCategoryId = cmbCategory.SelectedValue.ToString(); } else { filter.ProgramCategoryId = ""; } if (cmbProgram.SelectedValue.ToString().Length > 0) { Guid prgId = new Guid(cmbProgram.SelectedValue.ToString()); filter.ProgramID = prgId; } if (cmbOrganisation.SelectedValue.ToString().Length > 0) { Guid orgId = new Guid(cmbOrganisation.SelectedValue.ToString()); filter.OrganisationID = orgId; } if (cmbTemplate.SelectedValue.ToString().Length > 0) { Guid templId = new Guid(cmbTemplate.SelectedValue.ToString()); filter.TemplateRef = templId; } IQuestionFormService qfSrv = ServiceFactory.GetQuestionFormService(); m_QuestionFormContainer = qfSrv.QuestionFormSelectFiltered(filter); DataTable dt = m_QuestionFormContainer.AllAsDatatable; dt.DefaultView.Sort = sortColumn; dtgMain.DataSource = dt; // locates the row specified by ID param if (!ID.IsNull) { BindingManagerBase bm = dtgMain.BindingContext[dtgMain.DataSource, dtgMain.DataMember]; DataRow dr; for (int i = 0; i < bm.Count; i++) { dr = ((DataRowView) bm.Current).Row; if (ID.Value.Equals(dr["ID"])) { selectedRow = i; break; } bm.Position += 1; } } // makes the row selected if (selectedRow <= ((DataTable) dtgMain.DataSource).DefaultView.Count && selectedRow > -1) { dtgMain.Select(selectedRow); dtgMain.CurrentRowIndex = selectedRow; } else if (((DataTable) dtgMain.DataSource).DefaultView.Count != 0) { dtgMain.Select(0); } // enabling or disabling the buttons according to record count. And is because of previous disable state. tbbModify.Enabled = (((DataTable) dtgMain.DataSource).DefaultView.Count != 0); } catch (Exception ex) { // --- Log exception ExceptionManager.Publish(ex); // --- Display Exception ErrorHandler.DisplayError("Nem várt hiba a lista frissítése során.", ex); } }
public DataSet ProgramSelectByQuestionFormForRtf(QuestionForm filter) { TraceCallEnterEvent.Raise(); try { string answers = ""; if (filter.Details.AllCount == 0) throw new ApplicationException("Legalább egy keresési feltételt meg kell adni."); foreach (QuestionFormDetail detail in filter.Details.All) { if (answers.Length > 0) { answers += " and "; } answers += " [cTemplateDetailRef] = '" + detail.TemplateDetailRef + "' "; string ans = detail.Answer; ans = ans.Replace("*", "%"); ans = ans.Replace("?", "_"); answers += " and [cAnswer] like '" + ans + "' "; } DataSet entitySet = m_DataContext.ndihdProgramSelectByQuestionFormForRtf( filter.TemplateRef, answers); TraceCallReturnEvent.Raise(); return entitySet; } catch (Exception ex) { ExceptionManager.Publish(ex); TraceCallReturnEvent.Raise(false); throw; } }
/// <summary> /// Exports to CSV2. /// </summary> /// <param name="form">The form.</param> /// <param name="publicityLevel">The publicity level.</param> /// <param name="ownOrgId">The own org id.</param> /// <returns></returns> public string CreateCsvFromProgramsForQuestion(QuestionForm form, int publicityLevel, Guid ownOrgId) { DataSet ds = ProgramSelectByQuestionFormForCsv(form); DataTable dt = ds.Tables[0]; return CreateCsvFromPrograms(dt, publicityLevel, ownOrgId); }
private void cmdSave_Click(object sender, EventArgs e) { TemplateControl1.SetAnswer(); // --- Save questionform Guid templateID = new Guid(comboBox1.SelectedItem.ToString()); QuestionForm form = new QuestionForm(Guid.NewGuid()); form.TemplateRef = templateID; IQuestionFormService formSrv = ServiceFactory.GetQuestionFormService(); formSrv.QuestionFormInsert(form); // --- Save questiondetails IQuestionFormDetailService questionFormDetailService = ServiceFactory.GetQuestionFormDetailService(); foreach (IQuestion question in TemplateControl1.Questions) { TemplateDetail detail = (TemplateDetail) question; QuestionFormDetail questionDetail = new QuestionFormDetail(form.ID, detail.ID, templateID); questionDetail.Answer = detail.Answer; questionFormDetailService.QuestionFormDetailInsert(questionDetail); } GetList(); }