Пример #1
0
        public async Task GetUserByCriteriaTest()
        {
            var searchCrit = new UserSearchCriteria
            {
                EmployeeID = "EP001",
                FirstName  = "F1",
                LastName   = "L2"
            };
            var pmoUser = new PMOUser
            {
                EmployeeId = "EP001",
                FirstName  = "F1",
                LastName   = "L2",
                Id         = "Usr/1"
            };
            var mockUserRepo        = new Mock <IUserRepo>();
            var mockProjectTaskRepo = new Mock <IProjectTaskRepo>();
            var mockMapper          = new Mock <IMapper>();
            var logger = createUserLogger();

            mockUserRepo.Setup(usrRepo => usrRepo.GetAllUserMatchAnyCriteria(It.IsAny <UserSearchCriteria>()))
            .Returns(Task.FromResult(new List <PMOUser> {
                pmoUser
            }));
            var userService = new UserService(mockUserRepo.Object, mockProjectTaskRepo.Object, logger,
                                              mockMapper.Object);
            var result = await userService.GetUserByCriteria(searchCrit);

            Assert.NotEmpty(result);
        }
Пример #2
0
        public async Task EditUserTest()
        {
            var result  = new Tuple <bool, string>(true, "Usr/1");
            var userMod = new UserModMsg
            {
                EmployeeId = "EP001",
                FirstName  = "F1",
                LastName   = "L2",
                Id         = "Usr/1"
            };
            var pmoUser = new PMOUser
            {
                EmployeeId = userMod.EmployeeId,
                FirstName  = userMod.FirstName,
                LastName   = userMod.LastName
            };
            var mockUserRepo        = new Mock <IUserRepo>();
            var mockProjectTaskRepo = new Mock <IProjectTaskRepo>();
            var logger = createUserLogger();

            mockUserRepo.Setup(usrRepo => usrRepo.EditUser(It.IsAny <PMOUser>()))
            .Returns(Task.FromResult(result));
            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(map => map.Map <PMOUser>(It.IsAny <UserModMsg>())).Returns(pmoUser);
            var userService = new UserService(mockUserRepo.Object, mockProjectTaskRepo.Object, logger,
                                              mockMapper.Object);
            var modResult = await userService.Edit(userMod);

            Assert.True(modResult.Item1);
            Assert.Equal("Usr/1", modResult.Item2);
        }
Пример #3
0
        public async Task <IActionResult> RegisterPMO([FromBody] PMOUser userdetails)
        {
            string email = userdetails.email;

            if (!ModelState.IsValid || email == null)
            {
                return(new BadRequestObjectResult(new { Message = "User Registration Failed" }));
            }
            string username     = email.Substring(0, email.IndexOf("@"));
            var    identityUser = new IdentityUser()
            {
                UserName = username, Email = email
            };
            string password = "******";
            var    result   = await userManager.CreateAsync(identityUser, password);

            if (!result.Succeeded)
            {
                var dictionary = new ModelStateDictionary();
                foreach (IdentityError error in result.Errors)
                {
                    dictionary.AddModelError(error.Code, error.Description);
                }

                return(new BadRequestObjectResult(new { Message = "User Registration Failed", Errors = dictionary }));
            }

            await userManager.AddToRoleAsync(identityUser, "PMO");

            return(Ok(new { Message = "User Reigstration Successful" }));
        }
Пример #4
0
        public async Task <ActionResult> RemovePmoUser([FromBody] PMOUser userdetails)
        {
            string username = userdetails.email.Substring(0, userdetails.email.IndexOf("@"));
            var    user     = await userManager.FindByNameAsync(username);

            if (user == null)
            {
                return(NotFound());
            }
            await userManager.RemoveFromRoleAsync(user, "PMO");

            return(Ok());
        }
Пример #5
0
        public async Task <Tuple <bool, string> > AddUser(PMOUser pmoUser)
        {
            try
            {
                await asyncDocumentSession.StoreAsync(pmoUser);

                await asyncDocumentSession.SaveChangesAsync();

                return(new Tuple <bool, string>(true, pmoUser.Id));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #6
0
        public void GetterSetter()
        {
            var pmoUser = new PMOUser
            {
                EmployeeId = "E001",
                FirstName  = "First",
                LastName   = "Last",
                Id         = "PMOUser/1"
            };

            Assert.Equal("E001", pmoUser.EmployeeId);
            Assert.Equal("First", pmoUser.FirstName);
            Assert.Equal("Last", pmoUser.LastName);
            Assert.Equal("PMOUser/1", pmoUser.Id);
        }
Пример #7
0
        public async Task <bool> DeleteUser(PMOUser pmoUser)
        {
            var dbPmoUser = await asyncDocumentSession.Query <PMOUser>()
                            .Where(user => user.EmployeeId == pmoUser.EmployeeId)
                            .FirstOrDefaultAsync();

            try
            {
                asyncDocumentSession.Delete <PMOUser>(pmoUser);
                await asyncDocumentSession.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #8
0
        public async Task GetEmployeeById()
        {
            var mockUserService = new Mock <IUserService>();
            var pmoUser         = new PMOUser
            {
                EmployeeId = "EP001",
                FirstName  = "F1",
                LastName   = "L2"
            };

            mockUserService.Setup(usr => usr.GetUserByEmployeeId(It.IsAny <string>()))
            .Returns(Task.FromResult(pmoUser));
            var userLogger    = createUserLogger();
            var usrController = new UserController(mockUserService.Object, userLogger);
            var actionResult  = (await usrController.GetEmployeeById("EP001")).Result as OkObjectResult;

            Assert.NotNull(actionResult);
            var result = actionResult.Value as PMOUser;

            Assert.NotNull(result);
        }
Пример #9
0
        public async Task Delete(int projUserCount, int taskUserCount)
        {
            var pmoUser = new PMOUser
            {
                EmployeeId = "EP001",
                FirstName  = "F1",
                LastName   = "L2",
                Id         = "Usr/1"
            };
            var mockUserRepo        = new Mock <IUserRepo>();
            var mockProjectTaskRepo = new Mock <IProjectTaskRepo>();
            var logger = createUserLogger();

            mockUserRepo.Setup(userRepo => userRepo.GetUserByEmployeeId(It.IsAny <string>()))
            .Returns(Task.FromResult(pmoUser));
            mockUserRepo.Setup(userRepo => userRepo.DeleteUser(pmoUser)).Returns(Task.FromResult(true));
            var mockMapper = new Mock <IMapper>();

            mockProjectTaskRepo.Setup(projTskRepo => projTskRepo.GetProjectCountByPM(It.IsAny <string>()))
            .Returns(Task.FromResult(projUserCount));
            mockProjectTaskRepo.Setup(projTskRepo => projTskRepo.GetTaskCountByUser(It.IsAny <string>()))
            .Returns(Task.FromResult(taskUserCount));
            var userService = new UserService(mockUserRepo.Object, mockProjectTaskRepo.Object, logger,
                                              mockMapper.Object);

            if (projUserCount > 0)
            {
                await Assert.ThrowsAsync <ApplicationException>(async() => await userService.Delete("EP001"));
            }
            else if (taskUserCount > 0)
            {
                await Assert.ThrowsAsync <ApplicationException>(async() => await userService.Delete("EP001"));
            }
            else
            {
                var delResult = await userService.Delete("EP001");

                Assert.True(delResult);
            }
        }
Пример #10
0
        public async Task GetUserByEmployeeIdTest()
        {
            var pmoUser = new PMOUser
            {
                EmployeeId = "EP001",
                FirstName  = "F1",
                LastName   = "L2",
                Id         = "Usr/1"
            };
            var mockUserRepo        = new Mock <IUserRepo>();
            var mockProjectTaskRepo = new Mock <IProjectTaskRepo>();
            var mockMapper          = new Mock <IMapper>();
            var logger = createUserLogger();

            mockUserRepo.Setup(usrRepo => usrRepo.GetUserByEmployeeId(It.IsAny <string>()))
            .Returns(Task.FromResult(pmoUser));
            var userService = new UserService(mockUserRepo.Object, mockProjectTaskRepo.Object, logger,
                                              mockMapper.Object);
            var result = await userService.GetUserByEmployeeId("EP001");

            Assert.NotNull(result);
        }
Пример #11
0
        public async Task GetAllEmployee()
        {
            var mockUserService = new Mock <IUserService>();
            var pmoUser         = new PMOUser
            {
                EmployeeId = "EP001",
                FirstName  = "F1",
                LastName   = "L2"
            };
            var pmoList = new List <PMOUser> {
                pmoUser
            };

            mockUserService.Setup(usr => usr.GetAllUser()).Returns(Task.FromResult(pmoList));
            var userLogger    = createUserLogger();
            var usrController = new UserController(mockUserService.Object, userLogger);
            var actionResult  = (await usrController.GetAllEmployee()).Result as OkObjectResult;

            Assert.NotNull(actionResult);
            var result = actionResult.Value as List <PMOUser>;

            Assert.NotEmpty(result);
        }
Пример #12
0
        public async Task SearchUserTest()
        {
            var mockUserService = new Mock <IUserService>();
            var pmoUser         = new PMOUser
            {
                EmployeeId = "EP001",
                FirstName  = "F1",
                LastName   = "L2"
            };

            mockUserService.Setup(usr => usr.GetUserByCriteria(It.IsAny <UserSearchCriteria>()))
            .Returns(Task.FromResult(new List <PMOUser> {
                pmoUser
            }));
            var userLogger    = createUserLogger();
            var usrController = new UserController(mockUserService.Object, userLogger);
            var actionResult  = (await usrController.SearchUser("EP001", "F1", "L2")).Result as OkObjectResult;

            Assert.NotNull(actionResult);
            var result = actionResult.Value as List <PMOUser>;

            Assert.NotEmpty(result);
        }
Пример #13
0
        public async Task <Tuple <bool, string> > EditUser(PMOUser pmoUser)
        {
            var dbPmoUser = await asyncDocumentSession.Query <PMOUser>()
                            .Where(user => user.EmployeeId == pmoUser.EmployeeId)
                            .FirstOrDefaultAsync();

            if (dbPmoUser == default)
            {
                throw new ApplicationException("Provided user is not yet added in DB");
            }
            dbPmoUser.EmployeeId = pmoUser.EmployeeId;
            dbPmoUser.FirstName  = pmoUser.FirstName;
            dbPmoUser.LastName   = pmoUser.LastName;
            try
            {
                await asyncDocumentSession.SaveChangesAsync();

                return(new Tuple <bool, string>(true, dbPmoUser.Id));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #14
0
        protected async Task ManageUserCollection()
        {
            var pmoUser1 = new PMOUser
            {
                EmployeeId = "EP001",
                LastName   = "L1",
                FirstName  = "F1"
            };
            var pmoUser2 = new PMOUser
            {
                EmployeeId = "EP002",
                LastName   = "L2",
                FirstName  = "F2"
            };
            var pmoUser3 = new PMOUser
            {
                EmployeeId = "EP003",
                LastName   = "L3",
                FirstName  = "F3"
            };
            var pmoUser4 = new PMOUser
            {
                EmployeeId = "E004",
                LastName   = "L4",
                FirstName  = "F4"
            };
            var pmoUser5 = new PMOUser
            {
                EmployeeId = "EP005",
                LastName   = "L5",
                FirstName  = "F5"
            };

            using (var session = DocStore.OpenAsyncSession())
            {
                var userCollectionLock = await session.Query <UserCollectionLock>()
                                         .FirstOrDefaultAsync();

                if ((userCollectionLock == default) || (!userCollectionLock.IsUserCollectionAdded))
                {
                    var logger   = createUserLogger();
                    var userRepo = new UserRepo(session, logger);
                    var result   = await userRepo.AddUser(pmoUser1);

                    result = await userRepo.AddUser(pmoUser2);

                    result = await userRepo.AddUser(pmoUser3);

                    result = await userRepo.AddUser(pmoUser4);

                    result = await userRepo.AddUser(pmoUser5);

                    userCollectionLock = new UserCollectionLock {
                        IsUserCollectionAdded = true
                    };
                    await session.StoreAsync(userCollectionLock);

                    await session.SaveChangesAsync();
                }
            }
        }