Example #1
0
        public override void OnLogLine(OnLogLineSource source, OnLogLineArgs args)
        {
            OABDownloadLogLine oabdownloadLogLine = (OABDownloadLogLine)args.LogLine;
            string             organization       = oabdownloadLogLine.Organization;
            DateTime           d;
            DateTime           dateTime;

            if (this.IsCustomerScenario(organization) && DateTime.TryParse(oabdownloadLogLine.LastRequestedTime, out d) && DateTime.TryParse(oabdownloadLogLine.LastTouchedTime, out dateTime))
            {
                OABTenantInfo oabtenantInfo = this.tenantsOutOfSLA.Find((OABTenantInfo x) => x.Organization == organization);
                if (this.whiteListedTenantStatus.Contains(oabdownloadLogLine.OrgStatus) && d.AddDays((double)this.lastRequestedTimeThreshold) > DateTime.UtcNow && dateTime.AddHours((double)this.lastTouchedTimeThreshold) < DateTime.UtcNow && oabdownloadLogLine.Timestamp - d > TimeSpan.FromDays((double)this.staleRequestTimeThreshold) && !oabdownloadLogLine.IsAddressListDeleted)
                {
                    if (oabtenantInfo == null)
                    {
                        oabtenantInfo = new OABTenantInfo(organization, oabdownloadLogLine, TimeSpan.FromHours((double)this.monitoringInterval));
                        this.tenantsOutOfSLA.Add(oabtenantInfo);
                    }
                    oabtenantInfo.NoOfRequests++;
                    return;
                }
                if (oabtenantInfo != null)
                {
                    this.tenantsOutOfSLA.Remove(oabtenantInfo);
                }
            }
        }
Example #2
0
 public OABTenantInfo(string organization, OABDownloadLogLine logline, TimeSpan monitoringInterval)
 {
     this.organization       = organization;
     this.logLine            = logline;
     this.monitoringInterval = monitoringInterval;
 }