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); }
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; } }
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; } }
/// <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; }
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; } }
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; } }
/// <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; } }
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; } }
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; } }
/// <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; } }
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; } }
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; } }
/// <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(); }