コード例 #1
0
        public async Task <ActionResult> Details([Bind("Title,Content,ModuleId")] ModulePostViewModel viewModel)
        {
            Module module = await _context.Module
                            .FirstOrDefaultAsync(m => m.Id == viewModel.ModuleId);

            if (module == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                Post post = GetPostToAddToModule(viewModel, module);

                _context.Post.Add(post);
                _context.SaveChanges();

                viewModel = await GetModulePostViewModelFromModule(module);

                return(View(viewModel));
            }

            ModulePostViewModel notValidReturn = await GetModulePostViewModelFromModule(module);

            return(View(notValidReturn));

            //return View(viewModel);
        }
コード例 #2
0
        // Returns the View Model which is a list of posts for given module
        private async Task <ModulePostViewModel> GetModulePostViewModelFromModule(Module module)
        {
            ModulePostViewModel viewModel = new ModulePostViewModel();

            viewModel.Module = module;

            List <Post> posts = await _context.Post
                                .Where(m => m.Module.Id == module.Id).ToListAsync();

            viewModel.Posts = posts;

            return(viewModel);
        }
コード例 #3
0
        // Sets the Values to the post from the viewmodel
        private Post GetPostToAddToModule(ModulePostViewModel viewModel, Module module)
        {
            Post post = new Post();

            post.CreatedDateTime = DateTime.Now;
            post.Title           = viewModel.Title;
            post.Content         = viewModel.Content;
            post.Module          = module;
            post.ModuleId        = module.Id;

            string       LoggedInUser = User.Identity.Name;
            IdentityUser currentUser  = _context.Users.FirstOrDefault
                                            (x => x.Email == LoggedInUser);

            post.User = currentUser.UserName;

            return(post);
        }
コード例 #4
0
        // GET: Modules/Details/5
        // Details of a Module
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var @module = await _context.Module
                          .FirstOrDefaultAsync(m => m.Id == id);

            if (@module == null)
            {
                return(NotFound());
            }

            ModulePostViewModel viewModel = await GetModulePostViewModelFromModule(@module);

            return(View(viewModel));
        }