aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/IEventLogger.cs
blob: ceb399d24a3ce8eb729c17f0a50ca40a0075d542 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.PMR.Diagnostics;

namespace Tango.MachineStudio.Common.EventLogging
{
    /// <summary>
    /// Represents a database events logger.
    /// </summary>
    public interface IEventLogger
    {
        /// <summary>
        /// Occurs when a new machine event has been logged.
        /// </summary>
        event EventHandler<MachinesEvent> NewLog;

        /// <summary>
        /// Logs the specified machine event.
        /// </summary>
        /// <param name="machineEvent">The machine event.</param>
        void Log(MachinesEvent machineEvent);

        /// <summary>
        /// Logs the specified event type.
        /// </summary>
        /// <param name="eventType">Type of the event.</param>
        /// <param name="message">The message.</param>
        void Log(EventTypes eventType, String message, bool write_to_db = true);

        /// <summary>
        /// Logs the specified hardware event.
        /// </summary>
        /// <param name="hardwareEvent">The hardware event.</param>
        void Log(Event hardwareEvent);

        /// <summary>
        /// Logs the specified exception using the <see cref="EventTypes.ApplicationException"/>.
        /// </summary>
        /// <param name="exception">The exception.</param>
        void Log(Exception exception);

        /// <summary>
        /// Logs the specified exception using the <see cref="EventTypes.ApplicationException"/>.
        /// </summary>
        /// <param name="exception">The exception.</param>
        void Log(Exception exception, String description);

        /// <summary>
        /// Logs the specified message using the <see cref="EventTypes.ApplicationInformation"/>.
        /// </summary>
        /// <param name="message">The message.</param>
        void Log(String message);

        /// <summary>
        /// Immediately saves all pending events to database.
        /// </summary>
        void FlushAll();
    }
}
>} /// <summary> /// Aligns the borders of rect on the middles of pixels. /// </summary> public static Rect PixelAlign(Rect rect, Size pixelSize) { rect.X = PixelAlign(rect.X, pixelSize.Width); rect.Y = PixelAlign(rect.Y, pixelSize.Height); rect.Width = Round(rect.Width, pixelSize.Width); rect.Height = Round(rect.Height, pixelSize.Height); return rect; } /// <summary> /// Rounds <paramref name="point"/> to whole number of pixels. /// </summary> public static Point Round(Point point, Size pixelSize) { return new Point(Round(point.X, pixelSize.Width), Round(point.Y, pixelSize.Height)); } /// <summary> /// Rounds val to whole number of pixels. /// </summary> public static Rect Round(Rect rect, Size pixelSize) { return new Rect(Round(rect.X, pixelSize.Width), Round(rect.Y, pixelSize.Height), Round(rect.Width, pixelSize.Width), Round(rect.Height, pixelSize.Height)); } /// <summary> /// Rounds <paramref name="value"/> to a whole number of pixels. /// </summary> public static double Round(double value, double pixelSize) { return pixelSize * Math.Round(value / pixelSize); } /// <summary> /// Rounds <paramref name="value"/> to an whole odd number of pixels. /// </summary> public static double RoundToOdd(double value, double pixelSize) { return Round(value - pixelSize, pixelSize * 2) + pixelSize; } } }