Example #1
0
        public async Task <ActionResult> Create(CreatePageViewModel vm)
        {
            var user = GetUser();
            var req  = new CreateRefListRequest()
            {
                PublishingStatus = PublishingStatusKind.Draft,
            };

            Mapper.Map <CreatePageViewModel, CreateRefListRequest>(vm, req);

            var result = await _refListHandler.CreateRefListAsync(user.Id, req);

            return(RedirectToAction("Edit", new { id = result.Id }));
        }
Example #2
0
        /// <summary>
        /// refListを作成します。
        /// </summary>
        public async Task <RefList> CreateRefListAsync(long userId, CreateRefListRequest request)
        {
            /// DisplayOrderの設定
            if (request.Refs != null)
            {
                var i = 0;
                foreach (var r in request.Refs)
                {
                    r.DisplayOrder = i;
                    ++i;
                }
            }

            var user = await _userHandler.GetUserAsync(userId);

            _refsContext.Users.Attach(user);

            var linkCount = request.Refs == null ? 0 : request.Refs.Count(r => r.Kind == RefKind.Link);
            var refList   = new RefList()
            {
                Author           = user,
                Title            = request.Title,
                Comment          = request.Comment,
                PublishingStatus = request.PublishingStatus,
                PublishedDate    = request.PublishingStatus == PublishingStatusKind.Draft ? (DateTime?)null : DateTime.Now,
                Refs             = request.Refs,
                Statistics       = new RefListStatistics()
                {
                    LinkCount = linkCount,
                },
            };

            _refsContext.RefLists.Add(refList);
            await _refsContext.SaveChangesAsync();

            await SetTagUsesAsync(refList, request.TagUses, false);

            refList.Refs = refList.Refs.OrderBy(r => r.DisplayOrder).ToArray();
            return(refList);
        }