Package er.bugtracker.tasks

Source Code of er.bugtracker.tasks.BatchReporter

package er.bugtracker.tasks;

import java.util.Enumeration;

import com.webobjects.appserver.WOApplication;
import com.webobjects.appserver.WOMailDelivery;
import com.webobjects.eocontrol.EOEditingContext;
import com.webobjects.foundation.NSArray;
import com.webobjects.foundation.NSDictionary;
import com.webobjects.foundation.NSLog;

import er.bugtracker.People;
import er.bugtracker.pages.BugReportEmail;
import er.extensions.appserver.ERXWOContext;
import er.extensions.eof.ERXEC;
/**
* Sends email reminders.
* Call up with <code>ERXMainRunner -mainClass er.bugtracker.tasks.BatchReporter -mainMethod runBatchReport</code>
* @author ak
*
*/
public class BatchReporter {

    /**
     * we run over all people in the DB and send them a summary email if they
     * have unread bugs
     */
    public void runBatchReport() {
        EOEditingContext ec = ERXEC.newEditingContext();
        ec.lock();
        try {
            NSArray everybody = People.clazz.allObjects(ec);
            for (Enumeration e = everybody.objectEnumerator(); e.hasMoreElements();) {
                People person = (People) e.nextElement();
                NSDictionary bindings = new NSDictionary(new Object[] { person }, new Object[] { "user" });
                NSArray unreadBugs = person.unreadBugs();
                String email = person.email();
                if (unreadBugs.count() > 0 && email != null && email.length() != 0) {
                    BugReportEmail emailBody = (BugReportEmail)WOApplication.application().pageWithName("BugReportEmail", ERXWOContext.newContext());
                    emailBody.takeValueForKey(unreadBugs, "unreadBugs");
                    emailBody.takeValueForKey(person, "owner");
                    WOMailDelivery.sharedInstance().composeComponentEmail("bugtracker@netstruxr.com", new NSArray(email), null,
                            "You have " + unreadBugs.count() + " unread bug(s)", emailBody, true);
                    NSLog.debug.appendln("Sending report to " + email + ": " + unreadBugs.count() + " unread bugs");
                }
            }
        } finally {
            ec.unlock();
        }
    }

}
TOP

Related Classes of er.bugtracker.tasks.BatchReporter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.