public void Create(CreatePostVisitDto model) { var visit = _factory.Make(model); _repository.MarkForAdd(visit); _repository.SaveChanges(); }
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); }
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); }
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)); }
public async Task CreateAsync(CreatePostVisitDto model) { var visit = await _factory.MakeAsync(model); await _repository.AddAndSaveAsync(visit); }