fixed saving Task after editing
This commit is contained in:
		
							parent
							
								
									fd184e1248
								
							
						
					
					
						commit
						220d138185
					
				| 
						 | 
				
			
			@ -17,7 +17,7 @@ public class Settings {
 | 
			
		|||
    // E-Mail Inbox: https://www.mailinator.com/v4/public/inboxes.jsp?to=pm3.hs22.it21b.win.team1
 | 
			
		||||
    private String mailNotificationReceivers = "pm3.hs22.it21b.win.team1@mailinator.com";
 | 
			
		||||
    private String mailNotificationSubjectTemplate = "Task %s is due!"; // {0} = Task Name
 | 
			
		||||
    private String mailNotificationTextTemplate = "Dear user\nYour gardentask %s is due since %tF. Don't forget to confirm in your application if the task is done.\nTask description:\n%s"; // {0} = Task Name, {1} = nextExecution, {2} = Task description
 | 
			
		||||
    private String mailNotificationTextTemplate = "Dear user\nYour gardentask %s for plant %s is due at %tF. Don't forget to confirm in your application if the task is done.\nTask description:\n%s"; // {0} = Task Name, {1} = plantname, {2} = nextExecution, {3} = Task description
 | 
			
		||||
 | 
			
		||||
    static {
 | 
			
		||||
        instance = new Settings();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,9 +2,11 @@ package ch.zhaw.gartenverwaltung.backgroundtasks;
 | 
			
		|||
 | 
			
		||||
import ch.zhaw.gartenverwaltung.Settings;
 | 
			
		||||
import ch.zhaw.gartenverwaltung.backgroundtasks.email.EMailSender;
 | 
			
		||||
import ch.zhaw.gartenverwaltung.io.HardinessZoneNotSetException;
 | 
			
		||||
import ch.zhaw.gartenverwaltung.io.PlantList;
 | 
			
		||||
import ch.zhaw.gartenverwaltung.io.TaskList;
 | 
			
		||||
import ch.zhaw.gartenverwaltung.models.Garden;
 | 
			
		||||
import ch.zhaw.gartenverwaltung.types.Crop;
 | 
			
		||||
import ch.zhaw.gartenverwaltung.types.Task;
 | 
			
		||||
 | 
			
		||||
import javax.mail.MessagingException;
 | 
			
		||||
| 
						 | 
				
			
			@ -23,11 +25,27 @@ public class Notifier {
 | 
			
		|||
        this.plantList = plantList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void sendNotification(Task task) throws MessagingException {
 | 
			
		||||
    private void sendNotification(Task task) {
 | 
			
		||||
        String plantName = "unkown plant";
 | 
			
		||||
        try {
 | 
			
		||||
            if(garden.getCrop(task.getCropId()).isPresent()){
 | 
			
		||||
                Crop crop = garden.getCrop(task.getCropId()).get();
 | 
			
		||||
                if(plantList.getPlantById(Settings.getInstance().getCurrentHardinessZone(), crop.getPlantId()).isPresent()) {
 | 
			
		||||
                    plantName = plantList.getPlantById(Settings.getInstance().getCurrentHardinessZone(), crop.getPlantId()).get().name();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        } catch (IOException | HardinessZoneNotSetException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
            // TODO logger
 | 
			
		||||
        }
 | 
			
		||||
        String messageSubject = String.format(Settings.getInstance().getMailNotificationSubjectTemplate(), task.getName());
 | 
			
		||||
        String messageText = String.format(Settings.getInstance().getMailNotificationTextTemplate(), task.getName(), task.getNextExecution(), task.getDescription());
 | 
			
		||||
        //TODO create Exception for email sent fail
 | 
			
		||||
        eMailSender.sendMails(Settings.getInstance().getMailNotificationReceivers(), messageSubject, messageText);
 | 
			
		||||
        String messageText = String.format(Settings.getInstance().getMailNotificationTextTemplate(), task.getName(), plantName, task.getNextExecution(), task.getDescription());
 | 
			
		||||
        try {
 | 
			
		||||
            eMailSender.sendMails(Settings.getInstance().getMailNotificationReceivers(), messageSubject, messageText);
 | 
			
		||||
        } catch (MessagingException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
            // TODO Logger
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void sendNotifications() throws IOException, MessagingException {
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +54,7 @@ public class Notifier {
 | 
			
		|||
            if (task.getNextNotification() != null && task.getNextNotification().isBefore(LocalDate.now().minusDays(1))) {
 | 
			
		||||
                sendNotification(task);
 | 
			
		||||
                task.setNextNotification(LocalDate.now().plusDays(1));
 | 
			
		||||
                taskList.saveTask(task);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,12 +30,7 @@ public class EMailSender {
 | 
			
		|||
        message.setText(text);
 | 
			
		||||
        message.setSentDate(new Date());
 | 
			
		||||
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients, false));
 | 
			
		||||
        try{
 | 
			
		||||
            Transport.send(message);
 | 
			
		||||
        } catch (MessagingException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
            // TODO logger
 | 
			
		||||
        }
 | 
			
		||||
        Transport.send(message);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void printMail(String receiver, String subject, String text){
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue