/// <summary> /// Transforms an WAS-Alarm (WAS-specific) to an internal alarm object. /// Uses WHITE if it is specified (in the AIC-Settings). /// </summary> /// <param name="wasAlarm">The WAS-Alarm object.</param> /// <returns>The transformed alarm.</returns> private Alarm Transformate(WasAlarm wasAlarm) { Alarm alarm = Alarm.Create(wasAlarm); // Remove the BMA identifier at the end if (string.Equals(alarm.Subject, Constants.BMAType, StringComparison.OrdinalIgnoreCase) && alarm.Location.Contains(Constants.BMAIdentificationCharacter)) { alarm.Location = alarm.Location.Substring(0, alarm.Location.IndexOf(Constants.BMAIdentificationCharacter)).Trim(); } return(alarm); /*if (!AicSettings.Global.UseWhite) * { * return alarm; * } * * // Evaluate if there is already a valid location * bool hasValidLocation = !alarm.Location.ToLower().Contains(AicServerSettings.NoLocationPattern.ToLower()); * * if (hasValidLocation) * { * return alarm; * } * * // Already parsed strings (alarm update) * if (mWhiteParsedAlarms.ContainsKey(alarm.Id)) * { * alarm.LocationProposition = this.mWhiteParsedAlarms[alarm.Id]; * * return alarm; * } * * string locationProposition = null; * * try * { * locationProposition = WhiteUtilities.FindPlace(alarm); * * if (locationProposition == null) * { * this.mLogger.LogInformation("White hasn't found the place in the info text", InformationType.AlarmState_WhiteFailed); * } * * else * { * alarm.LocationProposition = locationProposition; * this.mLogger.LogInformation(string.Format("White found the place: {0}", locationProposition), InformationType.AlarmState_WhiteSucceded); * } * * this.mWhiteParsedAlarms.Add(alarm.Id, locationProposition); * } * * catch (Exception ex) * { * this.mLogger.LogError("(AlarmState/Transformate/Exception)", ErrorType.Undefined, ex); * } * * return alarm;*/ }
/// <summary> /// Creates an alarm from a WasAlarm. /// </summary> /// <param name="wasAlarm">A WasAlarm.</param> /// <returns>An alarm.</returns> public static Alarm Create(WasAlarm wasAlarm) { var alarm = new Alarm { Id = wasAlarm.Id, Subject = wasAlarm.Subject, Location = wasAlarm.Location, LocationProposition = string.Empty, AdditionalInformation = wasAlarm.AdditionalInformation, StartTime = wasAlarm.StartTime, LaunchTime = wasAlarm.LaunchTime, EndTime = wasAlarm.EndTime, Status = wasAlarm.Status, AlarmStation = wasAlarm.AlarmStation, AlarmLevel = wasAlarm.AlarmLevel, CallerName = wasAlarm.CallerName, CallerTelephoneNumber = wasAlarm.CallerTelephoneNumber, FireBrigades = new List <string>(), SirenProgram = wasAlarm.SirenProgram }; if (wasAlarm.FireBrigades != null && wasAlarm.FireBrigades.Count > 0) { foreach (string fireBrigade in wasAlarm.FireBrigades.Where(fireBrigade => fireBrigade != null)) { alarm.FireBrigades.Add(fireBrigade); } } return(alarm); }