public void NewsmailInsert(Email entity) { // Check permission: admin PrincipalPermission permAdmin = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator"); permAdmin.Demand(); TraceCallEnterEvent.Raise(); try { // Check required fields if (entity.ID.IsNull) throw new ArgumentNullException("Email.ID", "A hírlevél azonosítója nincs megadva."); if (entity.Subject.Length == 0) throw new ArgumentNullException("Email.Subject", "A hírlevél tárgya nincs megadva."); if (entity.MailBody.Length == 0) throw new ArgumentNullException("Email.MailBody", "A hírlevél szövege nincs megadva."); // Save data entity.Category = EmailCategory.Newsmail; m_DataContext.BeginNestedTran(); EmailAttachmentService attSrv = new EmailAttachmentService(m_DataContext); try { base.EmailInsert(entity); // Files foreach (EmailAttachment attach in entity.EmailAttachments.Current) { attSrv.EmailAttachmentInsert(attach); } m_DataContext.CommitNested(); } catch { m_DataContext.RollbackNested(); throw; } BusinessAuditEvent.Success( new EventParameter("EmailID", entity.ID), new EventParameter("EmailSubject", entity.Subject) ); TraceCallReturnEvent.Raise(); return; } catch (Exception ex) { ExceptionManager.Publish(ex); BusinessAuditEvent.Fail( new EventParameter("Exception", ex.ToString()), new EventParameter("EmailID", entity.ID), new EventParameter("EmailSubject", entity.Subject) ); TraceCallReturnEvent.Raise(false); throw; } }
public new void EmailUpdate(Email entity) { // Check permission: admin PrincipalPermission permAdmin = new PrincipalPermission(Thread.CurrentPrincipal.Identity.Name, "Administrator"); permAdmin.Demand(); TraceCallEnterEvent.Raise(); try { // Check required fields if (entity.Subject.Length == 0) throw new ArgumentNullException("Email.Subject", "A hírlevél tárgya nincs megadva."); if (entity.MailBody.Length == 0) throw new ArgumentNullException("Email.MailBody", "A hírlevél szövege nincs megadva."); // Logical checks Email selected = base.EmailSelect(entity.ID); if (selected == null) throw new ApplicationException("A megadott azonosítóval nem létezik hírlevél."); if (!selected.Category.Equals(EmailCategory.Newsmail)) throw new ApplicationException("Csak hírlevél kategóriájú levél módosítható."); // Save data selected.Subject = entity.Subject; selected.MailBody = entity.MailBody; selected.ActivityAll = entity.ActivityAll; selected.ActivityOther = entity.ActivityOther; selected.ActivityPrevention = entity.ActivityPrevention; selected.ActivityRehabilitation = entity.ActivityRehabilitation; selected.ActivityResearch = entity.ActivityResearch; selected.ActivityNDI = entity.ActivityNDI; selected.To = entity.To; EmailAttachmentService attSrv = new EmailAttachmentService(m_DataContext); m_DataContext.BeginNestedTran(); try { // Clear old files: EmailAttachmentContainer oldFiles = base.SelectChildrenByAttachmentOfEmail(entity.ID); foreach (EmailAttachment oldFile in oldFiles.All) { attSrv.EmailAttachmentDelete(oldFile); } // EmailAttachments - insert: foreach (EmailAttachment file in entity.EmailAttachments.Current) { attSrv.EmailAttachmentInsert(file); } base.EmailUpdate(selected); m_DataContext.CommitNested(); } catch { m_DataContext.RollbackNested(); throw; } BusinessAuditEvent.Success( new EventParameter("EmailID", entity.ID), new EventParameter("EmailSubject", entity.Subject) ); TraceCallReturnEvent.Raise(); return; } catch (Exception ex) { ExceptionManager.Publish(ex); BusinessAuditEvent.Fail( new EventParameter("Exception", ex.ToString()), new EventParameter("EmailID", entity.ID), new EventParameter("EmailSubject", entity.Subject) ); TraceCallReturnEvent.Raise(false); throw; } }