public async Task ReturnsBadRequst_NotFoundException()
        {
            var userServiceMock    = new Mock <IUserService>();
            var wrapperMock        = new Mock <IUserServiceWrapper>();
            var logbookServiceMock = new Mock <ILogbookService>();


            var sut = new UsersController(userServiceMock.Object,
                                          logbookServiceMock.Object,
                                          wrapperMock.Object);


            var model = new IndexNoteViewModel()
            {
                CurrentLogbookId = 2
            };
            var userId = TestHelpersNoteController.TestUserDTO1().Id;

            wrapperMock.Setup(x => x.GetLoggedUserId(It.IsAny <ClaimsPrincipal>())).Returns(userId);
            userServiceMock.Setup(x => x.GetUserByIdAsync(userId)).ThrowsAsync(new NotFoundException());
            logbookServiceMock.Setup(x => x.GetLogbookById(1)).ReturnsAsync(TestHelpersNoteController.TestLogbookDTO1());
            userServiceMock.Setup(x => x.SwitchLogbookAsync(userId, model.CurrentLogbookId.Value)).ReturnsAsync(TestHelpersUsersController.TestUserDTO4());
            var actionResult = await sut.SwitchLogbook(model);

            Assert.IsInstanceOfType(actionResult, typeof(BadRequestObjectResult));
        }
        public async Task Succeed()
        {
            var userServiceMock    = new Mock <IUserService>();
            var wrapperMock        = new Mock <IUserServiceWrapper>();
            var logbookServiceMock = new Mock <ILogbookService>();


            var sut = new UsersController(userServiceMock.Object,
                                          logbookServiceMock.Object,
                                          wrapperMock.Object);


            var model = new IndexNoteViewModel()
            {
                CurrentLogbookId = 2
            };
            var userId = TestHelpersNoteController.TestUserDTO1().Id;

            wrapperMock.Setup(x => x.GetLoggedUserId(It.IsAny <ClaimsPrincipal>())).Returns(userId);
            userServiceMock.Setup(x => x.GetUserByIdAsync(userId)).ReturnsAsync(TestHelpersNoteController.TestUserDTO1());
            logbookServiceMock.Setup(x => x.GetLogbookById(1)).ReturnsAsync(TestHelpersNoteController.TestLogbookDTO1());
            userServiceMock.Setup(x => x.SwitchLogbookAsync(userId, model.CurrentLogbookId.Value)).ReturnsAsync(TestHelpersUsersController.TestUserDTO4());
            var actionResult = await sut.SwitchLogbook(model);

            var result = (RedirectToActionResult)actionResult;

            Assert.AreEqual("Index", result.ActionName);
            Assert.AreEqual("Notes", result.ControllerName);
            Assert.IsInstanceOfType(result, typeof(RedirectToActionResult));
        }
        public async Task Returns_BadRequest_When_LogbookIdIsEqualToNewId()
        {
            var userServiceMock    = new Mock <IUserService>();
            var wrapperMock        = new Mock <IUserServiceWrapper>();
            var logbookServiceMock = new Mock <ILogbookService>();


            var sut = new UsersController(userServiceMock.Object,
                                          logbookServiceMock.Object,
                                          wrapperMock.Object);


            var model = new IndexNoteViewModel()
            {
                CurrentLogbookId = 1
            };
            var id = TestHelpersNoteController.TestUserDTO1().Id;

            wrapperMock.Setup(x => x.GetLoggedUserId(It.IsAny <ClaimsPrincipal>())).Returns(id);
            userServiceMock.Setup(x => x.GetUserByIdAsync(id)).ReturnsAsync(TestHelpersNoteController.TestUserDTO1());
            logbookServiceMock.Setup(x => x.GetLogbookById(1)).ReturnsAsync(TestHelpersNoteController.TestLogbookDTO1());
            var actionResult = await sut.SwitchLogbook(model);

            Assert.IsInstanceOfType(actionResult, typeof(BadRequestObjectResult));
        }
예제 #4
0
        // GET Notes Details
        public ActionResult Details(int?id)
        {
            IndexNoteViewModel note = null;

            if (Request.Cookies["login"] != null)
            {
                User usr = userRepository.GetByID(Convert.ToInt64(Request.Cookies["login"].Value));
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                note            = Mapper.Map <Note, IndexNoteViewModel>(noteRepository.GetByID(id));
                note.Label      = EncryptDecrypt.DecryptData(note.Label, usr.Pass);
                note.Body       = EncryptDecrypt.DecryptData(note.Body, usr.Pass);
                note.NameAuthor = EncryptDecrypt.DecryptData(note.NameAuthor, usr.Pass);
                if (note == null)
                {
                    return(HttpNotFound());
                }
            }
            else
            {
                ViewBag.ErrorLogin = "******";
                return(View("../Users/Login"));
            }
            return(View(note));
        }
예제 #5
0
        public async Task <IActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var note = await _context.Notes
                       .FirstOrDefaultAsync(m => m.Id == id && m.Owner == GetUserId());

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

            var model = new IndexNoteViewModel()
            {
                Id              = note.Id,
                Title           = note.Title,
                CreatedDate     = note.CreatedDate,
                LastUpdatedDate = note.LastUpdatedDate
            };

            return(View(model));
        }
예제 #6
0
        public async Task <IActionResult> NotesForDaysBefore(int id)
        {
            try
            {
                var userId = this.wrapper.GetLoggedUserId(User);
                var user   = await this.userService.GetUserByIdAsync(userId);

                var model     = new IndexNoteViewModel();
                var logbookId = user.CurrentLogbookId;
                if (user.CurrentLogbookId.HasValue)
                {
                    var notesDTO = await this.noteService.ShowLogbookNotesForDaysBeforeAsync(userId, user.CurrentLogbookId.Value, id);

                    var notes = notesDTO.Select(x => x.MapFrom()).ToList();
                    foreach (var note in notes)
                    {
                        note.CanUserEdit = note.UserId == userId;
                    }

                    var searchModel = new SearchViewModel();
                    searchModel.Notes = notes;
                    return(PartialView("_NoteListPartial", searchModel));
                }

                return(BadRequest(WebConstants.NoLogbookChoosen));
            }
            catch (NotFoundException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (NotAuthorizedException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                log.Error("Unexpected exception occured:", ex);
                return(RedirectToAction("Error", "Home"));
            }
        }
예제 #7
0
        public async Task <IActionResult> SwitchLogbook(IndexNoteViewModel model)
        {
            try
            {
                var userId = this.wrapper.GetLoggedUserId(User);
                var user   = await this.userService.GetUserByIdAsync(userId);

                if (model.CurrentLogbookId.HasValue)
                {
                    var logbook = await this.logbookService.GetLogbookById(model.CurrentLogbookId.Value);

                    if (user.CurrentLogbookId == model.CurrentLogbookId)
                    {
                        return(BadRequest((string.Format(WebConstants.AlreadyInLogbook, user.UserName, logbook.Name))));
                    }
                    user = await this.userService.SwitchLogbookAsync(userId, model.CurrentLogbookId.Value);

                    //return Ok(string.Format(WebConstants.SwitchLogbook, logbook.Name));
                    return(RedirectToAction("Index", "Notes"));
                }

                return(BadRequest(WebConstants.NoLogbookChoosen));
            }

            catch (NotFoundException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (NotAuthorizedException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                log.Error("Unexpected exception occured:", ex);
                return(RedirectToAction("Error", "Home"));
            }
        }
예제 #8
0
        public async Task <IActionResult> Index()
        {
            try
            {
                var model = new IndexNoteViewModel();

                var userId = this.wrapper.GetLoggedUserId(User);
                var user   = await this.userService.GetUserByIdAsync(userId);

                var logbooks = await this.logbookService.GetAllLogbooksByUserAsync(userId);

                var logbookId = user.CurrentLogbookId;

                if (user.CurrentLogbookId.HasValue)
                {
                    var currentLogbook = await this.logbookService.GetLogbookById(user.CurrentLogbookId.Value);

                    model.CurrentLogbook = new LogbookViewModel()
                    {
                        CurrentLogbookId = logbookId,
                        Name             = currentLogbook.Name
                    };
                    model.Manager = new UserViewModel()
                    {
                        CurrentLogbookId = logbookId,
                        Id = userId
                    };

                    model.CurrentLogbookId = logbookId;

                    var notesDTO = await this.noteService.Get15NotesByIdAsync(1, user.CurrentLogbookId.Value);

                    var notes = notesDTO.Select(x => x.MapFrom()).ToList();


                    foreach (var note in notes)
                    {
                        note.CanUserEdit = note.UserId == userId;
                    }

                    int notesPerPage = 15;
                    var totalPages   = await noteService.GetPageCountForNotesAsync(notesPerPage, (int)logbookId);

                    model.SearchModel = new SearchViewModel()
                    {
                        CurrPage   = 1,
                        TotalPages = totalPages,
                        Notes      = notes
                    };

                    if (totalPages > 1)
                    {
                        model.SearchModel.NextPage = 2;
                    }

                    model.SearchModel.Categories = (await CacheNoteCategories()).Select(x => x.MapFrom()).ToList();
                    model.Logbooks = logbooks.Select(x => x.MapFrom()).ToList();
                    return(View(model));
                }
                model.SearchModel = new SearchViewModel();
                model.Manager     = user.MapFrom();

                return(View(model));
            }

            catch (NotFoundException ex)
            {
                return(BadRequest(ex.Message));
            }

            catch (Exception ex)
            {
                log.Error("Unexpected exception occured:", ex);
                return(RedirectToAction("Error", "Home"));
            }
        }