コード例 #1
0
        public IActionResult AddToMyEvents(string id, bool isFromSearch)
        {
            TmEvent tmEvent = null;

            for (int i = 0; i < eventsNearMe.Count; i++)
            {
                if (eventsNearMe[i].Id == id)
                {
                    tmEvent = eventsNearMe[i];
                    break;
                }
            }
            EventService.ConvertTmEvent(tmEvent);
            TempData["Message"] = tmEvent.Name + " event added to My Events successfully.";

            if (isFromSearch)
            {
                ViewData["Keywords"] = searchKeywords;
                return(Redirect("/EventsNearMe/SearchResults/" + searchKeywords));
            }
            else
            {
                searchKeywords = "";
                return(Redirect("/EventsNearMe"));
            }
        }
コード例 #2
0
 public static string GetDefaultBody(TmEvent ev)
 {
     if (ev == null)
     {
         return(null);
     }
     return($"{ev.Time} | {ev.ImportanceAlias} | {ev.Text} | {ev.StateString} | {ev.TypeString} | {ev.Username}");
 }
コード例 #3
0
        public static TmEvent CreateRandomValidTmEvent(Action <TmEventDto> extraDtoAction = null)
        {
            var dto = new Fixture().Create <TmEventDto>();

            FixRandomTmEventDtoToBeValid(dto);
            extraDtoAction?.Invoke(dto);
            return(TmEvent.CreateFromDto(dto));
        }
コード例 #4
0
 private bool IsEventSuitableForStatusesAndAnalogs(TmEvent tmEvent)
 {
     if (Statuses.Count == 0 &&
         Analogs.Count == 0)
     {
         return(true);
     }
     return((tmEvent.HasTmStatus &&
             Statuses.BinarySearch(tmEvent.TmAddrComplexInteger) >= 0)
            ||
            (tmEvent.HasTmAnalog &&
             Analogs.BinarySearch(tmEvent.TmAddrComplexInteger) >= 0));
 }
コード例 #5
0
        public static string GetBody(string template, TmEvent tmEvent)
        {
            if (template == null || tmEvent == null)
            {
                return(null);
            }

            var stringBuilder = new StringBuilder(template).Replace("{time}", tmEvent.Time.ToString())
                                .Replace("{importanceId}", tmEvent.Importance.ToString())
                                .Replace("{importance}", tmEvent.ImportanceAlias)
                                .Replace("{name}", tmEvent.Text)
                                .Replace("{state}", tmEvent.StateString)
                                .Replace("{type}", tmEvent.TypeString)
                                .Replace("{username}", tmEvent.Username)
                                .Replace("{tmAddr}", tmEvent.TmAddrString)
                                .Replace("{defaultBody}", GetDefaultBody(tmEvent));
            var str = stringBuilder.ToString();

            return(Regex.Replace(str,
                                 @"{time:(.*)}",
                                 match => tmEvent.Time?.ToString(match.Groups[1].Value) ?? string.Empty));
        }
コード例 #6
0
 private string GetSubject(TmEvent tmEvent)
 {
     return(GetBody(_options.Subject, tmEvent) ?? DefaultSubject);
 }
コード例 #7
0
 private bool IsEventSuitableForImportances(TmEvent tmEvent)
 {
     return(Importances.Contains(tmEvent.Importance));
 }
コード例 #8
0
 private bool IsEventSuitableForTypes(TmEvent tmEvent)
 {
     return(Types.HasFlag(tmEvent.Type));
 }
コード例 #9
0
 public bool IsEventSuitable(TmEvent tmEvent)
 {
     return(IsEventSuitableForTypes(tmEvent) &&
            IsEventSuitableForImportances(tmEvent) &&
            IsEventSuitableForStatusesAndAnalogs(tmEvent));
 }
コード例 #10
0
 public static string GetBodyOrDefault(string template, TmEvent tmEvent)
 {
     return(GetBody(template, tmEvent) ?? GetDefaultBody(tmEvent));
 }