Example #1
0
        /// <summary>
        /// Called by the ASP.NET MVC framework before the action method executes.
        /// </summary>
        /// <param name="filterContext">The filter context.</param>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            ClientInfo clientInfo = Parser.GetDefault().Parse(HttpContext.Current.Request.UserAgent);

            JSApplicationCookie cookie = GetApplicationCookie();

            TrafficLogRequest trafficLogRequest = new TrafficLogRequest()
            {
                ApplicationId   = (int)SecurityManager.Current.CurrentApplication,
                Browser         = HttpContext.Current.Request.Browser.Browser,
                BrowserVersion  = clientInfo.UserAgent.ToString(),
                Cookie          = cookie.Serialize(SerializationTypes.Json),
                JSUserId        = SecurityManager.Current.UserId,
                OperatingSystem = clientInfo.OS.ToString(),
                Device          = clientInfo.Device.ToString(),
                RequestedUrl    = HttpContext.Current.Request.RawUrl,
                RequestType     = HttpContext.Current.Request.RequestType,
                TrackingGuid    = SecurityManager.Current.TrackingGuid,
                TrafficLogGuid  = cookie.TrafficLogGuid,
                UserAgent       = HttpContext.Current.Request.UserAgent,
                UrlReferrer     = HttpContext.Current.Request.UrlReferrer == null ? null : HttpContext.Current.Request.UrlReferrer.OriginalString
            };

            string seperator = "";

            foreach (string key in HttpContext.Current.Request.Form)
            {
                trafficLogRequest.PostedData += String.Format("{0}{1}={2}", seperator, key, HttpContext.Current.Request.Form[key]);

                seperator = "&";
            }

            IConnectionInfo connectionInfo = SecurityManager.Current.ConnectionInfo;

            string ipAddress = HttpContext.Current.Request.UserHostAddress;

            BackgroundProcessHelper.Current.Trigger(async(cancel) =>
            {
                await SetTrafficLogRequestLocation(trafficLogRequest, ipAddress);

                await TrafficLogRequestBusinessManager.Current.InsertAsync(connectionInfo, trafficLogRequest);
            });

            base.OnActionExecuting(filterContext);
        }
Example #2
0
        private static async Task SetTrafficLogRequestLocation(TrafficLogRequest trafficLogRequest, string ipAddress)
        {
            const string homeNetworkIp = "192.168.1.1";

            if (!String.IsNullOrEmpty(ipAddress) && ipAddress != "::1" && ipAddress != homeNetworkIp)
            {
                WebRequest request = WebRequest.Create(String.Format("{0}{1}", ConfigurationHelper.Current.GetSetting("IPLocationService"), ipAddress));

                WebResponse response = await request.GetResponseAsync();

                Location location = Location.Deserialize(new StreamReader(response.GetResponseStream()).ReadToEnd(), SerializationTypes.Json);

                trafficLogRequest.Location = String.Join(" ", location.CountryName, location.RegionName, location.City, location.ZipCode);
            }
            else if (!String.IsNullOrEmpty(ipAddress))
            {
                trafficLogRequest.Location = "House Wifi Dayton Ohio";
            }
        }
Example #3
0
        /// <summary>
        /// Index
        /// </summary>
        /// <returns></returns>
        public ActionResult Index(TrafficLogRequest filter)
        {
            TrafficLogRequest model = new TrafficLogRequest();

            if (!filter.PublicPropertiesEquals(model))
            {
                ModelState.Clear();

                if (!String.IsNullOrEmpty(filter.TrackingGuid))
                {
                    model.TrackingGuid = filter.TrackingGuid;
                }

                if (!String.IsNullOrEmpty(filter.Location))
                {
                    model.Location = filter.Location;
                }

                if (filter.InsertedOn_From != null)
                {
                    model.InsertedOn_From = filter.InsertedOn_From;
                }

                if (filter.InsertedOn_To != null)
                {
                    model.InsertedOn_To = filter.InsertedOn_To;
                }

                if (filter.ApplicationId != default(int))
                {
                    model.ApplicationId = filter.ApplicationId;
                }
            }
            else
            {
                model.InsertedOn_From = DateTime.Today;
                model.InsertedOn_To   = DateTime.Today.AddDays(1);
            }

            ViewBag.AvailableApplications = EnumHelper.Current.GetSelectList <Applications>();

            return(View(model));
        }
Example #4
0
        /// <summary>
        /// Traffics the log grid data.
        /// </summary>
        /// <param name="filter">The filter.</param>
        /// <returns></returns>
        public async Task <JsonResult> TrafficLogGridData(TrafficLogRequest filter)
        {
            filter.ClearEmptyModifiedColumns();

            PagedResult <TrafficLogRequest> pagedResult = await TrafficLogRequestBusinessManager.Current.PagingSelectAsync(SecurityManager.Current.ConnectionInfo, filter);

            foreach (TrafficLogRequest trafficLog in pagedResult.Results)
            {
                List <JSUser> jsUsers = await JSUserBusinessManager.Current.SelectAsync(SecurityManager.Current.ConnectionInfo, new JSUser()
                {
                    JSUserId = trafficLog.JSUserId
                });

                if (jsUsers.Any())
                {
                    trafficLog.JSUserName = jsUsers.First().Name;
                }

                trafficLog.ApplicationName = EnumHelper.Current.GetNameWithSpaces((Applications)trafficLog.ApplicationId);
            }

            return(Json(pagedResult));
        }
Example #5
0
        ///// <summary>
        ///// Update
        ///// </summary>
        ///// <param name="connectionInfo">The connection information.</param>
        ///// <param name="TrafficLogRequest">The entity.</param>
        ///// <returns></returns>
        //public IProcessResult Update(IConnectionInfo connectionInfo, TrafficLogRequest entity)
        //{
        //    return TrafficLogRequestManager.Current.Update(connectionInfo, entity);
        //}

        /// <summary>
        /// Update Async
        /// </summary>
        /// <param name="connectionInfo">The connection information.</param>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public async Task <IProcessResult> UpdateAsync(IConnectionInfo connectionInfo, TrafficLogRequest entity)
        {
            return(await TrafficLogRequestManager.Current.UpdateAsync(connectionInfo, entity));
        }
Example #6
0
        ///// <summary>
        ///// Select
        ///// </summary>
        ///// <param name="connectionInfo">The connection information.</param>
        ///// <param name="filter">The filter.</param>
        ///// <returns></returns>
        //public List<TrafficLogRequest> Select(IConnectionInfo connectionInfo, TrafficLogRequest filter)
        //{
        //    return TrafficLogRequestManager.Current.Select(connectionInfo, filter);
        //}

        /// <summary>
        /// Select Async
        /// </summary>
        /// <param name="connectionInfo">The connection information.</param>
        /// <param name="filter">The filter.</param>
        /// <returns></returns>
        public async Task <List <TrafficLogRequest> > SelectAsync(IConnectionInfo connectionInfo, TrafficLogRequest filter)
        {
            return(await TrafficLogRequestManager.Current.SelectAsync(connectionInfo, filter));
        }
Example #7
0
 /// <summary>
 /// Pagings the select asynchronous.
 /// </summary>
 /// <param name="connectionInfo">The connection information.</param>
 /// <param name="filter">The filter.</param>
 /// <returns></returns>
 public async Task <PagedResult <TrafficLogRequest> > PagingSelectAsync(IConnectionInfo connectionInfo, TrafficLogRequest filter)
 {
     return(await TrafficLogRequestManager.Current.PagingSelectAsync(connectionInfo, filter));
 }
        ///// <summary>
        ///// Update
        ///// </summary>
        ///// <param name="connectionInfo">The connection information.</param>
        ///// <param name="TrafficLogRequest">The entity.</param>
        ///// <returns></returns>
        //public IProcessResult Update(IConnectionInfo connectionInfo, TrafficLogRequest entity)
        //{
        //    return UpdateInternal(connectionInfo, entity).Result;
        //}

        /// <summary>
        /// Update Async.
        /// </summary>
        /// <param name="connectionInfo">The connection information.</param>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public async Task <IProcessResult> UpdateAsync(IConnectionInfo connectionInfo, TrafficLogRequest entity)
        {
            return(await UpdateInternal(connectionInfo, entity));
        }
        ///// <summary>
        ///// Select
        ///// </summary>
        ///// <param name="connectionInfo">The connection information.</param>
        ///// <param name="filter">The filter.</param>
        ///// <returns></returns>
        //public List<TrafficLogRequest> Select(IConnectionInfo connectionInfo, TrafficLogRequest filter)
        //{
        //    return SelectInternal(connectionInfo, filter).Result;
        //}

        /// <summary>
        /// Select Async
        /// </summary>
        /// <param name="connectionInfo">The connection information.</param>
        /// <param name="filter">The filter.</param>
        /// <returns></returns>
        public async Task <List <TrafficLogRequest> > SelectAsync(IConnectionInfo connectionInfo, TrafficLogRequest filter)
        {
            return(await SelectInternal(connectionInfo, filter));
        }