예제 #1
0
        public IActionResult CreateFolderSuccess(string Id)
        {
            var folder = _folderRepository.GetFolderById(Id);
            var flashcardFolderInfoViewModel = new FlashcardFolderInfoViewModel
            {
                Name = folder.FolderName,
                FlashcardFolderId = Id
            };

            return(View(flashcardFolderInfoViewModel));
        }
예제 #2
0
        public async Task <IActionResult> CreateFolder(FlashcardFolderInfoViewModel flashcardFolderInfoViewModel)
        {
            if (ModelState.IsValid)
            {
                var folder = new FlashcardFolder
                {
                    FolderName  = flashcardFolderInfoViewModel.Name,
                    Subject     = flashcardFolderInfoViewModel.Subject,
                    Description = flashcardFolderInfoViewModel.Description,
                    Id          = flashcardFolderInfoViewModel.FlashcardFolderId
                };
                var success = _folderRepository.CreateFolder(folder);
                if (success)
                {
                    var user = await _userManager.GetUserAsync(HttpContext.User);

                    //probably want to change user.flashcardfolderids to a list, this is messy and confusing
                    //

                    if (user.FlashcardFolderIds != null)
                    {
                        var oldIds = user.FlashcardFolderIds;

                        // If the user deletes all their folderIds, the database leaves an empty string in their folderId column.
                        // (Probably bc of serialization of the enumerable)
                        // Replacing user.FlashcardFolderIds that has "" at index 0 is the same as starting a new list.
                        if (oldIds[0] == "")
                        {
                            var newIds = new List <string> {
                                flashcardFolderInfoViewModel.FlashcardFolderId
                            };
                            user.FlashcardFolderIds = newIds;
                        }
                        else
                        {
                            user.FlashcardFolderIds.Add(flashcardFolderInfoViewModel.FlashcardFolderId);
                        }
                    }
                    else
                    {
                        user.FlashcardFolderIds = new List <string> {
                            flashcardFolderInfoViewModel.FlashcardFolderId
                        };
                    }


                    await _userManager.UpdateAsync(user);

                    return(RedirectToAction("CreateFolderSuccess", new { Id = flashcardFolderInfoViewModel.FlashcardFolderId }));
                }
            }
            TempData["ErrorMessage"] = "Something happened and we couldn't create that folder.  Make sure you filled in every field, then try again.";
            return(RedirectToAction("CreateFolder", new { Id = flashcardFolderInfoViewModel.FlashcardFolderId }));
        }
예제 #3
0
        public IActionResult EditFolder(string Id)
        {
            var folder = _folderRepository.GetFolderById(Id);
            var flashcardFolderInfoViewModel = new FlashcardFolderInfoViewModel
            {
                Name              = folder.FolderName,
                Subject           = folder.Subject,
                Description       = folder.Description,
                FlashcardFolderId = folder.Id
            };

            return(View(flashcardFolderInfoViewModel));
        }
예제 #4
0
        public IActionResult FolderDetails(string Id)
        {
            ViewBag.UserMessage = TempData["UserMessage"];
            var folder = _folderRepository.GetFolderById(Id);
            var flashcardFolderInfoViewModel = new FlashcardFolderInfoViewModel
            {
                Name              = folder.FolderName,
                Subject           = folder.Subject,
                Description       = folder.Description,
                FlashcardFolderId = folder.Id
            };

            return(View(flashcardFolderInfoViewModel));
        }
예제 #5
0
        public IActionResult CreateFolder(string Id)
        {
            if (TempData["ErrorMessage"] != null)
            {
                ViewBag.ErrorMessage = TempData["ErrorMessage"];
            }


            var flashcardFolderInfoViewModel = new FlashcardFolderInfoViewModel
            {
                Name              = "",
                Subject           = "",
                Description       = "Type a description of your Folder here",
                FlashcardFolderId = Id
            };


            return(View(flashcardFolderInfoViewModel));
        }
예제 #6
0
        public IActionResult EditFolder(FlashcardFolderInfoViewModel flashcardFolderInfoViewModel)
        {
            if (ModelState.IsValid)
            {
                var folder = new FlashcardFolder
                {
                    FolderName  = flashcardFolderInfoViewModel.Name,
                    Subject     = flashcardFolderInfoViewModel.Subject,
                    Description = flashcardFolderInfoViewModel.Description,
                    Id          = flashcardFolderInfoViewModel.FlashcardFolderId
                };

                var success = _folderRepository.UpdateFolder(folder);

                if (success)
                {
                    TempData["UserMessage"] = "Folder updated!";
                    return(RedirectToAction("FolderDetails", new { Id = flashcardFolderInfoViewModel.FlashcardFolderId }));
                }
            }
            ModelState.AddModelError("EditFolderFailed", "Unable to make your changes. Please make sure every field is filled in, then try again.");
            return(View(flashcardFolderInfoViewModel));
        }