private static (EandonStatus, EAndonMessage) ParseEmailBody(string body)
        {
            var bodyLines = body.Trim().Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();
            var alertId   = bodyLines.GetValue("Alert ID:");
            var alert     = bodyLines.GetValue("Alert:");
            var alertType = bodyLines.GetValue("Alert Type:");
            var location  = bodyLines.GetValue("Location:");
            var status    = bodyLines.GetValue("Status:");
            var slaLevel  = int.Parse(bodyLines.GetValue("SLA Level:"), CultureInfo.InvariantCulture);

            var latestHistory = bodyLines[bodyLines.Count - 3]
                                .Split(new string[] { " / " }, StringSplitOptions.RemoveEmptyEntries);

            var userName  = latestHistory.Last().Split(':')[0];
            var timeStamp = latestHistory.First().GetTimeStamp();

            var stationMsg = new EAndonMessage(
                alertId: alertId,
                alert: alert,
                alertType: alertType,
                location: location,
                initiatedBy: userName,
                initiateTime: timeStamp,
                slaLevel: slaLevel);

            EandonStatus enumStatus = EandonStatus.Unknown;

            if (status.Contains("Initiated"))
            {
                enumStatus = EandonStatus.Initiated;
            }
            else if (status.Contains("Acknowledged"))
            {
                enumStatus = EandonStatus.Acknowledge;
            }
            else if (status.Contains("Resolved"))
            {
                enumStatus = EandonStatus.Resolved;
            }
            return(enumStatus, stationMsg);
        }
Example #2
0
        public async Task ChangeStatus(EandonStatus status, EAndonMessage msg)
        {
            switch (status)
            {
            case EandonStatus.Initiated:
                await this.Initiate(msg).ConfigureAwait(false);

                this.dirty = true;
                break;

            case EandonStatus.Acknowledge:
                await this.Acknowledge(msg).ConfigureAwait(false);

                this.dirty = true;
                break;

            case EandonStatus.Resolved:
                await this.Resolve(msg).ConfigureAwait(false);

                this.dirty = true;
                break;
            }
        }