using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net.Mail;
using Domino;
using Xunit;

namespace Hochbaustatistik.Testing
{
    public class EmailTests
    {
        [Theory(Skip = "Kein Lotus Notes installiert")]      
        [InlineData(@"C:\TEMP\test.txt")]
        public void SenMailTest(string attachment)
        {           
            Assert.True(SendEmail(attachment));
        }

        private static bool SendEmail(string attachment)
        {
            try
            {
                NotesSession nSession = new NotesSession();
                nSession.Initialize("Mk130881");

                NotesDatabase nDatabase = nSession.GetDatabase("DOMMAIL4/SRV/Stadt Dortmund/DE", "MAIL\\mkoebis-riedel");

                NotesDocument nDocument = nDatabase.CreateDocument();
                
                //Attachment
                var richTextItem = nDocument.CreateRichTextItem("files");
                richTextItem.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", attachment, "attachment");

               
                string[] recipients = { "mkoebis-riedel@stadtdo.de, katyes@gmx.li" };

                string txtMessage = "Sehr geehrte Damen und Herren,\r\n\r\nanbei erhalten Sie die Auswertung zur Hochbaustatistik für das Jahr " + DateTime.Today.Year + ".\r\n\r\nBitte senden Sie jene ausgefüllt zurück an: mkoebis-riedel@stadtdo.de\r\n\r\nDanke und freundliche Grüße";
                nDocument.ReplaceItemValue("Form", "Memo");
                nDocument.ReplaceItemValue("SentTo", recipients);
                nDocument.ReplaceItemValue("Subject", "Hochbaustatistik Auswertung IT.NRW");
                nDocument.ReplaceItemValue("Body", txtMessage); //set body text

                nDocument.SaveMessageOnSend = true;
                nDocument.Send(false, recipients);
                return true;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                return false;
            }
        }

    }
}
