예제 #1
0
        public override void KefEventInsert(KefEvent entity)
        {
            //
              // Esemény beszúrás elõtt frissíteni kell az utolsó módosítás dátumát
              //
              OrganisationService srvOrg = new OrganisationService();
              Organisation org = srvOrg.OrganisationSelect(entity.OrganisationRef);

              org.KefEventsLastModified = DateTime.Now;
              srvOrg.OrganisationUpdateBase(org);

              //
              // Beszúrjuk az eseményt
              //
              base.KefEventInsert(entity);
        }
예제 #2
0
        public bool OrganisationValidateSendEmailByCategory(Organisation entity, string category, string adminMail)
        {
            //Check permission: Admin
              PrincipalPermission permissionAdm =
            new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
              permissionAdm.Demand();

              TraceCallEnterEvent.Raise();
              try
              {
            // Logical checks:
            Organisation selected = base.OrganisationSelect(entity.ID);
            if (selected == null)
              throw new ApplicationException("A megadott azonosítóval nem létezik szervezet.");

            //Subject és body lekérdezése
            string body = "";
            string subject = "";
            EmailTemplateService srvTemplate = new EmailTemplateService();
            srvTemplate.GetEmailTemplateByCode(ref subject, ref body, category);

            // Le kell kérdezni a szervezethez tartozó irási joggal rendelkező felhasználókat
            User filter = new User(DBString.Empty);

            filter.Right = "W";
            filter.OrganisationRef = entity.ID;
            filter.IsActive = true;
            filter.FilterOnIsactive = DBInt.Null;
            filter.FilterOnLockedOut = 0;

            // Retrieving data from BusinessServices
            UserService srvUser = new UserService();

            UserContainer allUser = srvUser.UserSelectFiltered(filter);
            if (allUser.AllCount == 0)
            {
              OrganisationService srvOrgUser = new OrganisationService();
              OrganisationUserContainer orgUsers = srvOrgUser.SelectChildrenByOrganisationOfOrganisationUser(selected.ID);
              foreach (OrganisationUser orguser in orgUsers.All)
              {
            User user = srvUser.UserSelect(orguser.LoginNameRef);
            if (allUser[user.HashString()] == null)
              allUser.Add(user);

              }
            }

            foreach (User user in allUser.All)
            {
              string tmpBody = body;

              //set mail:
              Email mail = new Email(Guid.NewGuid());
              mail.Category = category;
              mail.To = user.Email; //"*****@*****.**";
              mail.OrganisationRef = entity.ID;

              tmpBody = tmpBody.Replace("<FULL_USER_NAME>", user.Name);
              tmpBody = tmpBody.Replace("<LOGIN_NAME>", user.LoginName);
              tmpBody = tmpBody.Replace("<ORGANISATION>", selected.Name);

              mail.MailBody = tmpBody;
              mail.Subject = subject;

              SendMail(mail);

            }

            if (!string.IsNullOrEmpty(adminMail)) //küldünk mailt az adminna is
            {
              string tmpBody = body;

              //set mail:
              Email mail = new Email(Guid.NewGuid());
              mail.Category = EmailCategory.ValidationInactivationAdmin;
              mail.To = adminMail; //"*****@*****.**";
              mail.OrganisationRef = entity.ID;

              tmpBody = tmpBody.Replace("<ORGANISATION>", selected.Name);

              mail.MailBody = tmpBody;
              mail.Subject = subject;

              SendMail(mail);
            }
            // Log success
            BusinessAuditEvent.Success(new EventParameter("OrganisationID", entity.ID.ToString()));

            TraceCallReturnEvent.Raise();
            return true;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("RegisterUserID", entity.ID.ToString())
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #3
0
        public void OrganisationKefUpdate(Organisation org, KefEventContainer kefEvents, DataTable kefMembers)
        {
            // check permission: Writer or Admin
              string writerRole = org.ID.Value.ToString() + ".Writer";
              PrincipalPermission permWriter = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, writerRole);
              PrincipalPermission permAdmin = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
              permWriter.Union(permAdmin).Demand();

              TraceCallEnterEvent.Raise();
              try
              {
            // check required fields:
            if (org.Name.Length == 0)
              throw new ArgumentNullException("Organisation.Name", "A szervezet neve nincs megadva.");
            if (org.PostCode.Length == 0)
              throw new ArgumentNullException("Organisation.PostCode", "A szervezet címének irányítószáma nincs megadva.");
            if (org.City.Length == 0)
              throw new ArgumentNullException("Organisation.City", "A szervezet címének települése nincs megadva.");
            if (org.Address.Length == 0)
              throw new ArgumentNullException("Organisation.Address",
                                          "A szervezet címének utca, házszám része nincs megadva.");
            if (org.OrganisationFormRef.Length == 0)
              throw new ArgumentNullException("Organisation.OrganisationFormRef", "A szervezeti forma kódja nincs megadva.");
            if (org.WorkingAreaRef.Length == 0)
              throw new ArgumentNullException("Organisation.WorkingAreaRef", "A mûködési terület nincs megadva.");

            // logical checks:
            Organisation selected = base.OrganisationSelect(org.ID);
            if (selected == null)
              throw new ApplicationException("Ezzel az azonosítóval nem létezik szervezet.");

            NdiPrincipal principal = (NdiPrincipal) Thread.CurrentPrincipal;
            if (!selected.IsActive && !principal.IsInRole("Administrator"))
              throw new ApplicationException("A szervezet nem aktív.");
            // save data:
            org.IsActive = selected.IsActive;

            try
            {

              //elmentjük a szervezet módosított adatokat
              base.OrganisationUpdate(org);
              m_DataContext.BeginNestedTran();
              //töröljük az összes kapcsolódó eseményt ...
              OrganisationService srvOrg = new OrganisationService(m_DataContext);
              KefEventService srvKefEvent = new KefEventService(m_DataContext);
              srvOrg.DeleteChildrenByOrganisationOfKefEvent(org.ID);

              //majd beszúrjuk az újakat
              foreach (KefEvent item in kefEvents.Current)
              {
            srvKefEvent.KefEventInsert(item);
              }

              //töröljük az összes kapcsolódó tagot ...
              srvOrg.DeleteChildrenByKefOrgOfOrg(org.ID);
              OrgMemberOfOrgService srvKefMember = new OrgMemberOfOrgService(m_DataContext);

              //majd beszúrjuk az újakat
              foreach (DataRow row in kefMembers.Rows)
              {
            OrgMemberOfOrg member = new OrgMemberOfOrg(Guid.NewGuid());

            member.OrganisationKefRef = new Guid(row["uOrganisationKefRef"].ToString());
            member.OrganisationMemberRef = new Guid(row["uOrganisationMemberRef"].ToString());
            member.ContactName = row["cContactName"].ToString();
            member.ContactInstitution = row["cContactInstitution"].ToString();
            member.ContactZipCode = row["cContactZipCode"].ToString();
            member.ContactTownShip = row["cContactTownShip"].ToString();
            member.ContactAddress = row["cContactAddress"].ToString();
            member.ContactPhone1 = row["cContactPhone1"].ToString();
            member.ContactPhone2 = row["cContactPhone2"].ToString();
            member.ContactPhone3 = row["cContactPhone3"].ToString();
            member.ContactFax = row["cContactFax"].ToString();
            member.ContactPosition = row["cContactPosition"].ToString();
            member.ContactPositionInKef = row["cContactPositionInKef"].ToString();
            member.ContactEmail1 = row["cContactEmail1"].ToString();
            member.ContactEmail2 = row["cContactEmail2"].ToString();
            member.ContactEmail3 = row["cContactEmail3"].ToString();
            member.ContactQualification = row["cContactQualification"].ToString();
            member.KefContactTypeRef = row["cKefContactTypeRef"].ToString();

            srvKefMember.OrgMemberOfOrgInsert(member);
              }

              //elmentjük a szervezethez tartozó feltöltött fileokat
              OrganisationAttachmentService srvOrgAtt = new OrganisationAttachmentService(m_DataContext);

              // Clear old files:
              OrganisationAttachmentContainer oldFiles = base.SelectChildrenByAttachmentOfOrganisation(org.ID);

              foreach (OrganisationAttachment oldFile in oldFiles.All)
              {
            srvOrgAtt.OrganisationAttachmentDelete(oldFile);
              }

              foreach (OrganisationAttachment file in org.OrgAttachments.Current)
              {
            if(file.DownloadData != null)
              srvOrgAtt.OrganisationAttachmentInsert(file);
              }

              m_DataContext.CommitNested();
            }
            catch
            {
              m_DataContext.RollbackNested();
              throw;
            }

            BusinessAuditEvent.Success(
              new EventParameter("OrganisationID", org.ID.ToString()),
              new EventParameter("OrganisationName", org.Name)
              );
            TraceCallReturnEvent.Raise();
            return;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("OrganisationID", org.ID.ToString()),
              new EventParameter("OrganisationName", org.Name)
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #4
0
        /// <summary>
        /// Organisations the question form validate priv.
        /// </summary>
        /// <param name="org">The org.</param>
        /// <param name="referenceDate">The reference date.</param>
        /// <param name="refreshNum">The refresh num.</param>
        /// <param name="servise">if set to <c>true</c> [servise].</param>
        /// <returns></returns>
        private string OrganisationQuestionFormValidatePriv(Organisation org, DateTime referenceDate, int refreshNum, bool service)
        {
            string organisationState = org.ValidationState ?? "";
              var filter = new Template(DBGuid.Null)
                     {
                       PublicityLevel = 1,
                       FilterOnIsActive = 1,
                       FilterOnCategory = "ORG"
                     };

              OrganisationService organisationService = new OrganisationService();
              PendingQuestionFormService pqfService = new PendingQuestionFormService();
              OrganisationPendingQuestionFormContainer qfPendings =
            organisationService.SelectChildrenByPendingQuestionFormOfOrganisation(org.ID);
              TemplateService templateSrv = new TemplateService();
              //Ezek azok a kérdőívek, amiknek ki kellene töltve lennie a szervezethez
              TemplateContainer templSelectedOrg = templateSrv.TemplateSelectFiltered(filter);
              foreach (Template template in templSelectedOrg.All)
              {
            bool isFilled = false;
            var allPendingsToTemplate = new PendingQuestionFormContainer();
            // ebben a konténerben lesznek az ehhez a templatehez tartozó pendingek

            //megnézem van-e ilyen a szervezethez
            //ezek vannak kitöltve a szervezethez
            foreach (OrganisationPendingQuestionForm qf in qfPendings.All)
            {
              //Az organisationhoz tartozóak a pendingben

              PendingQuestionForm pqf = pqfService.PendingQuestionFormSelect(qf.PendingQuestionFormRef);
              if (pqf != null && pqf.TemplateRef == template.ID) // ki van töltve
              {
            isFilled = true;

            //nincs még ilyen
            if (allPendingsToTemplate[pqf.HashString()] == null)
              allPendingsToTemplate.Add(pqf);
              }
            } // amikor ideérek, akkor az isFilled true, ha van ilyen kérdőív kitöltve a szervezethez
            //és a allPendingsToTemplate -ben benne van az összes pending ehhez a template-hez

            //amikor itt tartunk megvan az összes szervezethez  tartozó pendibgünk, ehhez a template-hoz
            if (allPendingsToTemplate.AllCount > 0)
            {
              //Ebből ki kell vennünk a legutolsót
              ArrayList allSorted = allPendingsToTemplate.All.SortBy("SentDate");
              //Itt egy sorrendezett listánk van
              //Kiveszem az utolsót, mert dátum szerint ezt kell nézni
              var validable = (PendingQuestionForm)allSorted[allSorted.Count - 1];
              //Mindig csak az utolsót kell validálni
              if (validable != null)
              {
            if (validable.Status.Equals(QuestionFormStatus.New_WaitingForDecision) ||
                validable.Status.Equals(QuestionFormStatus.Updated_WaitingForDecision))
            {
              continue; // végeztünk, mert jóváhagyásra váró kérdőíve van ehhez a template-hez
            }
            //megnézzük hogy jóváhagyottja van-e
            if (validable.Status.Equals(QuestionFormStatus.New_Accepted) ||
                validable.Status.Equals(QuestionFormStatus.Updated_Accepted))
            {
              if (service)
              {
                //van jóváhagyottja, akkor meg kell nézni, hogy az utplsó módosíás dátuma nem túl régi-e
                //if (referenceDate < (DateTime) validable.SentDate)
                {
                  // Túl régi ehhez a template-hoz
                  if (organisationState == OrganisationValidate.IsValid || organisationState == "")
                  {
                    organisationState = OrganisationValidate.NoOrgQuestionFormRefresh;
                  }
                  else
                  {
                    if (organisationState.IndexOf(OrganisationValidate.NoOrgQuestionFormRefresh) < 0)
                      //még nem írtam be ezt a hibát
                      organisationState += " " + OrganisationValidate.NoOrgQuestionFormRefresh;
                  }
                }
              }
              else
              {
                //van jóváhagyottja, akkor meg kell nézni, hogy az utplsó módosíás dátuma nem túl régi-e
                if (referenceDate.AddDays(-refreshNum) > (DateTime)validable.SentDate)
                {
                  // Túl régi ehhez a template-hoz
                  if (organisationState == OrganisationValidate.IsValid || organisationState == "")
                  {
                    organisationState = OrganisationValidate.NoOrgQuestionFormRefresh;
                  }
                  else
                  {
                    if (organisationState.IndexOf(OrganisationValidate.NoOrgQuestionFormRefresh) < 0)
                      //még nem írtam be ezt a hibát
                      organisationState += " " + OrganisationValidate.NoOrgQuestionFormRefresh;
                  }
                }
              }
            }
            //invaild státuszok
            if (validable.Status.Equals(QuestionFormStatus.New) || validable.Status.Equals(QuestionFormStatus.New_Rejected) ||
                validable.Status.Equals(QuestionFormStatus.New_SendBack) ||
                validable.Status.Equals(QuestionFormStatus.Updated) ||
                validable.Status.Equals(QuestionFormStatus.Updated_Rejected) ||
                validable.Status.Equals(QuestionFormStatus.Updated_SendBack))
            {
              isFilled = false;
            }
              }
            }
            if (isFilled)
              continue;
            // Nincs kitöltve neki
            if (organisationState == OrganisationValidate.IsValid || organisationState == "" )
            {
              organisationState = OrganisationValidate.NoOrgQuestionForm;
            }
            else
            {
              if (organisationState.IndexOf(OrganisationValidate.NoOrgQuestionForm) < 0) //még nem írtam be ezt a hibát
            organisationState += " " + OrganisationValidate.NoOrgQuestionForm;
            }
            continue; //tovább a ciklusban, mert ezt elég egyszer beírni a státuszba
              }
              //Mindig csak a legutolsó pendinget kell megnéznem. Ennek a státusza számít

              return organisationState;
        }
예제 #5
0
        public UserContainer UserSelectOfEmailRecipient(
      bool activityOther,
      bool activityPrevention,
      bool activityRehabilitation,
      bool activityResearch,
      bool activityNDI,
      bool activityAll)
        {
            // Check permission: Administrator
              PrincipalPermission permissionAdm =
            new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
              permissionAdm.Demand();

              TraceCallEnterEvent.Raise();
              try
              {
            string ndiIdSting = ConfigurationManager.AppSettings["NDI.Id"];
            Guid ndiID= Guid.Empty;
            if (ndiIdSting != null && ndiIdSting.Length == 36)
            {
              ndiID= new Guid(ndiIdSting);
            }

            OrganisationService orgSrv = new OrganisationService(m_DataContext);

            UserContainer all;
            UserContainer result;
            DataSet entitySet = m_DataContext.ndihdUserSelectDispsetOfEmailRecipient();
            all = new UserContainer(entitySet.Tables[0]);
            result = new UserContainer();
            //mindenki
            if (activityAll)
            {
              result = new UserContainer(entitySet.Tables[0]);
            }
            else
            {
              foreach (User user in all.All)
              {
            Organisation org = orgSrv.OrganisationSelect(user.OrganisationRef);
            if (org != null)
            {
              if(org.ID.Equals(ndiID) && activityNDI)
              {
                if (!result.All.Items.Contains(user))
                {
                  result.All.Items.Add(user);
                }
              }

              if (org.ActivityOther && activityOther)
              {
                if (!result.All.Items.Contains(user))
                {
                  result.All.Items.Add(user);
                }
              }

              if (org.ActivityPrevention && activityPrevention)
              {
                if (!result.All.Items.Contains(user))
                {
                  result.All.Items.Add(user);
                }
              }

              if (org.ActivityRehabilitation && activityRehabilitation)
              {
                if (!result.All.Items.Contains(user))
                {
                  result.All.Items.Add(user);
                }
              }

              if (org.ActivityResearch && activityResearch)
              {
                if (!result.All.Items.Contains(user))
                {
                  result.Add(user);
                }
              }
            }
              }
            }
            TraceCallReturnEvent.Raise();
            return result;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
        public bool OrganisationPendingUserReject(OrganisationPendingUser entity)
        {
            //Check permission: Admin
              PrincipalPermission permissionAdm =
            new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
              permissionAdm.Demand();

              TraceCallEnterEvent.Raise();
              try
              {
            // Check required fields
            if (entity.RejectComment.Length == 0)
              throw new ArgumentNullException("OrganisationPendingUser.RejectComment",
                                          "Az elutasítás indoklása nincs megadva.");

            // Logical checks
            OrganisationPendingUser selected = base.OrganisationPendingUserSelect(entity.ID);
            if (selected == null)
              throw new ApplicationException("A megadott azonosítóhoznemtartozik igénylés.");
            if (! selected.Status.Equals(RegistrationStatus.New))
              throw new ApplicationException("Csak új státuszú regisztráció bírálható el.");

            // Set properties
            selected.DecidedBy = Thread.CurrentPrincipal.Identity.Name;
            selected.DecidedDate = DBDateTime.Now;
            selected.Status = RegistrationStatus.Rejected;
            selected.RejectComment = entity.RejectComment;

            //Emailben szereplõ adatok lekkérdezése
            string userEmail = "";
            string userFullName = "";
            string organisationName = "";
            IOrganisationPendingUserService srvOpu = new OrganisationPendingUserService();
            OrganisationPendingUser opu = srvOpu.OrganisationPendingUserSelect(entity.ID);
            IOrganisationService srvOrg = new OrganisationService();
            IUserService srvUser = new UserService();
            Organisation org = srvOrg.OrganisationSelect(opu.OrganisationRef);
            User u = srvUser.UserSelect(opu.LoginNameRef);

            userEmail = u.Email;
            userFullName = u.Name;
            organisationName = org.Name;

            //set mail:
            Email mail = new Email(Guid.NewGuid());
            mail.Category = EmailCategory.OrganisationRegistrationReject;
            mail.To = userEmail;

            //Subject és body lekérdezése
            string body = "";
            string subject = "";
            IEmailTemplateService srvTemplate = new EmailTemplateService();
            srvTemplate.GetEmailTemplateByCode(ref subject, ref body, EmailCategory.OrganisationRegistrationReject);

            mail.Subject = subject;

            body = body.Replace("<FULL_USER_NAME>", userFullName);
            body = body.Replace("<LOGIN_NAME>", u.LoginName);
            body = body.Replace("<ORGANISATION>", organisationName);
            body = body.Replace("<REJECT_COMMENT>", entity.RejectComment);
            mail.MailBody = body;

            // Save data to database
            EmailService emailSrv = new EmailService(m_DataContext);
            m_DataContext.BeginNestedTran();
            try
            {
              base.OrganisationPendingUserUpdate(selected);
              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("RegisterOrganisationID", entity.ID.ToString()),
              new EventParameter("OrganisationName", organisationName),
              new EventParameter("LoginName", u.LoginName)
              );
            TraceCallReturnEvent.Raise();
            return true;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("RegisterOrganisationID", entity.ID.ToString())
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #7
0
        public new void ProgramInsert(Program entity)
        {
            // check permission: Writer or Admin
              string writerRole = entity.OrganisationRef.Value.ToString() + ".Writer";
              PrincipalPermission permWriter = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, writerRole);
              PrincipalPermission permAdmin = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
              permWriter.Union(permAdmin).Demand();

              TraceCallEnterEvent.Raise();
              try
              {
            // check required fields:
            if (entity.ID.IsNull) throw new ArgumentNullException("Program.ID", "A program azonosítója nincs megadva.");
            if (entity.OrganisationRef.IsNull)
              throw new ArgumentNullException("Program.OrganisationRef", "A szervezet azonosítója nincs megadva.");
            if (entity.Name.Length == 0) throw new ArgumentNullException("Program.Name", "A program neve nincs megadva.");
            if (entity.Description.Length == 0)
              throw new ArgumentNullException("Program.Description", "A program leírása nincs megadva.");
            if (entity.ProgramStatus.Length == 0)
              throw new ArgumentNullException("Program.ProgramStatus", "A program státusza nincs megadva.");
            if (entity.ProgramCategoryRef.Length == 0)
              throw new ArgumentNullException("Program.ProgramCategoryRef", "A program típusa nincs megadva.");

            if (CheckProgramExistByName(entity.Name, entity.OrganisationRef, entity.ID))
            {
              throw new ApplicationException("Ezzel a névvel már létezik program!");
            }

            OrganisationService orgSrv = new OrganisationService(m_DataContext);
            Organisation orgSelected = orgSrv.OrganisationSelect(entity.OrganisationRef);
            if (orgSelected == null)
              throw new ApplicationException("Ezzel az azonosítóval nem létezik szervezet.");

            bool orgNeedToUpdate = false;

            switch (entity.ProgramCategoryRef)
            {
              case "PRE":
            if (!orgSelected.ActivityPrevention)
            {
              orgSelected.ActivityPrevention = true;
              orgNeedToUpdate = true;
            }
            break;
              case "TRE":
            if (!orgSelected.ActivityRehabilitation)
            {
              orgSelected.ActivityRehabilitation = true;
              orgNeedToUpdate = true;
            }
            break;
              case "RES":
            if (!orgSelected.ActivityResearch)
            {
              orgSelected.ActivityResearch = true;
              orgNeedToUpdate = true;
            }
            break;
              case "OTH":
            if (!orgSelected.ActivityOther)
            {
              orgSelected.ActivityOther = true;
              orgNeedToUpdate = true;
            }
            break;
            }

            // save data:
            entity.IsActive = true;

            m_DataContext.BeginNestedTran();
            try
            {
              entity.LastModifiedDate = DateTime.Now;
              base.ProgramInsert(entity);
              if (orgNeedToUpdate)
              {
            orgSrv.OrganisationUpdateBase(orgSelected);
              }

              #region Megyék

              // Program partner - delete and insert
              //if (entity.Regions.AllCount > 0)
              {
            //egyesével felvesszük
            for (int i = 0; i < entity.Regions.All.Count; i++)
            {
              DBString regionRef = ((ProgramRegion) entity.Regions.All.Items[i]).RegionRef;
              m_DataContext.ndihdProgramRegionInsert(entity.ID, regionRef);
            }
              }

              #endregion

              //feltöltjük a szabadszöveges kereséshez a GlobalSearch táblát
              GlobalSearchService srvGlobalSearch = new GlobalSearchService(m_DataContext);
              srvGlobalSearch.SaveProgram(entity);

              m_DataContext.CommitNested();
            }
            catch
            {
              m_DataContext.RollbackNested();
              throw;
            }

            BusinessAuditEvent.Success(
              new EventParameter("ProgramID", entity.ID.ToString()),
              new EventParameter("ProgramName", entity.Name)
              );
            TraceCallReturnEvent.Raise();
            return;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("ProgramID", entity.ID.ToString()),
              new EventParameter("ProgramName", entity.Name)
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #8
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="programID"></param>
        /// <param name="templateID"></param>
        /// <returns></returns>
        public string GetQuestionFormAsXML(DBGuid programID, DBGuid templateID)
        {
            TraceCallEnterEvent.Raise();
              try
              {
            string result = "";

            ProgramService programService = new ProgramService(m_DataContext);
            Program program = programService.ProgramSelect(programID);
            if (program == null)
              throw new ApplicationException("Ezzel az azonosítóval nem létezik program.");

            TemplateContainer availableTemplates = TemplateSelectOfProgramPendingQuestionForm(programID);

            Template currentTemplate = (Template) availableTemplates[templateID.ToString()];
            if (currentTemplate == null)
              throw new ApplicationException("Ezzel az azonosítóval nem létezik kérdõív a megadott programhoz.");

            if (currentTemplate.Status.Equals("NWD") || currentTemplate.Status.Equals("UWD"))
            {
              throw new ApplicationException("A megadott kérdõív jóváhagyásra vár, nem módosítható.");
            }

            Template extendedTemplate = TemplateSelect(currentTemplate.ID);

            // feltöltjük a válaszokat
            PendingQuestionFormService pendingQuestionFormService = new PendingQuestionFormService(m_DataContext);
            QuestionFormService questionFormService = new QuestionFormService(m_DataContext);
            if (!currentTemplate.PendingQuestionFormID.IsNull)
            {
              PendingQuestionFormDetailContainer pendingAnswers =
            pendingQuestionFormService.SelectChildrenByDetailOfPendingQuestionForm(currentTemplate.PendingQuestionFormID);
              foreach (TemplateDetail d in extendedTemplate.Details.All)
              {
            string hash = currentTemplate.PendingQuestionFormID.ToString() + "<#>" +
                          d.ID.ToString() + "<#>" +
                          d.TemplateRef.ToString();
            PendingQuestionFormDetail answer = (PendingQuestionFormDetail) pendingAnswers[hash];
            if (answer != null)
            {
              d.Answer = answer.Answer;
            }
              }
            }
            else
            {
              if (!currentTemplate.QuestionFormID.IsNull)
              {
            QuestionFormDetailContainer acceptedAnswers =
              questionFormService.SelectChildrenByDetailOfQuestionForm(currentTemplate.QuestionFormID);
            foreach (TemplateDetail d in extendedTemplate.Details.All)
            {
              string hash = currentTemplate.QuestionFormID.ToString() + "<#>" +
                            d.ID.ToString() + "<#>" +
                            d.TemplateRef.ToString();
              QuestionFormDetail answer = (QuestionFormDetail) acceptedAnswers[hash];
              if (answer != null)
              {
                d.Answer = answer.Answer;
              }
            }
              }
            }

            // Build XML
            StringWriter sw = new StringWriter();
            XmlTextWriter xtw = new XmlTextWriter(sw);
            xtw.WriteStartElement("QuestionForm");
            xtw.WriteElementString("QuestionFormID", currentTemplate.QuestionFormID.AsXmlString);
            xtw.WriteElementString("PendingQuestionFormID", currentTemplate.PendingQuestionFormID.AsXmlString);
            xtw.WriteElementString("Status", currentTemplate.Status.AsXmlString);

            //	---	program paramétereinek beállítása
            ProgramCategoryService pcs = new ProgramCategoryService(m_DataContext);
            if (!program.ProgramCategoryRef.IsNull)
            {
              ProgramCategory pc = pcs.ProgramCategorySelect(program.ProgramCategoryRef);
              if (pc != null) program.ProgramCategoryName = pc.Name;
            }

            OrganisationService os = new OrganisationService(m_DataContext);
            if (!program.OrganisationRef.IsNull)
            {
              Organisation org = os.OrganisationSelect(program.OrganisationRef);
              if (org != null) program.OrganisationName = org.Name;
            }

            xtw.WriteRaw(program.AsXmlString);
            string templateXML = ConvertTemplateToXML(extendedTemplate);
            xtw.WriteRaw(templateXML);

            xtw.WriteEndElement();

            result = sw.ToString();

            TraceCallReturnEvent.Raise();
            return result;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
        public new void OrganisationAttachmentUpdate(OrganisationAttachment entity)
        {
            // check permission: admin, writer
              PrincipalPermission permReg = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Registered");
              PrincipalPermission permAdmin = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
              permReg.Union(permAdmin).Demand();

              TraceCallEnterEvent.Raise();
              try
              {
            OrganisationService srvOrg = new OrganisationService();
            Organisation selectedOrg = srvOrg.OrganisationSelect(entity.OrganisationRef);
            if (selectedOrg == null)
              throw new ApplicationException("A megadott azonosítóval nem létezik szervezet.");

            string writerRole = selectedOrg.ID.Value.ToString() + ".Writer";
            PrincipalPermission permWriter = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, writerRole);
            permWriter.Union(permAdmin).Demand();

            // check required fields:
            if (entity.Name.Length == 0)
              throw new ArgumentNullException("OrganisationAttachment.Name", "A csatolt fájl neve nincs megadva.");
            if (entity.Description.Length == 0)
              throw new ArgumentNullException("OrganisationAttachment.Description", "A csatolt fájl leírása nincs megadva.");

            OrganisationAttachment selected = base.OrganisationAttachmentSelect(entity.ID);
            if (selected == null)
              throw new ApplicationException("A csatolt dokumentum nem létezik.");
            if (!selected.IsActive)
              throw new ApplicationException("A csatolt dokumentum nem aktív.");

            // save data
            if (entity.DownloadData != null && entity.DownloadData.Length > 0)
            {
              if (entity.Path.Length == 0 || entity.Path == DBString.Null )
            throw new ArgumentNullException("OrganisationAttachment.Path", "A fájlnév nincs megadva.");

              OrganisationAttachment newAttachment = new OrganisationAttachment(Guid.NewGuid(), entity);
              string fileName = newAttachment.ID.Value.ToString() + Path.GetExtension(newAttachment.Path);
              FileDataContext fileDataContext = new FileDataContext();
              fileDataContext.OrganisationAttachmentInsert(newAttachment.OrganisationRef, fileName, entity.DownloadData);
              newAttachment.CreatedDate = DBDateTime.Now;
              newAttachment.IsActive = true;
              newAttachment.FileSize = entity.DownloadData.Length;
              newAttachment.KefFileTypeRef = entity.KefFileTypeRef;
              selected.IsActive = false;
              m_DataContext.BeginNestedTran();
              try
              {
            base.OrganisationAttachmentInsert(newAttachment);
            OrganisationAttachmentDelete(selected);
            m_DataContext.CommitNested();
              }
              catch
              {
            m_DataContext.RollbackNested();
            throw;
              }
            }
            else
            {
              selected.Name = entity.Name;
              selected.Description = entity.Description;
              selected.Author = entity.Author;
              selected.Publisher = entity.Publisher;
              selected.PublishedYear = entity.PublishedYear;
              selected.Keywords = entity.Keywords;
              selected.KefFileTypeRef = entity.KefFileTypeRef;
              base.OrganisationAttachmentUpdate(selected);
            }

            BusinessAuditEvent.Success(
              new EventParameter("OrganisationAttachmentID", entity.ID.ToString()),
              new EventParameter("OrganisationAttachmentName", entity.Name),
              new EventParameter("OrganisationID", entity.OrganisationRef.ToString())
              );
            TraceCallReturnEvent.Raise();
            return;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("OrganisationAttachmentID", entity.ID.ToString()),
              new EventParameter("OrganisationAttachmentName", entity.Name),
              new EventParameter("OrganisationID", entity.OrganisationRef.ToString())
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #10
0
        public Template TemplateSelectOfOrganisationPendingQuestionFormByTemplateID(DBGuid OrganisationIdVal,
                                                                                DBGuid TemplateIdVal)
        {
            TraceCallEnterEvent.Raise();
              try
              {
            string writerRole = OrganisationIdVal.Value.ToString() + ".Writer";
            string readerRole = OrganisationIdVal.Value.ToString() + ".Reader";
            PrincipalPermission permWriter = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, writerRole);
            PrincipalPermission permReader = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, readerRole);
            permWriter.Union(permReader).Demand();

            OrganisationService orgSrv = new OrganisationService(m_DataContext);
            Organisation selectedOrg = orgSrv.OrganisationSelect(OrganisationIdVal);
            if (selectedOrg == null)
              throw new ApplicationException("A megadott azonosítóval nem létezik szervezet.");
            if (!selectedOrg.IsActive)
              throw new ApplicationException("A szervezet nem aktív.");

            DataSet entitySet = m_DataContext.ndihdTemplateSelectOfOrganisationPendingQuestionFormByTemplateID(
              OrganisationIdVal, TemplateIdVal);
            Template retTempl = new Template(entitySet);

            TraceCallReturnEvent.Raise();
            return retTempl;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #11
0
        public TemplateContainer TemplateSelectOfOrganisationQuestionForm(DBGuid OrganisationIdVal, DBInt PublicityLevel)
        {
            TraceCallEnterEvent.Raise();
              try
              {
            OrganisationService orgSrv = new OrganisationService(m_DataContext);
            Organisation selectedOrg = orgSrv.OrganisationSelect(OrganisationIdVal);
            if (selectedOrg == null)
              throw new ApplicationException("A megadott azonosítóval nem létezik szervezet.");

            if (!selectedOrg.IsActive)
              throw new ApplicationException("A szervezet nem aktív.");

            TemplateContainer result;
            DataSet entitySet = m_DataContext.ndihdTemplateSelectOfOrganisationQuestionForm(
              OrganisationIdVal, PublicityLevel);
            result = new TemplateContainer(entitySet.Tables[0]);

            TraceCallReturnEvent.Raise();
            return result;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #12
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="orgId"></param>
        /// <returns></returns>
        public string GetTemplatesAsXML(DBGuid orgId)
        {
            //az xml -ben az alábbi szerkezetû adatok vannak :
              //	- DBGuid programID, DBGuid templateID ,String programName , String templateName
              TraceCallEnterEvent.Raise();

              StringWriter sw = new StringWriter();
              XmlTextWriter xtw = new XmlTextWriter(sw);

              try
              {
            OrganisationService orgSrv = new OrganisationService(m_DataContext);
            ProgramContainer programs = orgSrv.SelectChildrenByProgramOfOrganisation(orgId);

            xtw.WriteStartElement("Programs");

            //végig kell menni az összes olyan programon amely az adott szervezet azonosítóhoz tartozik
            foreach (Program program in programs.All)
            {
              if (program.IsActive)
              {
            TemplateContainer availableTemplates = TemplateSelectOfProgramPendingQuestionForm(program.ID);

            //majd ... végig kell menni az összes kérdõíven amely a prgramokhoz tartozik
            foreach (Template currentTemplate in availableTemplates.All)
            {
              if (currentTemplate.IsActive)
              {
                //Ha a kérdõív jóváhagyásra vár akkor nem módosítható -> nem kell visszaadni
                if (!currentTemplate.Status.Equals("NWD") && !currentTemplate.Status.Equals("UWD"))
                {
                  xtw.WriteStartElement("Program");
                  xtw.WriteElementString("ProgramID", program.ID.ToString());
                  xtw.WriteElementString("ProgramName", program.Name.ToString());
                  xtw.WriteElementString("TemplateID", currentTemplate.ID.ToString());
                  xtw.WriteElementString("TemplateName", currentTemplate.Name);
                  xtw.WriteEndElement();
                }
              }
            }
              }
            }

            xtw.WriteEndElement();

            xtw.Flush();
            return "<?xml version='1.0' encoding='UTF-8'?>\n" + sw.ToString();
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
        public bool RegisterOrganisationToUserAccept(RegisterOrganisation entity)
        {
            //Check permission: Admin
              PrincipalPermission permissionAdm =
            new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
              permissionAdm.Demand();

              TraceCallEnterEvent.Raise();
              try
              {
            // Check required fields
            // Organisation
            if (entity.Name.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.Name", "A regisztrálandó szervezet neve nincs megadva.");
            if (entity.RegionRef.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.RegionRef",
                                          "A regisztrálandó szervezet megyéje nincs megadva.");
            if (entity.WorkingAreaRef.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.WorkingAreaRef",
                                          "A regisztrálandó szervezet mûködési területe nincs megadva.");
            if (entity.OrganisationFormRef.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.OrganisationFormRef",
                                          "A regisztrálandó szervezet szervezeti formája nincs megadva.");
            if (entity.ReasonOfRegistration.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.ReasonOfRegistration",
                                          "Az adatbázis használatának célja nincs megadva.");
            if (entity.PostCode.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.PostCode",
                                          "A szervezet címének irányítószáma nincs megadva.");
            if (entity.City.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.City",
                                          "A szervezet címének település része nincs megadva.");
            if (entity.Address.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.Address",
                                          "A szervezet címének utca, házszám része nincs megadva.");

            // User
            if (entity.LoginName.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.LoginName",
                                          "A regisztrálandó felhasználó bejelentkezési neve nincs megadva.");
            if (entity.UserName.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.UserName",
                                          "A regisztrálandó felhasználó neve nincs megadva.");
            if (entity.UserSex.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.UserSex",
                                          "A regisztrálandó felhasználó neme nincs megadva.");
            if (entity.UserBirthYear.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.UserBirthYear",
                                          "A regisztrálandó felhasználó születési éve nincs megadva.");
            if (entity.UserEmail.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.UserEmail",
                                          "A regisztrálandó felhasználó e-mail címe nincs megadva.");
            if (entity.QualificationRef.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.QualificationRef",
                                          "A regisztrálandó felhasználó legmagasabb iskolai végzettsége nincs megadva.");

            // Logical checks
            RegisterOrganisation selected = base.RegisterOrganisationSelect(entity.ID);
            if (selected == null)
              throw new ApplicationException("A megadott azonosítóval nem létezik regisztrálandó szervezet.");
            if (! selected.Status.Equals(RegistrationStatus.New))
              throw new ApplicationException("Csak új státuszú regisztráció bírálható el.");

            // Set properties
            entity.SentDate = selected.SentDate;
            entity.DecidedBy = Thread.CurrentPrincipal.Identity.Name;
            entity.DecidedDate = DBDateTime.Now;
            entity.Status = RegistrationStatus.Accepted;

            Organisation newOrg = new Organisation(entity.ID);
            newOrg.Name = entity.Name;
            newOrg.Department = entity.Department;
            newOrg.PostCode = entity.PostCode;
            newOrg.City = entity.City;
            newOrg.Address = entity.Address;
            newOrg.Country = entity.Country;
            newOrg.Phone1 = entity.Phone1;
            newOrg.Fax = entity.Fax;
            newOrg.Email1 = entity.Email1;
            newOrg.HomePage = entity.HomePage;
            newOrg.RegionRef = entity.RegionRef;
            newOrg.WorkingAreaRef = entity.WorkingAreaRef;
            newOrg.WorkingAreaOther = entity.WorkingAreaOther;
            newOrg.OrganisationFormRef = entity.OrganisationFormRef;
            newOrg.ActivityPrevention = entity.ActivityPrevention;
            newOrg.ActivityRehabilitation = entity.ActivityRehabilitation;
            newOrg.ActivityResearch = entity.ActivityResearch;
            newOrg.ActivityOther = entity.ActivityOther;
            newOrg.SourceGovernment = 0;
            newOrg.SourceCompetition = 0;
            newOrg.SourceSponsor = 0;
            newOrg.SourceDonation = 0;
            newOrg.SourceTax = 0;
            newOrg.SourceOther = 0;
            newOrg.IsActive = true;
            // defaults
            newOrg.WorkersFix = 0;
            newOrg.WorkersExternal = 0;
            newOrg.WorkersVolunteer = 0;
            newOrg.JobPsychologist = 0;
            newOrg.JobPsychiater = 0;
            newOrg.JobDoctor = 0;
            newOrg.JobMedicalExpert = 0;
            newOrg.JobHealthExpert = 0;
            newOrg.JobSociologist = 0;
            newOrg.JobSocialPolitician = 0;
            newOrg.JobSocialWorker = 0;
            newOrg.JobSocialPedagogist = 0;
            newOrg.JobPedagogist = 0;
            newOrg.JobManualist = 0;
            newOrg.JobLawyer = 0;
            newOrg.JobPoliceman = 0;
            newOrg.JobMentalhygiene = 0;
            newOrg.JobCultureOrganizer = 0;
            newOrg.JobOther1 = 0;
            newOrg.JobOther2 = 0;
            newOrg.JobOther3 = 0;
            newOrg.IsActual = true;
            newOrg.LastModified = DateTime.Now;
            //set mail:
            Email mail = new Email(Guid.NewGuid());
            mail.Category = EmailCategory.OrganisationRegistrationAccept;
            mail.To = entity.UserEmail;

            //Subject és body lekérdezése
            string body = "";
            string subject = "";
            EmailTemplateService srvTemplate = new EmailTemplateService();
            srvTemplate.GetEmailTemplateByCode(ref subject, ref body, EmailCategory.OrganisationRegistrationAccept);

            mail.Subject = subject;

            body = body.Replace("<FULL_USER_NAME>", entity.Name);
            body = body.Replace("<LOGIN_NAME>", entity.LoginName);
            body = body.Replace("<ORGANIZATION>", newOrg.Name);

            mail.MailBody = body;

            // Save data to database
            EmailService emailSrv = new EmailService(m_DataContext);
            m_DataContext.BeginNestedTran();
            try
            {
              //elmentjük a szervezet adatait
              OrganisationService orgSrv = new OrganisationService(m_DataContext);
              orgSrv.OrganisationInsert(newOrg);

              //eltároljuk a szervezet-felhasználó kapcsolatot
              OrganisationUserService orgUserSrv = new OrganisationUserService(m_DataContext);
              OrganisationUser orgUser = new OrganisationUser(newOrg.ID, entity.LoginName);
              orgUser.Right = UserRights.Write;
              orgUserSrv.OrganisationUserInsert(orgUser);

              base.RegisterOrganisationUpdate(entity);
              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("RegisterOrganisationID", entity.ID.ToString()),
              new EventParameter("OrganisationID", newOrg.ID.ToString()),
              new EventParameter("OrganisationName", entity.Name),
              new EventParameter("LoginName", entity.LoginName)
              );
            TraceCallReturnEvent.Raise();
            return true;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("RegisterOrganisationID", entity.ID.ToString()),
              new EventParameter("OrganisationName", entity.Name),
              new EventParameter("LoginName", entity.LoginName)
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
        public bool RegisterKefOrganisation(RegisterOrganisation entity, string regSearchCode, DBInt disSearchCode,
                                        string estYear, string estMonth, string areaHomePage)
        {
            //Check permission: Admin
              PrincipalPermission permissionAdm =
            new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
              permissionAdm.Demand();

              TraceCallEnterEvent.Raise();
              try
              {
            // Check required fields
            // Organisation
            if (entity.Name.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.Name", "A regisztrálandó szervezet neve nincs megadva.");
            if (entity.RegionRef.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.RegionRef",
                                          "A regisztrálandó szervezet megyéje nincs megadva.");
            if (entity.WorkingAreaRef.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.WorkingAreaRef",
                                          "A regisztrálandó szervezet mûködési területe nincs megadva.");
            if (entity.OrganisationFormRef.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.OrganisationFormRef",
                                          "A regisztrálandó szervezet szervezeti formája nincs megadva.");
            if (entity.ReasonOfRegistration.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.ReasonOfRegistration",
                                          "Az adatbázis használatának célja nincs megadva.");
            if (entity.PostCode.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.PostCode",
                                          "A szervezet címének irányítószáma nincs megadva.");
            if (entity.City.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.City",
                                          "A szervezet címének település része nincs megadva.");
            if (entity.Address.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.Address",
                                          "A szervezet címének utca, házszám része nincs megadva.");

            // User
            if (entity.LoginName.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.LoginName",
                                          "A regisztrálandó felhasználó bejelentkezési neve nincs megadva.");
            if (entity.UserName.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.UserName",
                                          "A regisztrálandó felhasználó neve nincs megadva.");
            if (entity.UserSex.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.UserSex",
                                          "A regisztrálandó felhasználó neme nincs megadva.");
            if (entity.UserBirthYear.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.UserBirthYear",
                                          "A regisztrálandó felhasználó születési éve nincs megadva.");
            if (entity.UserEmail.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.UserEmail",
                                          "A regisztrálandó felhasználó e-mail címe nincs megadva.");
            if (entity.QualificationRef.Length == 0)
              throw new ArgumentNullException("RegisterOrganisation.QualificationRef",
                                          "A regisztrálandó felhasználó legmagasabb iskolai végzettsége nincs megadva.");

            Organisation newOrg = new Organisation(entity.ID);
            newOrg.Name = entity.Name;
            newOrg.Department = entity.Department;
            newOrg.PostCode = entity.PostCode;
            newOrg.City = entity.City;
            newOrg.Address = entity.Address;
            newOrg.Country = entity.Country;
            newOrg.Phone1 = entity.Phone1;
            newOrg.Fax = entity.Fax;
            newOrg.Email1 = entity.Email1;
            newOrg.HomePage = entity.HomePage;
            newOrg.RegionRef = entity.RegionRef;
            newOrg.WorkingAreaRef = entity.WorkingAreaRef;
            newOrg.WorkingAreaOther = entity.WorkingAreaOther;
            newOrg.OrganisationFormRef = entity.OrganisationFormRef;
            newOrg.ActivityPrevention = entity.ActivityPrevention;
            newOrg.ActivityRehabilitation = entity.ActivityRehabilitation;
            newOrg.ActivityResearch = entity.ActivityResearch;
            newOrg.ActivityOther = entity.ActivityOther;
            newOrg.SourceGovernment = 0;
            newOrg.SourceCompetition = 0;
            newOrg.SourceSponsor = 0;
            newOrg.SourceDonation = 0;
            newOrg.SourceTax = 0;
            newOrg.SourceOther = 0;
            newOrg.IsActive = true;
            // defaults
            newOrg.WorkersFix = 0;
            newOrg.WorkersExternal = 0;
            newOrg.WorkersVolunteer = 0;
            newOrg.JobPsychologist = 0;
            newOrg.JobPsychiater = 0;
            newOrg.JobDoctor = 0;
            newOrg.JobMedicalExpert = 0;
            newOrg.JobHealthExpert = 0;
            newOrg.JobSociologist = 0;
            newOrg.JobSocialPolitician = 0;
            newOrg.JobSocialWorker = 0;
            newOrg.JobSocialPedagogist = 0;
            newOrg.JobPedagogist = 0;
            newOrg.JobManualist = 0;
            newOrg.JobLawyer = 0;
            newOrg.JobPoliceman = 0;
            newOrg.JobMentalhygiene = 0;
            newOrg.JobCultureOrganizer = 0;
            newOrg.JobOther1 = 0;
            newOrg.JobOther2 = 0;
            newOrg.JobOther3 = 0;

            //It's a KEF -> set KEF specific data
            newOrg.IsKef = true;
            newOrg.RegionSearchCodeRef = regSearchCode;
            newOrg.DistrictSearchCodeRef = disSearchCode;
            newOrg.EstablishmentYear = estYear;
            newOrg.EstablishmentMonth = estMonth;
            newOrg.AreaHomePage = areaHomePage;
            newOrg.IsActual = true;
            newOrg.LastModified = DateTime.Now;

            //save the user
            User newUser = new User(entity.LoginName);
            newUser.OrganisationRef = entity.ID;

            string generatedPassword = Password.Generate();
            newUser.Password = Password.ComputeHash(generatedPassword);

            newUser.Address = entity.UserAddress;
            newUser.Name = entity.UserName;
            newUser.Sex = entity.UserSex;
            newUser.BirthYear = entity.UserBirthYear;
            newUser.Phone = entity.UserPhone;
            newUser.Email = entity.UserEmail;
            newUser.PostCode = entity.UserPostCode;
            newUser.City = entity.UserCity;
            newUser.Address = entity.UserAddress;
            newUser.Country = entity.UserCountry;
            newUser.QualificationRef = entity.QualificationRef;
            newUser.ReasonOfRegistration = entity.ReasonOfRegistration;
            newUser.Right = UserRights.Write;
            newUser.IsActive = true;
            newUser.NewsMail = false;
            newUser.MustChangePassword = true;
            newUser.FailedAttemptCount = 0;
            newUser.LockedOut = false;

            //set mail:
            Email mail = new Email(Guid.NewGuid());
            mail.Category = EmailCategory.OrganisationRegistrationAccept;
            mail.To = entity.UserEmail;

            //Subject és body lekérdezése
            string body = "";
            string subject = "";
            IEmailTemplateService srvTemplate = new EmailTemplateService();
            srvTemplate.GetEmailTemplateByCode(ref subject, ref body, EmailCategory.OrganisationRegistrationAccept);

            mail.Subject = subject;

            body = body.Replace("<FULL_USER_NAME>", entity.Name);
            body = body.Replace("<LOGIN_NAME>", entity.LoginName);
            body = body.Replace("<ORGANIZATION>", newOrg.Name);
            body = body.Replace("<PASSWORD>", generatedPassword);
            mail.MailBody = body;

            // Save data to database
            EmailService emailSrv = new EmailService(m_DataContext);
            m_DataContext.BeginNestedTran();
            try
            {
              UserServiceBase userSrv = new UserServiceBase(m_DataContext);
              OrganisationService orgSrv = new OrganisationService(m_DataContext);
              orgSrv.OrganisationInsert(newOrg);
              userSrv.UserInsert(newUser);
              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("RegisterOrganisationID", entity.ID.ToString()),
              new EventParameter("OrganisationID", newOrg.ID.ToString()),
              new EventParameter("OrganisationName", entity.Name),
              new EventParameter("LoginName", entity.LoginName)
              );
            TraceCallReturnEvent.Raise();
            return true;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("RegisterOrganisationID", entity.ID.ToString()),
              new EventParameter("OrganisationName", entity.Name),
              new EventParameter("LoginName", entity.LoginName)
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #15
0
        public override void OrgMemberOfOrgUpdate(OrgMemberOfOrg entity)
        {
            TraceCallEnterEvent.Raise();
              try
              {
            m_DataContext.BeginNestedTran();

            try
            {
              #region : Frissítjük a dKefMembersLastModified idõpontot :

              OrganisationService srvOrg = new OrganisationService(m_DataContext);
              Organisation org = srvOrg.OrganisationSelect(entity.OrganisationKefRef);

              org.KefMembersLastModified = DateTime.Now;

              srvOrg.OrganisationUpdateBase(org);

              #endregion

              //elmentjük az entitás adatait
              base.OrgMemberOfOrgUpdate(entity);

              m_DataContext.CommitNested();
            }
            catch
            {
              m_DataContext.RollbackNested();
              throw;
            }

            TraceCallReturnEvent.Raise();

            return;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
        public void PendingQuestionFormUpdateForOrganisation(PendingQuestionForm entity)
        {
            TraceCallEnterEvent.Raise();
              try
              {
            if (entity.OrganisationID.IsNull)
              throw new ArgumentNullException("PendingQuestionForm.OrganisationID", "A szervezet azonosítója nincs megadva.");
            string writerRole = entity.OrganisationID.Value.ToString() + ".Writer";
            PrincipalPermission permWriter = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, writerRole);
            permWriter.Demand();

            OrganisationService orgSrv = new OrganisationService(m_DataContext);
            Organisation organisation = orgSrv.OrganisationSelect(entity.OrganisationID);
            if (organisation == null)
              throw new ApplicationException("A megadott azonosítóval nem létezik szervezet.");

            // required:
            if (entity.TemplateRef.IsNull)
              throw new ArgumentNullException("PendingQuestionForm.TemplateRef", "A sablon azonosítója nincs megadva.");
            if (entity.Status.Length == 0)
              throw new ArgumentNullException("PendingQuestionForm.Status", "A státusz nincs megadva.");

            // logical check:
            TemplateCategoryService templCatSrv = new TemplateCategoryService(m_DataContext);
            TemplateCategory templCat = templCatSrv.TemplateCategorySelect(entity.TemplateRef, "ORG");
            if (templCat == null)
              throw new ApplicationException("Szervezethez nem tölthetõ ki ez a sablon.");

            PendingQuestionForm selectedPending = base.PendingQuestionFormSelect(entity.ID); //Ez van az adatbázisban
            if (selectedPending == null)
              throw new ApplicationException("A módosítani kívánt kérdõív nem létezik.");
            PendingQuestionFormDetailService detailService = new PendingQuestionFormDetailService(m_DataContext);
            PendingQuestionFormDetailContainer selectedPendingDetails = base.SelectChildrenByDetailOfPendingQuestionForm(selectedPending.ID);
            // set data:
            entity.SentBy = Thread.CurrentPrincipal.Identity.Name;
            entity.SentDate = DBDateTime.Now;
            entity.LastModifiedByUser = DBDateTime.Now;
            bool onlyIsActualChanged = true;
            if (entity.Status == "UWD" || entity.Status == "NWD")
            {
              entity.IsActual = true; //Új- jóváhagyásra vár, módosítiott jóváhagyásra vár
              //Kell egy ellenõrzés, hogy csak a bIsActual változott-e
              //onlyIsActualChanged =
              //  entity.QuestionFormRef == selectedPending.QuestionFormRef && entity.TemplateRef == selectedPending.TemplateRef;

              //foreach (PendingQuestionFormDetail detail in entity.Details.All)
              //{
              //   foreach (PendingQuestionFormDetail selectedDetail in selectedPendingDetails.All)
              //   {
              //     if(detail.TemplateDetailRef == selectedDetail.TemplateDetailRef && detail.TemplateRef == selectedDetail.TemplateRef)
              //     {
              //       onlyIsActualChanged &= detail.Answer == selectedDetail.Answer;
              //     }
              //   }
              //}
              //Ha az alapadatok és minden váasz egyforma, akkor csak a bIsActualt akarta menteni, tehát jóv kell hagyni a végén
            }
            else
            {
              entity.IsActual = false;
            }

            m_DataContext.BeginNestedTran();
            try
            {
              base.PendingQuestionFormUpdate(entity);
              base.DeleteChildrenByDetailOfPendingQuestionForm(entity.ID);
              foreach (PendingQuestionFormDetail detail in entity.Details.All)
              {
            detailService.PendingQuestionFormDetailInsert(detail);
              }
              m_DataContext.CommitNested();

            }
            catch
            {
              m_DataContext.RollbackNested();
              throw;
            }

            // Log success
            BusinessAuditEvent.Success(
              new EventParameter("PendingQuestionFormID", entity.ID.ToString()),
              new EventParameter("OrganisationID", entity.OrganisationID.ToString())
              );
            TraceCallReturnEvent.Raise();
            return;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("PendingQuestionFormID", entity.ID.ToString()),
              new EventParameter("OrganisationID", entity.OrganisationID.ToString())
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #17
0
        public new void ProgramPartnerInsert(ProgramPartner entity)
        {
            ProgramPartner part = base.ProgramPartnerSelect(entity.OrganisationRef, entity.ProgramRef);
              if (part != null)
              {
            return;
              }

              TraceCallEnterEvent.Raise();
              try
              {
            // logical checks:
            ProgramService progSrv = new ProgramService();
            Program selected = progSrv.ProgramSelect(entity.ProgramRef);
            if (selected == null)
              throw new ApplicationException("Ezzel az azonosítóval nem létezik program.");
            if (!selected.IsActive)
              throw new ApplicationException("A program nem aktív.");

            // check permission: Writer or Admin
            string writerRole = selected.OrganisationRef.Value.ToString() + ".Writer";
            PrincipalPermission permWriter = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, writerRole);
            PrincipalPermission permAdmin = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
            permWriter.Union(permAdmin).Demand();

            if (entity.OrganisationRef.Value.Equals(selected.OrganisationRef.Value))
              throw new ApplicationException("A szervezet nem lehet saját maga partnere.");

            OrganisationService orgSrv = new OrganisationService();
            Organisation partner = orgSrv.OrganisationSelect(entity.OrganisationRef);
            if (partner == null)
              throw new ApplicationException("Ezzel az azonosítóval nem létezik szervezet.");
            if (!partner.IsActive)
              throw new ApplicationException("A szervezet nem aktív.");

            // save data:
            base.ProgramPartnerInsert(entity);

            BusinessAuditEvent.Success(
              new EventParameter("ProgramID", entity.ProgramRef.ToString()),
              new EventParameter("OrganisationID", entity.OrganisationRef.ToString())
              );
            TraceCallReturnEvent.Raise();
            return;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("ProgramID", entity.ProgramRef.ToString()),
              new EventParameter("OrganisationID", entity.OrganisationRef.ToString())
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
        public void PendingQuestionFormInsertForOrganisation(PendingQuestionForm entity)
        {
            TraceCallEnterEvent.Raise();
              try
              {
            if (entity.OrganisationID.IsNull)
              throw new ArgumentNullException("PendingQuestionForm.OrganisationID", "A szervezet azonosítója nincs megadva.");

            string writerRole = entity.OrganisationID.Value.ToString() + ".Writer";
            PrincipalPermission permWriter = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, writerRole);
            permWriter.Demand();

            OrganisationService orgSrv = new OrganisationService(m_DataContext);
            Organisation organisation = orgSrv.OrganisationSelect(entity.OrganisationID);
            if (organisation == null)
              throw new ApplicationException("A megadott azonosítóval nem létezik szervezet.");

            // required:
            if (entity.TemplateRef.IsNull)
              throw new ArgumentNullException("PendingQuestionForm.TemplateRef", "A sablon azonosítója nincs megadva.");
            if (entity.Status.Length == 0)
              throw new ArgumentNullException("PendingQuestionForm.Status", "A státusz nincs megadva.");

            // logical check:
            TemplateCategoryService templCatSrv = new TemplateCategoryService(m_DataContext);
            TemplateCategory templCat = templCatSrv.TemplateCategorySelect(entity.TemplateRef, "ORG");
            if (templCat == null)
              throw new ApplicationException("Szervezethez nem tölthetõ ki ez a sablon.");

            // ellenõrizzük, hogy nincs folyamatban ilyen kérdõív kitöltése:
            TemplateService srv = new TemplateService(m_DataContext);
            Template tmplCurrentPending =
              srv.TemplateSelectOfOrganisationPendingQuestionFormByTemplateID(organisation.ID, entity.TemplateRef);

            if (!tmplCurrentPending.Status.IsNull)
            {
              throw new ApplicationException("A kérdõív nem módosítható, mert a módosítás már folyamatban van.");
            }

            // set data:
            entity.SentBy = Thread.CurrentPrincipal.Identity.Name;
            entity.SentDate = DBDateTime.Now;
            entity.LastModifiedByUser = DBDateTime.Now;
            if (entity.Status == "UWD" || entity.Status == "NWD")
            entity.IsActual = true;
            else
            {
              entity.IsActual = false;
            }
            OrganisationPendingQuestionForm organisationPending =
              new OrganisationPendingQuestionForm(entity.OrganisationID, entity.ID);

            PendingQuestionFormDetailService detailService = new PendingQuestionFormDetailService(m_DataContext);
            OrganisationPendingQuestionFormService organisationPendingSrv =
              new OrganisationPendingQuestionFormService(m_DataContext);
            m_DataContext.BeginNestedTran();
            try
            {
              base.PendingQuestionFormInsert(entity);
              foreach (PendingQuestionFormDetail detail in entity.Details.All)
              {
            detailService.PendingQuestionFormDetailInsert(detail);
              }
              organisationPendingSrv.OrganisationPendingQuestionFormInsert(organisationPending);
              m_DataContext.CommitNested();
            }
            catch
            {
              m_DataContext.RollbackNested();
              throw;
            }

            // Log success
            BusinessAuditEvent.Success(
              new EventParameter("PendingQuestionFormID", entity.ID.ToString()),
              new EventParameter("OrganisationID", entity.OrganisationID.ToString())
              );
            TraceCallReturnEvent.Raise();
            return;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("Exception", ex.ToString()),
              new EventParameter("PendingQuestionFormID", entity.ID.ToString()),
              new EventParameter("OrganisationID", entity.OrganisationID.ToString())
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
        public bool OrganisationPendingUserAccept(Guid OrgPendingUseID, Guid OrganisationID, string LoginName,
                                              string RejectText)
        {
            //Check permission: Admin
              PrincipalPermission permissionAdm =
            new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator");
              permissionAdm.Demand();

              TraceCallEnterEvent.Raise();
              try
              {
            // Check required fields
            if (OrgPendingUseID == Guid.Empty)
              throw new ArgumentNullException("OrganisationPendingUser.OrgPendingUseID",
                                          "A jóváhagyás azonosítója nincs megadva.");
            if (OrganisationID == Guid.Empty)
              throw new ArgumentNullException("OrganisationPendingUser.OrganisationRef",
                                          "A regisztrálandó szervezet azonosítója nincs megadva.");
            if (LoginName.Length == 0)
              throw new ArgumentNullException("OrganisationPendingUser.LoginNameRef",
                                          "A regisztrálandó felhasználó nincs megadva.");

            // Logical checks
            OrganisationPendingUser selected = base.OrganisationPendingUserSelect(OrgPendingUseID);
            if (selected == null)
              throw new ApplicationException("A megadott azonosítóval nem létezik regisztráció.");
            if (! selected.Status.Equals(RegistrationStatus.New))
              throw new ApplicationException("Csak új státuszú regisztráció bírálható el.");

            // Frissitjük a regisztráció adatait
            selected.SentDate = selected.SentDate;
            selected.DecidedBy = Thread.CurrentPrincipal.Identity.Name;
            selected.DecidedDate = DBDateTime.Now;
            selected.Status = RegistrationStatus.Accepted;
            selected.RejectComment = RejectText;

            //Emailben szereplõ adatok lekkérdezése
            string userEmail = "";
            string userFullName = "";
            string organisationName = "";
            OrganisationService srvOrg = new OrganisationService();
            UserService srvUser = new UserService();
            Organisation org = srvOrg.OrganisationSelect(OrganisationID);
            User u = srvUser.UserSelect(LoginName);

            userEmail = u.Email;
            userFullName = u.Name;
            organisationName = org.Name;

            //set mail:
            Email mail = new Email(Guid.NewGuid());
            mail.Category = EmailCategory.OrganisationPendingUserAccept;
            mail.To = userEmail;

            //Subject és body lekérdezése
            string body = "";
            string subject = "";
            IEmailTemplateService srvTemplate = new EmailTemplateService();
            srvTemplate.GetEmailTemplateByCode(ref subject, ref body, EmailCategory.OrganisationPendingUserAccept);

            mail.Subject = subject;

            body = body.Replace("<FULL_USER_NAME>", userFullName);
            body = body.Replace("<LOGIN_NAME>", LoginName);
            body = body.Replace("<ORGANISATION>", organisationName);
            mail.MailBody = body;

            // Save data to database
            EmailService emailSrv = new EmailService(m_DataContext);
            m_DataContext.BeginNestedTran();
            try
            {
              //eltároljuk a szervezet-felhasználó kapcsolatot
              OrganisationUserService orgUserSrv = new OrganisationUserService(m_DataContext);
              OrganisationUser orgUser = new OrganisationUser(OrganisationID, LoginName);
              orgUser.Right = selected.Right;
              orgUserSrv.OrganisationUserInsert(orgUser);

              base.OrganisationPendingUserUpdate(selected);
              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("OrganisationPendingUser", OrgPendingUseID.ToString()),
              new EventParameter("OrganisationID", OrganisationID.ToString()),
              new EventParameter("LoginName", LoginName)
              );
            TraceCallReturnEvent.Raise();
            return true;
              }
              catch (Exception ex)
              {
            ExceptionManager.Publish(ex);
            BusinessAuditEvent.Fail(
              new EventParameter("OrganisationPendingUser", OrgPendingUseID.ToString()),
              new EventParameter("OrganisationID", OrganisationID.ToString()),
              new EventParameter("LoginName", LoginName)
              );
            TraceCallReturnEvent.Raise(false);
            throw;
              }
        }
예제 #20
0
        /// <summary>
        /// Exports to CSV2.
        /// </summary>
        /// <param name="dt">The dt.</param>
        /// <param name="publicityLevel">The publicity level.</param>
        /// <param name="ownOrgId">The own org id.</param>
        /// <returns></returns>
        private static string CreateCsvFromPrograms(DataTable dt, int publicityLevel, Guid ownOrgId)
        {
            string EndOfLine = "\n";
              string separator = ";";
              string separator5 = ";;;;;";
              StringBuilder rtfString = new StringBuilder();

              // Build csv header row
              rtfString.Append("Program neve;");
              rtfString.Append("Program típusa;");
              rtfString.Append("Szervezet;");
              rtfString.Append("Felelõs;");
              rtfString.Append("Koordinátor1;");
              rtfString.Append("Koordinátor2;");
              rtfString.Append("Program státusza;");
              rtfString.Append("Program kezdete;");
              rtfString.Append("Program vége;");
              rtfString.Append("A program részletes leírása;");

              rtfString.Append("Résztvevõ szakember neve;");
              rtfString.Append("E-mail cím;");
              rtfString.Append("Cím;");
              rtfString.Append("Telefonszám;");
              rtfString.Append("Partner szervezet neve;");
              rtfString.Append("Címe;");
              rtfString.Append("Honlap;");
              rtfString.Append("Megye;");
              rtfString.Append("Szervezeti forma;");
              rtfString.Append("Csatolt dokumentum neve;");
              rtfString.Append("Fájlnév;");
              rtfString.Append("Dátum;");
              rtfString.Append("Fájlméret;\n");

              foreach (DataRow dr in dt.Rows)
              {
            Guid progId = new Guid(dr["uID"].ToString());
            //Program prg = (Program)doc;
            StringBuilder line = new StringBuilder();
            int maxCount = 0; //letároljuk a maximális elemszámot -> ennyi sora lesz az adott programnak

            ExpertService srvExpert = new ExpertService();
            //Expert responsible = srvExpert.ExpertSelect(prg.ResponsibleRef);
            //Expert coordinator1 = srvExpert.ExpertSelect(prg.Coordinator1Ref);
            //Expert coordinator2 = srvExpert.ExpertSelect(prg.Coordinator1Ref);

            //elsõ sor összeállítása
            line.Append(Helper.CsvCheck(dr["cName"].ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(dr["cProgramCategory"].ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(dr["cOrganisationName"].ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(dr["cResponsibleName"].ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(dr["cCoord1Name"].ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(dr["cCoord2Name"].ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(dr["cProgramStatus"].ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(dr["cStartDate"].ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(dr["cFinishDate"].ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(dr["cDescription"].ToString()));
            line.Append(separator);

            #region Résztvevõ szakemberek lekérdezése

            ExpertDispsetContainer contExpert = srvExpert.ExpertSelectParticipantsOfProgram(progId);

            if (contExpert.AllCount > maxCount) maxCount = contExpert.AllCount;

            if (contExpert.AllCount > 0)
            {
              ExpertDispset firstExpert = (ExpertDispset) contExpert.All.Items[0];
              line.Append(Helper.CsvCheck(firstExpert.Name));
              line.Append(separator);
              if (publicityLevel != 0)
              {
            line.Append(Helper.CsvCheck(firstExpert.Email1 + " " + firstExpert.Email2 + " " + firstExpert.Email3));
            line.Append(separator);
              }
              else
              {
            line.Append(separator);
              }
              line.Append(Helper.CsvCheck(firstExpert.Address));
              line.Append(separator);
              line.Append(Helper.CsvCheck(firstExpert.Phone1 + " " + firstExpert.Phone2 + " " + firstExpert.Phone3));
              line.Append(separator);
            }
            else
            {
              line.Append(separator);
              line.Append(separator);
              line.Append(separator);
              line.Append(separator);
            }

            #endregion

            #region Partner szervezetek lekérdezése

            OrganisationService srvOrg = new OrganisationService();
            OrganisationDispsetContainer contDispOrg = srvOrg.OrganisationSelectPartnersOfProgram(progId);

            if (contDispOrg.AllCount > maxCount) maxCount = contDispOrg.AllCount;

            if (contDispOrg.AllCount > 0)
            {
              OrganisationDispset firstDispOrg = (OrganisationDispset) contDispOrg.All.Items[0];
              line.Append(Helper.CsvCheck(firstDispOrg.Name));
              line.Append(separator);
              line.Append(Helper.CsvCheck(firstDispOrg.Address));
              line.Append(separator);
              line.Append(Helper.CsvCheck(firstDispOrg.HomePage));
              line.Append(separator);

              RegionService srvRegion = new RegionService();
              line.Append(Helper.CsvCheck(srvRegion.RegionSelect(firstDispOrg.RegionRef).Name));
              line.Append(separator);

              OrganisationFormService srvOrgForm = new OrganisationFormService();
              line.Append(Helper.CsvCheck(srvOrgForm.OrganisationFormSelect(firstDispOrg.OrganisationFormRef).Name));
              line.Append(separator);
            }
            else
            {
              line.Append(separator);
              line.Append(separator);
              line.Append(separator);
              line.Append(separator);
              line.Append(separator);
            }

            #endregion

            #region Csatolt dokumentumok lekérdezése

            ProgramAttachmentService srvProgAttach = new ProgramAttachmentService();
            ProgramAttachmentDispsetContainer contDispProgAttach =
              srvProgAttach.ProgramAttachmentSelectAttachmentsOfProgram(progId);

            if (contDispProgAttach.AllCount > maxCount) maxCount = contDispProgAttach.AllCount;

            if (contDispProgAttach.AllCount > 0)
            {
              ProgramAttachmentDispset firstDispProgAttach = (ProgramAttachmentDispset) contDispProgAttach.All.Items[0];

              line.Append(Helper.CsvCheck(firstDispProgAttach.Name.ToString()));
              line.Append(separator);
              line.Append(Helper.CsvCheck(firstDispProgAttach.Path.ToString()));
              line.Append(separator);
              line.Append(Helper.CsvCheck(firstDispProgAttach.CreatedDate.ToString()));
              line.Append(separator);
              line.Append(Helper.CsvCheck(firstDispProgAttach.FileSize.ToString()));
              line.Append(separator);
            }
            else
            {
              line.Append(separator);
              line.Append(separator);
              line.Append(separator);
              line.Append(separator);
            }

            #endregion

            #region Kérdõívek lekérdezése (kérdések/válaszok)

            //ITemplateService srvTemplate = ServiceFactory.GetTemplateService();
            TemplateContainer contTemplate = null;

            #endregion

            rtfString.Append(line);
            rtfString.Append(EndOfLine);
            line = new StringBuilder(); //új sor

            bool IsBinate = false;

            //többi sor
            for (int i = 1; i < maxCount; i++)
            {
              //ha nincs kérdõív akkor kiugrunk
              if ((maxCount == 1) && (contTemplate.AllCount == 0))
              {
            rtfString.Append(line);
            rtfString.Append(EndOfLine);
            break;
              }

              IsBinate = !IsBinate;
              line.Append(separator5);
              line.Append(separator5);

              #region a többi résztvevõ szakember hozzáadása

              if (contExpert.AllCount > i)
              {
            ExpertDispset firstExpert = (ExpertDispset) contExpert.All.Items[i];
            line.Append(Helper.CsvCheck(firstExpert.Name));
            line.Append(separator);
            if (publicityLevel != 0)
            {
              line.Append(Helper.CsvCheck(firstExpert.Email1 + " " + firstExpert.Email2 + " " + firstExpert.Email3));
              line.Append(separator);
            }
            else
            {
              line.Append(separator);
            }

            line.Append(Helper.CsvCheck(firstExpert.Address));
            line.Append(separator);
            line.Append(Helper.CsvCheck(firstExpert.Phone1 + " " + firstExpert.Phone2 + " " + firstExpert.Phone3));
            line.Append(separator);
              }
              else
              {
            line.Append(separator);
            line.Append(separator);
            line.Append(separator);
            line.Append(separator);
              }

              #endregion

              #region a többi partner szervezetek lekérdezése

              if (contDispOrg.AllCount > i)
              {
            OrganisationDispset firstDispOrg = (OrganisationDispset) contDispOrg.All.Items[i];
            line.Append(Helper.CsvCheck(firstDispOrg.Name));
            line.Append(separator);
            line.Append(Helper.CsvCheck(firstDispOrg.Address));
            line.Append(separator);
            line.Append(Helper.CsvCheck(firstDispOrg.HomePage));
            line.Append(separator);

            IRegionService srvRegion = new RegionService();

            if (!firstDispOrg.RegionRef.IsNull)
            {
              line.Append(Helper.CsvCheck(srvRegion.RegionSelect(firstDispOrg.RegionRef).Name));
              line.Append(separator);
            }

            IOrganisationFormService srvOrgForm = new OrganisationFormService();
            line.Append(Helper.CsvCheck(srvOrgForm.OrganisationFormSelect(firstDispOrg.OrganisationFormRef).Name));
            line.Append(separator);
              }
              else
              {
            line.Append(separator5);
              }

              #endregion

              #region a többi csatolt dokumentumok lekérdezése

              if (contDispProgAttach.AllCount > i)
              {
            ProgramAttachmentDispset firstDispProgAttach = (ProgramAttachmentDispset) contDispProgAttach.All.Items[i];

            line.Append(Helper.CsvCheck(firstDispProgAttach.Name.ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(firstDispProgAttach.Path.ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(firstDispProgAttach.CreatedDate.ToString()));
            line.Append(separator);
            line.Append(Helper.CsvCheck(firstDispProgAttach.FileSize.ToString()));
            line.Append(separator);
              }
              else
              {
            line.Append(separator);
            line.Append(separator);
            line.Append(separator);
            line.Append(separator);
              }

              #endregion

              #region Kérdõívek válaszok hozzáadása

              #endregion

              rtfString.Append(line);
              rtfString.Append(EndOfLine);
              line = new StringBuilder(); //új sor
            }
              }

              return rtfString.ToString();
        }