public virtual ApiPostClientRequestModel MapServerResponseToClientRequest(
            ApiPostServerResponseModel response)
        {
            var request = new ApiPostClientRequestModel();

            request.SetProperties(
                response.AcceptedAnswerId,
                response.AnswerCount,
                response.Body,
                response.ClosedDate,
                response.CommentCount,
                response.CommunityOwnedDate,
                response.CreationDate,
                response.FavoriteCount,
                response.LastActivityDate,
                response.LastEditDate,
                response.LastEditorDisplayName,
                response.LastEditorUserId,
                response.OwnerUserId,
                response.ParentId,
                response.PostTypeId,
                response.Score,
                response.Tag,
                response.Title,
                response.ViewCount);
            return(request);
        }
예제 #2
0
        public void MapEntityToModel()
        {
            var  mapper = new DALPostMapper();
            Post item   = new Post();

            item.SetProperties(1, 1, 1, "A", DateTime.Parse("1/1/1987 12:00:00 AM"), 1, DateTime.Parse("1/1/1987 12:00:00 AM"), DateTime.Parse("1/1/1987 12:00:00 AM"), 1, DateTime.Parse("1/1/1987 12:00:00 AM"), DateTime.Parse("1/1/1987 12:00:00 AM"), "A", 1, 1, 1, 1, 1, "A", "A", 1);
            ApiPostServerResponseModel response = mapper.MapEntityToModel(item);

            response.AcceptedAnswerId.Should().Be(1);
            response.AnswerCount.Should().Be(1);
            response.Body.Should().Be("A");
            response.ClosedDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM"));
            response.CommentCount.Should().Be(1);
            response.CommunityOwnedDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM"));
            response.CreationDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM"));
            response.FavoriteCount.Should().Be(1);
            response.Id.Should().Be(1);
            response.LastActivityDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM"));
            response.LastEditDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM"));
            response.LastEditorDisplayName.Should().Be("A");
            response.LastEditorUserId.Should().Be(1);
            response.OwnerUserId.Should().Be(1);
            response.ParentId.Should().Be(1);
            response.PostTypeId.Should().Be(1);
            response.Score.Should().Be(1);
            response.Tag.Should().Be("A");
            response.Title.Should().Be("A");
            response.ViewCount.Should().Be(1);
        }
예제 #3
0
        public virtual async Task <UpdateResponse <ApiPostServerResponseModel> > Update(
            int id,
            ApiPostServerRequestModel model)
        {
            var validationResult = await this.PostModelValidator.ValidateUpdateAsync(id, model);

            if (validationResult.IsValid)
            {
                Post record = this.DalPostMapper.MapModelToEntity(id, model);
                await this.PostRepository.Update(record);

                record = await this.PostRepository.Get(id);

                ApiPostServerResponseModel apiModel = this.DalPostMapper.MapEntityToModel(record);
                await this.mediator.Publish(new PostUpdatedNotification(apiModel));

                return(ValidationResponseFactory <ApiPostServerResponseModel> .UpdateResponse(apiModel));
            }
            else
            {
                return(ValidationResponseFactory <ApiPostServerResponseModel> .UpdateResponse(validationResult));
            }
        }
예제 #4
0
        public virtual ApiTagServerResponseModel MapEntityToModel(
            Tag item)
        {
            var model = new ApiTagServerResponseModel();

            model.SetProperties(item.Id,
                                item.Count,
                                item.ExcerptPostId,
                                item.TagName,
                                item.WikiPostId);
            if (item.ExcerptPostIdNavigation != null)
            {
                var excerptPostIdModel = new ApiPostServerResponseModel();
                excerptPostIdModel.SetProperties(
                    item.ExcerptPostIdNavigation.Id,
                    item.ExcerptPostIdNavigation.AcceptedAnswerId,
                    item.ExcerptPostIdNavigation.AnswerCount,
                    item.ExcerptPostIdNavigation.Body,
                    item.ExcerptPostIdNavigation.ClosedDate,
                    item.ExcerptPostIdNavigation.CommentCount,
                    item.ExcerptPostIdNavigation.CommunityOwnedDate,
                    item.ExcerptPostIdNavigation.CreationDate,
                    item.ExcerptPostIdNavigation.FavoriteCount,
                    item.ExcerptPostIdNavigation.LastActivityDate,
                    item.ExcerptPostIdNavigation.LastEditDate,
                    item.ExcerptPostIdNavigation.LastEditorDisplayName,
                    item.ExcerptPostIdNavigation.LastEditorUserId,
                    item.ExcerptPostIdNavigation.OwnerUserId,
                    item.ExcerptPostIdNavigation.ParentId,
                    item.ExcerptPostIdNavigation.PostTypeId,
                    item.ExcerptPostIdNavigation.Score,
                    item.ExcerptPostIdNavigation.Tag,
                    item.ExcerptPostIdNavigation.Title,
                    item.ExcerptPostIdNavigation.ViewCount);

                model.SetExcerptPostIdNavigation(excerptPostIdModel);
            }

            if (item.WikiPostIdNavigation != null)
            {
                var wikiPostIdModel = new ApiPostServerResponseModel();
                wikiPostIdModel.SetProperties(
                    item.WikiPostIdNavigation.Id,
                    item.WikiPostIdNavigation.AcceptedAnswerId,
                    item.WikiPostIdNavigation.AnswerCount,
                    item.WikiPostIdNavigation.Body,
                    item.WikiPostIdNavigation.ClosedDate,
                    item.WikiPostIdNavigation.CommentCount,
                    item.WikiPostIdNavigation.CommunityOwnedDate,
                    item.WikiPostIdNavigation.CreationDate,
                    item.WikiPostIdNavigation.FavoriteCount,
                    item.WikiPostIdNavigation.LastActivityDate,
                    item.WikiPostIdNavigation.LastEditDate,
                    item.WikiPostIdNavigation.LastEditorDisplayName,
                    item.WikiPostIdNavigation.LastEditorUserId,
                    item.WikiPostIdNavigation.OwnerUserId,
                    item.WikiPostIdNavigation.ParentId,
                    item.WikiPostIdNavigation.PostTypeId,
                    item.WikiPostIdNavigation.Score,
                    item.WikiPostIdNavigation.Tag,
                    item.WikiPostIdNavigation.Title,
                    item.WikiPostIdNavigation.ViewCount);

                model.SetWikiPostIdNavigation(wikiPostIdModel);
            }

            return(model);
        }
예제 #5
0
        public virtual ApiVoteServerResponseModel MapEntityToModel(
            Vote item)
        {
            var model = new ApiVoteServerResponseModel();

            model.SetProperties(item.Id,
                                item.BountyAmount,
                                item.CreationDate,
                                item.PostId,
                                item.UserId,
                                item.VoteTypeId);
            if (item.PostIdNavigation != null)
            {
                var postIdModel = new ApiPostServerResponseModel();
                postIdModel.SetProperties(
                    item.PostIdNavigation.Id,
                    item.PostIdNavigation.AcceptedAnswerId,
                    item.PostIdNavigation.AnswerCount,
                    item.PostIdNavigation.Body,
                    item.PostIdNavigation.ClosedDate,
                    item.PostIdNavigation.CommentCount,
                    item.PostIdNavigation.CommunityOwnedDate,
                    item.PostIdNavigation.CreationDate,
                    item.PostIdNavigation.FavoriteCount,
                    item.PostIdNavigation.LastActivityDate,
                    item.PostIdNavigation.LastEditDate,
                    item.PostIdNavigation.LastEditorDisplayName,
                    item.PostIdNavigation.LastEditorUserId,
                    item.PostIdNavigation.OwnerUserId,
                    item.PostIdNavigation.ParentId,
                    item.PostIdNavigation.PostTypeId,
                    item.PostIdNavigation.Score,
                    item.PostIdNavigation.Tag,
                    item.PostIdNavigation.Title,
                    item.PostIdNavigation.ViewCount);

                model.SetPostIdNavigation(postIdModel);
            }

            if (item.UserIdNavigation != null)
            {
                var userIdModel = new ApiUserServerResponseModel();
                userIdModel.SetProperties(
                    item.UserIdNavigation.Id,
                    item.UserIdNavigation.AboutMe,
                    item.UserIdNavigation.AccountId,
                    item.UserIdNavigation.Age,
                    item.UserIdNavigation.CreationDate,
                    item.UserIdNavigation.DisplayName,
                    item.UserIdNavigation.DownVote,
                    item.UserIdNavigation.EmailHash,
                    item.UserIdNavigation.LastAccessDate,
                    item.UserIdNavigation.Location,
                    item.UserIdNavigation.Reputation,
                    item.UserIdNavigation.UpVote,
                    item.UserIdNavigation.View,
                    item.UserIdNavigation.WebsiteUrl);

                model.SetUserIdNavigation(userIdModel);
            }

            if (item.VoteTypeIdNavigation != null)
            {
                var voteTypeIdModel = new ApiVoteTypeServerResponseModel();
                voteTypeIdModel.SetProperties(
                    item.VoteTypeIdNavigation.Id,
                    item.VoteTypeIdNavigation.Name);

                model.SetVoteTypeIdNavigation(voteTypeIdModel);
            }

            return(model);
        }
예제 #6
0
 public void SetWikiPostIdNavigation(ApiPostServerResponseModel value)
 {
     this.WikiPostIdNavigation = value;
 }
예제 #7
0
 public void SetExcerptPostIdNavigation(ApiPostServerResponseModel value)
 {
     this.ExcerptPostIdNavigation = value;
 }
 public void SetParentIdNavigation(ApiPostServerResponseModel value)
 {
     this.ParentIdNavigation = value;
 }
예제 #9
0
        public virtual ApiPostLinkServerResponseModel MapEntityToModel(
            PostLink item)
        {
            var model = new ApiPostLinkServerResponseModel();

            model.SetProperties(item.Id,
                                item.CreationDate,
                                item.LinkTypeId,
                                item.PostId,
                                item.RelatedPostId);
            if (item.LinkTypeIdNavigation != null)
            {
                var linkTypeIdModel = new ApiLinkTypeServerResponseModel();
                linkTypeIdModel.SetProperties(
                    item.LinkTypeIdNavigation.Id,
                    item.LinkTypeIdNavigation.RwType);

                model.SetLinkTypeIdNavigation(linkTypeIdModel);
            }

            if (item.PostIdNavigation != null)
            {
                var postIdModel = new ApiPostServerResponseModel();
                postIdModel.SetProperties(
                    item.PostIdNavigation.Id,
                    item.PostIdNavigation.AcceptedAnswerId,
                    item.PostIdNavigation.AnswerCount,
                    item.PostIdNavigation.Body,
                    item.PostIdNavigation.ClosedDate,
                    item.PostIdNavigation.CommentCount,
                    item.PostIdNavigation.CommunityOwnedDate,
                    item.PostIdNavigation.CreationDate,
                    item.PostIdNavigation.FavoriteCount,
                    item.PostIdNavigation.LastActivityDate,
                    item.PostIdNavigation.LastEditDate,
                    item.PostIdNavigation.LastEditorDisplayName,
                    item.PostIdNavigation.LastEditorUserId,
                    item.PostIdNavigation.OwnerUserId,
                    item.PostIdNavigation.ParentId,
                    item.PostIdNavigation.PostTypeId,
                    item.PostIdNavigation.Score,
                    item.PostIdNavigation.Tag,
                    item.PostIdNavigation.Title,
                    item.PostIdNavigation.ViewCount);

                model.SetPostIdNavigation(postIdModel);
            }

            if (item.RelatedPostIdNavigation != null)
            {
                var relatedPostIdModel = new ApiPostServerResponseModel();
                relatedPostIdModel.SetProperties(
                    item.RelatedPostIdNavigation.Id,
                    item.RelatedPostIdNavigation.AcceptedAnswerId,
                    item.RelatedPostIdNavigation.AnswerCount,
                    item.RelatedPostIdNavigation.Body,
                    item.RelatedPostIdNavigation.ClosedDate,
                    item.RelatedPostIdNavigation.CommentCount,
                    item.RelatedPostIdNavigation.CommunityOwnedDate,
                    item.RelatedPostIdNavigation.CreationDate,
                    item.RelatedPostIdNavigation.FavoriteCount,
                    item.RelatedPostIdNavigation.LastActivityDate,
                    item.RelatedPostIdNavigation.LastEditDate,
                    item.RelatedPostIdNavigation.LastEditorDisplayName,
                    item.RelatedPostIdNavigation.LastEditorUserId,
                    item.RelatedPostIdNavigation.OwnerUserId,
                    item.RelatedPostIdNavigation.ParentId,
                    item.RelatedPostIdNavigation.PostTypeId,
                    item.RelatedPostIdNavigation.Score,
                    item.RelatedPostIdNavigation.Tag,
                    item.RelatedPostIdNavigation.Title,
                    item.RelatedPostIdNavigation.ViewCount);

                model.SetRelatedPostIdNavigation(relatedPostIdModel);
            }

            return(model);
        }
 public void SetRelatedPostIdNavigation(ApiPostServerResponseModel value)
 {
     this.RelatedPostIdNavigation = value;
 }
예제 #11
0
 public PostUpdatedNotification(ApiPostServerResponseModel record)
 {
     this.Record = record;
 }