public new void OrganisationUpdate(Organisation entity) { // check permission: Writer or Admin string writerRole = entity.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 (entity.Name.Length == 0) throw new ArgumentNullException("Organisation.Name", "A szervezet neve nincs megadva."); if (entity.PostCode.Length == 0) throw new ArgumentNullException("Organisation.PostCode", "A szervezet címének irányítószáma nincs megadva."); if (entity.City.Length == 0) throw new ArgumentNullException("Organisation.City", "A szervezet címének települése nincs megadva."); if (entity.Address.Length == 0) throw new ArgumentNullException("Organisation.Address", "A szervezet címének utca, házszám része nincs megadva."); //if(entity.MailingPostCode.Length == 0) throw new ArgumentNullException("Organisation.MailingPostCode", "A szervezet levelezési címének irányítószáma nincs megadva."); //if(entity.MailingCity.Length == 0) throw new ArgumentNullException("Organisation.MailingCity", "A szervezet levelezési címének települése nincs megadva."); //if(entity.MailingAddress.Length == 0) throw new ArgumentNullException("Organisation.MailingAddress", "A szervezet levelezési címének utca, házszám része nincs megadva."); if (entity.OrganisationFormRef.Length == 0) throw new ArgumentNullException("Organisation.OrganisationFormRef", "A szervezeti forma kódja nincs megadva."); //if(entity.EstablishmentYear.Length == 0) throw new ArgumentNullException("Organisation.EstablishmentYear", "A szervezet alapításának éve nincs megadva."); if (entity.WorkingAreaRef.Length == 0) throw new ArgumentNullException("Organisation.WorkingAreaRef", "A mûködési terület nincs megadva."); // logical checks: Organisation selected = base.OrganisationSelect(entity.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: entity.IsActive = selected.IsActive; //entity.LastModified = DateTime.Now; ide csak az user módosítás lesz beírva, és ezt nem hívja az user try { m_DataContext.BeginNestedTran(); //elmentjük a szervezet módosított adatokat base.OrganisationUpdate(entity); //elmentjük a szervezethez tartozó feltöltött fileokat OrganisationAttachmentService srvOrgAtt = new OrganisationAttachmentService(m_DataContext); // Clear old files: OrganisationAttachmentContainer oldFiles = base.SelectChildrenByAttachmentOfOrganisation(entity.ID); foreach (OrganisationAttachment oldFile in oldFiles.All) { srvOrgAtt.OrganisationAttachmentDelete(oldFile); } foreach (OrganisationAttachment file in entity.OrgAttachments.Current) { srvOrgAtt.OrganisationAttachmentInsert(file); } m_DataContext.CommitNested(); } catch { m_DataContext.RollbackNested(); throw; } BusinessAuditEvent.Success( new EventParameter("OrganisationID", entity.ID.ToString()), new EventParameter("OrganisationName", entity.Name) ); TraceCallReturnEvent.Raise(); return; } catch (Exception ex) { ExceptionManager.Publish(ex); BusinessAuditEvent.Fail( new EventParameter("Exception", ex.ToString()), new EventParameter("OrganisationID", entity.ID.ToString()), new EventParameter("OrganisationName", entity.Name) ); 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; } }