Пример #1
0
        public void Create(CreatePostVisitDto model)
        {
            var visit = _factory.Make(model);

            _repository.MarkForAdd(visit);
            _repository.SaveChanges();
        }
Пример #2
0
        public PostVisit Make(CreatePostVisitDto model)
        {
            model.CheckArgumentIsNull(nameof(model));
            var entity = new PostVisit {
                AbseloutUrl = AppHttpContext.AbsoluteUrl,
                CreateDate  = _dateService.UtcNow(),
                IP          = AppHttpContext.IpAddress,
                OsPlatform  = AppHttpContext.OsPlatform,
                UserAgent   = AppHttpContext.UserAgent,
                PostId      = model.PostId,
                PostTitle   = model.Title,
                SessionId   = AppHttpContext.SessionId,
                UrlReferrer = AppHttpContext.UrlReferer
            };

            return(entity);
        }
Пример #3
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            var args = context.ActionArguments;

            if (args == null || !args.Any())
            {
                return;
            }

            int    postId    = 0;
            string postTitle = string.Empty;

            if (args.ContainsKey("id"))
            {
                postId = int.Parse(args.First(_ => _.Key == "id").Value.ToString());
            }

            if (args.ContainsKey("postType") && args.ContainsKey("slug") && postId == 0)
            {
                var postType = args.First(_ => _.Key == "postType").Value.ToString();
                var slug     = args.First(_ => _.Key == "slug").Value.ToString();
                var post     = _postRepository
                               .Query()
                               .FirstOrDefault(_ => _.Slug.ToLower() == slug.ToLower() &&
                                               _.PostType.Slug.ToLower() == postType.ToLower());
                if (post != null)
                {
                    postId    = post.Id;
                    postTitle = post.Title;
                }
            }

            if (postId > 0)
            {
                var cachKey = string.Format("POST-CNT-{0}", postId);
                //TODO: Must Use cache
                //var cachedResult =
                var data = new CreatePostVisitDto {
                    PostId = postId,
                    Title  = postTitle
                };
                _postVisitService.Create(data);
            }

            base.OnActionExecuting(context);
        }
Пример #4
0
        public async Task <PostVisit> MakeAsync(CreatePostVisitDto model)
        {
            model.CheckArgumentIsNull(nameof(model));
            var entity = new PostVisit {
                AbseloutUrl = AppHttpContext.AbsoluteUrl,
                CreateDate  = _dateService.UtcNow(),
                IP          = AppHttpContext.IpAddress,
                OsPlatform  = AppHttpContext.OsPlatform,
                UserAgent   = AppHttpContext.UserAgent,
                PostId      = model.PostId,
                PostTitle   = model.Title,
                SessionId   = AppHttpContext.SessionId,
                UrlReferrer = AppHttpContext.UrlReferer
            };

            //if (_userContext.IsAuthenticated)
            //    entity.UserId = _userContext.UserId;

            return(await Task.FromResult(entity));
        }
Пример #5
0
        public async Task CreateAsync(CreatePostVisitDto model)
        {
            var visit = await _factory.MakeAsync(model);

            await _repository.AddAndSaveAsync(visit);
        }