public virtual void QuestionFormDetailDelete(QuestionFormDetail entity)
 {
     TraceCallEnterEvent.Raise();
       try
       {
     m_DataContext.BeginNestedTran();
     try
     {
       m_DataContext.ndihdQuestionFormDetailDelete(entity.QuestionFormRef,
     entity.TemplateDetailRef,
     entity.TemplateRef);
       m_DataContext.CommitNested();
     }
     catch
     {
       m_DataContext.RollbackNested();
       throw;
     }
     TraceCallReturnEvent.Raise();
     return;
       }
       catch (Exception ex)
       {
     ExceptionManager.Publish(ex);
     TraceCallReturnEvent.Raise(false);
     throw;
       }
 }
        public new void QuestionFormDetailInsert(QuestionFormDetail entity)
        {
            TraceCallEnterEvent.Raise();
              try
              {
            base.QuestionFormDetailInsert(entity);

            BusinessAuditEvent.Success(
              new EventParameter("QuestionFormRef", entity.QuestionFormRef.ToString()),
              new EventParameter("QuestionFormTemplateRef", entity.TemplateRef.ToString()),
              new EventParameter("QuestionFormTemplateDetailRef", entity.TemplateDetailRef)
              );
            TraceCallReturnEvent.Raise();
            return;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("QuestionFormRef", entity.QuestionFormRef.ToString()),
              new EventParameter("QuestionFormTemplateRef", entity.TemplateRef.ToString()),
              new EventParameter("QuestionFormTemplateDetailRef", entity.TemplateDetailRef)
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
        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;
              }
        }
        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;
              }
        }
        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();
        }
        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 virtual void QuestionFormDetailUpdate(QuestionFormDetail entity)
 {
     TraceCallEnterEvent.Raise();
       try
       {
     m_DataContext.BeginNestedTran();
     try
     {
       int count;
       m_DataContext.ndihdQuestionFormDetailUpdate(entity.QuestionFormRef,
     entity.TemplateDetailRef,
     entity.TemplateRef,
     entity.Answer,
     entity.FreetextId, 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 QuestionFormDetail QuestionFormDetailSelect(DBGuid QuestionFormRefVal,
 DBString TemplateDetailRefVal,
 DBGuid TemplateRefVal)
   {
       TraceCallEnterEvent.Raise();
         try
         {
       QuestionFormDetail result = null;
       DataSet entitySet = m_DataContext.ndihdQuestionFormDetailSelect(QuestionFormRefVal,
         TemplateDetailRefVal,
         TemplateRefVal);
       if (entitySet.Tables[0].Rows.Count != 0)
       {
         result = new QuestionFormDetail(entitySet);
       }
       TraceCallReturnEvent.Raise();
       return result;
         }
         catch (Exception ex)
         {
       ExceptionManager.Publish(ex);
       TraceCallReturnEvent.Raise(false);
       throw;
         }
   }
 // -------------------------------------------------------------------------------------
 /// <summary>
 /// Copy constructor.
 /// </summary>
 /// <param name="QuestionFormRefVal">Value of 'uQuestionFormRef' field</param>
 /// <param name="TemplateDetailRefVal">Value of 'cTemplateDetailRef' field</param>
 /// <param name="TemplateRefVal">Value of 'uTemplateRef' field</param>
 /// <param name="origInstance">Original document data to copy.</param>
 // -------------------------------------------------------------------------------------
 public QuestionFormDetail(DBGuid QuestionFormRefVal,
                       DBString TemplateDetailRefVal,
                       DBGuid TemplateRefVal,
                       QuestionFormDetail origInstance)
     : base(QuestionFormRefVal, TemplateDetailRefVal, TemplateRefVal, origInstance)
 {
 }
示例#10
0
 // -------------------------------------------------------------------------------------
 /// <summary>
 /// Copy constructor.
 /// </summary>
 /// <param name="origInstance">Original document data to copy.</param>
 // -------------------------------------------------------------------------------------
 public QuestionFormDetail(QuestionFormDetail origInstance)
     : base(origInstance)
 {
 }
示例#11
0
        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();
        }