using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using GreenTree.Nachtragsmanagement.Core.Domain.Misc;

namespace GreenTree.Nachtragsmanagement.Services.Misc
{
    public interface IMiscService
    {
        #region MailNotification

        /// <summary>
        /// Gets all mailNotifications
        /// </summary>
        IList<MailNotification> GetAllMailNotifications();

        /// <summary>
        /// Gets a mailNotification by specified Id
        /// </summary>
        /// <param name="id">MailNotification identifier.</param>
        MailNotification GetMailNotificationById(int id);

        /// <summary>
        /// Gets all mailNotifications to the specified ids
        /// </summary>
        IList<MailNotification> GetMailNotificationsByIds(int[] ids);

        /// <summary>
        /// Insert a mailNotification
        /// </summary>
        /// <param name="mailNotification">MailNotification.</param>
        void InsertMailNotification(MailNotification mailNotification);

        /// <summary>
        /// Update a mailNotification
        /// </summary>
        /// <param name="mailNotification">MailNotification.</param>
        void UpdateMailNotification(MailNotification mailNotification);

        /// <summary>
        /// Delete a mailNotification
        /// </summary>
        /// <param name="mailNotification">MailNotification.</param>
        void DeleteMailNotification(MailNotification mailNotification);

        #endregion

        #region HelpPages

        /// <summary>
        /// Gets all helpPages
        /// </summary>
        IList<HelpPage> GetAllHelpPages();

        /// <summary>
        /// Gets all helpPages without actual content
        /// </summary>
        IList<HelpPage> GetAllHelpPagesWithoutContent();

        /// <summary>
        /// Gets a helpPage by specified Id
        /// </summary>
        /// <param name="id">HelpPage identifier.</param>
        HelpPage GetHelpPageById(int id);

        /// <summary>
        /// Gets all helpPages to the specified ids
        /// </summary>
        IList<HelpPage> GetHelpPagesByIds(int[] ids);

        /// <summary>
        /// Insert a helpPage
        /// </summary>
        /// <param name="helpPage">HelpPage.</param>
        void InsertHelpPage(HelpPage helpPage);

        /// <summary>
        /// Update a helpPage
        /// </summary>
        /// <param name="helpPage">HelpPage.</param>
        void UpdateHelpPage(HelpPage helpPage);

        /// <summary>
        /// Delete a helpPage
        /// </summary>
        /// <param name="helpPage">HelpPage.</param>
        void DeleteHelpPage(HelpPage helpPage);

        #endregion
    }
}
