public GetAllUsersQuery(TravelUser currentUser, string email, int?pageIndex, int?pageSize)
 {
     CurrentUser = currentUser;
     Email       = email;
     PageIndex   = pageIndex;
     PageSize    = pageSize;
 }
Пример #2
0
        public void UpdateUser(TravelUser traveluser)
        {
            TravelUser UserData = _context.TravelUsers.Find(traveluser.ID);

            if (UserData == null)
            {
                _context.TravelUsers.Add(traveluser);
            }
            else
            {
                UserData.FirstName     = traveluser.FirstName;
                UserData.LastName      = traveluser.LastName;
                UserData.ContactNumber = traveluser.ContactNumber;
                UserData.ProfileImage  = traveluser.ProfileImage;
                UserData.Address       = traveluser.Address;
                UserData.OTP           = traveluser.OTP;
                UserData.Password      = traveluser.Password;

                //_context.Entry(aExists).State = EntityState.Detached;
                //_context.Entry(traveluser).State = EntityState.Modified;

                _context.SaveChanges();
            }

            // _context.Entry(objuser).State = System.Data.Entity.EntityState.Modified;
            //_context.SaveChanges();
        }
Пример #3
0
        public async Task Seed()
        {
            if (!_context.Roles.Any())
            {
                _context.Roles.Add(new UserRole {
                    Name = "admin", NormalizedName = "admin"
                });
                _context.Roles.Add(new UserRole {
                    Name = "manager", NormalizedName = "manager"
                });
            }

            var admin = new TravelUser
            {
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
                LockoutEnabled  = true,
                CreationDate    = DateTime.Now,
                SecurityStamp   = Guid.NewGuid().ToString()
            };
            var manager = new TravelUser
            {
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
                LockoutEnabled  = true,
                CreationDate    = DateTime.Now,
                SecurityStamp   = Guid.NewGuid().ToString()
            };
            var normal = new TravelUser
            {
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
                LockoutEnabled  = true,
                CreationDate    = DateTime.Now,
                SecurityStamp   = Guid.NewGuid().ToString()
            };

            if (!_context.Users.Any())
            {
                var password = new PasswordHasher <TravelUser>();
                var hashed   = password.HashPassword(admin, "password");
                admin.PasswordHash   = hashed;
                manager.PasswordHash = hashed;
                normal.PasswordHash  = hashed;
                var userStore = new TravelUserStore(_usersReadService, _usersWriteService, _rolesReadService);
                await userStore.CreateAsync(admin, new CancellationToken());

                await userStore.CreateAsync(manager, new CancellationToken());

                await userStore.CreateAsync(normal, new CancellationToken());

                await userStore.AddToRoleAsync(admin, "admin", new CancellationToken());

                await userStore.AddToRoleAsync(manager, "manager", new CancellationToken());
            }
            _context.SaveChanges();
        }
        public async Task <IActionResult> Register([FromBody] RegisterViewModel model, string returnUrl = null)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Your registeration info are invalid"));
            }
            var user = new TravelUser {
                NormalizedEmail = model.Email, Email = model.Email
            };

            user.CreationDate = DateTime.Now;
            var result = await _userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(BadRequest("Something Went Wrong"));
            }

            var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

            var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
            await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);

            return(Ok());
        }
        private async Task <dynamic> GenerateJwT(TravelUser user)
        {
            var roles = await _userManager.GetRolesAsync(user);

            var picture = user.Picture ?? "";
            var claims  = new[]
            {
                new Claim(JwtRegisteredClaimNames.Sub, user.Email),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(JwtRegisteredClaimNames.UniqueName, user.Email),
                new Claim("picture", picture),
                new Claim("roles", string.Join(",", roles))
            };

            var key         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Tokens:Key"]));
            var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken(
                issuer: _configuration["Tokens:Issuer"],
                audience: _configuration["Tokens:Audience"],
                claims: claims,
                expires: DateTime.Now.AddMinutes(30),
                signingCredentials: credentials);
            var results = new
            {
                token      = new JwtSecurityTokenHandler().WriteToken(token),
                expiration = token.ValidTo
            };

            return(results);
        }
        UserViewModel MapToUserToUserVM(TravelUser user)
        {
            var vm = _mapper.Map <UserViewModel>(user);

            vm.Role = GetUserRoles(user);
            return(vm);
        }
Пример #7
0
        public Task <SingleUserQueryResponse> Handle(GetUserByQuery request, CancellationToken cancellationToken)
        {
            TravelUser user     = _repo.GetUserBy(request.Expression);
            var        response = new SingleUserQueryResponse(user);

            response.Status = GetResponseStatus(user);
            return(Task.FromResult(response));
        }
        public Task <UserCommandResponse> Handle(DeleteUserCommand request, CancellationToken cancellationToken)
        {
            TravelUser user     = _repo.DeleteUser(request.UserId);
            var        response = new UserCommandResponse(user);

            response.Status = GetResponseStatus(user);
            return(Task.FromResult(response));
        }
 public GetAllTripsQuery(TravelUser currentUser, DateTime?from, DateTime?to, string destination, int?pageIndex, int?pageSize)
 {
     CurrentUser = currentUser;
     From        = from;
     To          = to;
     Destination = destination;
     PageIndex   = pageIndex;
     PageSize    = pageSize;
 }
Пример #10
0
        public TravelUser GetUserByKey(Guid key)
        {
            TravelUser data = _context.TravelUsers.FirstOrDefault(x => x.GeneratePasswordKey == key);

            if (data != null)
            {
                return(data);
            }
            return(data);
        }
Пример #11
0
        public TravelUser GetUserById(int id)
        {
            TravelUser data = _context.TravelUsers.FirstOrDefault(x => x.ID == id);

            if (data != null)
            {
                return(data);
            }
            return(data);
        }
Пример #12
0
        public TravelUser UpdateUser(TravelUser user)
        {
            var oldEntity = _context.Users.Find(user.Id);

            if (oldEntity == null)
            {
                return(null);
            }
            _context.Entry(oldEntity).CurrentValues.SetValues(user);
            _context.SaveChanges();
            return(user);
        }
Пример #13
0
 public TravelUser AddUser(TravelUser User, TravelUserRoleMapping Role)
 {
     System.Guid guid = System.Guid.NewGuid();
     User.GeneratePasswordKey = guid;
     User.CreatedOn           = DateTime.UtcNow;
     _context.TravelUsers.Add(User);
     _context.SaveChanges();
     Role.UserID = User.ID;
     _context.TravelUserRoleMappings.Add(Role);
     _context.SaveChanges();
     return(User);
 }
Пример #14
0
        public bool DeleteUser(TravelUser UserData)
        {
            var data = _context.TravelUsers.FirstOrDefault(x => x.ID == UserData.ID);

            if (data != null)
            {
                data.IsActive = 0;
                _context.SaveChanges();
                return(true);
            }
            return(false);
        }
        private string GetUserRoles(TravelUser s)
        {
            var roles = _userManager.GetRolesAsync(s).Result;

            if (roles.Contains("admin"))
            {
                return("admin");
            }
            if (roles.Contains("manager"))
            {
                return("manager");
            }
            return("user");
        }
Пример #16
0
        // Insert user
        public UserModel AddUser(TravelUserViewModel traveluser)
        {
            TravelUser            UserData     = new TravelUser();
            TravelUserRoleMapping UserRoleData = new TravelUserRoleMapping();

            UserData.Email     = traveluser.Email;
            UserData.UserName  = traveluser.Email;
            UserData.FirstName = traveluser.FirstName;
            UserData.LastName  = traveluser.LastName;
            //UserData.Password = "******";
            UserData.IsActive   = 1;
            UserRoleData.RoleID = traveluser.RoleId;
            TravelUser data = _adminRepository.AddUser(UserData, UserRoleData);

            return(AutoMapper.Mapper.Map <TravelUser, UserModel>(data));
        }
        public async Task <IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null)
        {
            if (remoteError != null)
            {
                BadRequest(remoteError);
            }

            var info = await _signInManager.GetExternalLoginInfoAsync();

            if (info == null)
            {
                return(NotFound());
            }
            var email  = info.Principal.FindFirstValue(ClaimTypes.Email);
            var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, isPersistent : false, bypassTwoFactor : true);

            TravelUser user = null;

            if (result.Succeeded)
            {
                user = await _userManager.FindByEmailAsync(email);
            }
            else //User doesn't exist so create a new user to this external login info
            {
                string picture = await GetPictureUrlAsync(info);

                user = new TravelUser {
                    NormalizedEmail = email, Email = email, Picture = picture, EmailConfirmed = true
                };
                var createdUser = await _userManager.CreateAsync(user);
            }
            user.SecurityStamp = DateTime.Now.ToString();
            var signinResult = await _userManager.AddLoginAsync(user, info);

            if (signinResult.Succeeded)
            {
                await _signInManager.SignInAsync(user, isPersistent : false);
            }

            var jwt = await GenerateJwT(user);

            var encoded = _configuration["PresentationUrl"] + "/externallogin/" + jwt.token;

            return(Redirect(encoded));
        }
Пример #18
0
    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        // If no errors regarding validation controls (property is st to true if all validation controls pass)
        if (Page.IsValid)
        {
            // Create a Travel User Object
            TravelUser user = new TravelUser();
            user.Id        = Convert.ToInt32(hdnId.Value);
            user.FirstName = Convert.ToString(tbFirstName.Text);
            user.LastName  = Convert.ToString(tbLastName.Text);
            user.Address   = Convert.ToString(tbAddress.Text);
            user.City      = Convert.ToString(tbCity.Text);
            user.Country   = Convert.ToString(tbCountry.Text);
            user.Region    = Convert.ToString(tbRegion.Text);
            user.Postal    = Convert.ToString(tbPostal.Text);
            user.Phone     = Convert.ToString(tbPhone.Text);
            user.Email     = Convert.ToString(tbEmail.Text);
            user.Privacy   = Convert.ToString(tbPrivacy.Text);

            // Update user details
            user.Update();

            // Hide edit user panel
            pnlEditUser.Visible = false;

            // Display updated list of users
            _collectionUser.FetchAllSorted(true);
            gvUser.DataSource = _collectionUser;
            gvUser.DataBind();

            lbErrorMessage.Text = "User details were successfully updated!";
        }
        else
        {
            lbErrorMessage.Text = "Fix errors before updating!";
        }
    }
Пример #19
0
        private async Task <IActionResult> GetAllTrips(int pageIndex, int pageSize, DateTime?from, DateTime?to, string destination, TravelUser user)
        {
            var result = await _tripsReadService.GetAllTrips(user, from, to, destination, pageIndex, pageSize);

            if (result.Status == ResponseStatus.Unauthorized)
            {
                return(Unauthorized());
            }
            if (result.Status == ResponseStatus.Failed)
            {
                return(BadRequest());
            }

            IEnumerable <TripViewModel> Trips = result.Trips.Select(_mapper.Map <TripViewModel>);

            return(Ok(new { Trips, result.TotalCount }));
        }
 public CreateTripCommand(TravelUser currentUser, Trip data)
 {
     CurrentUser = currentUser;
     Data        = data;
 }
Пример #21
0
 public UserCommandResponse(TravelUser user)
 {
     Errors = new List <string>();
     User   = user;
 }
Пример #22
0
 public SingleUserQueryResponse(TravelUser user)
 {
     Errors = new List <string>();
     User   = user;
 }
Пример #23
0
 public CreateUserCommand(TravelUser data)
 {
     Data = data;
 }
Пример #24
0
 public DeleteTripCommand(TravelUser currentUser, int tripId)
 {
     CurrentUser = currentUser;
     TripId      = tripId;
 }
        public async Task <SingleTripQueryResponse> GetTripById(TravelUser user, int TripId)
        {
            var query = new GetTripByIdQuery(user, TripId);

            return(await _mediator.Send(query));
        }
        public async Task <MultipleTripsQueryResponse> GetAllTrips(TravelUser currentUser, DateTime?from, DateTime?to, string destination, int?pageIndex, int?pageSize)
        {
            var query = new GetAllTripsQuery(currentUser, from, to, destination, pageIndex, pageSize);

            return(await _mediator.Send(query));
        }
        public void TestInit()
        {
            var user1 = new TravelUser {
                Id = "user1ID", UserName = "******", NormalizedUserName = "******", Email = "*****@*****.**", NormalizedEmail = "*****@*****.**", EmailConfirmed = true, LockoutEnabled = true, CreationDate = DateTime.Now
            };
            var user2 = new TravelUser {
                Id = "user2ID", UserName = "******", NormalizedUserName = "******", Email = "*****@*****.**", NormalizedEmail = "*****@*****.**", EmailConfirmed = true, LockoutEnabled = true, CreationDate = DateTime.Now
            };
            var user3 = new TravelUser {
                Id = "user3ID", UserName = "******", NormalizedUserName = "******", Email = "*****@*****.**", NormalizedEmail = "*****@*****.**", EmailConfirmed = true, LockoutEnabled = true, CreationDate = DateTime.Now
            };

            var trip1 = new Trip {
                Id = 1, Destination = "trip1Dist", Comment = "trip1Coment", EndDate = DateTime.Now.AddDays(20), StartDate = DateTime.Now.AddDays(10), SightseeingsCollection = "trip1Sights", TravelUser = user1, TravelUserId = user1.Id
            };
            var trip2 = new Trip {
                Id = 1, Destination = "trip2Dist", Comment = "trip2Coment", EndDate = DateTime.Now.AddDays(30), StartDate = DateTime.Now.AddDays(20), SightseeingsCollection = "trip2Sights", TravelUser = user1, TravelUserId = user1.Id
            };
            var trip3 = new Trip {
                Id = 1, Destination = "trip3Dist", Comment = "trip3Coment", EndDate = DateTime.Now.AddDays(40), StartDate = DateTime.Now.AddDays(30), SightseeingsCollection = "trip3Sights", TravelUser = user2, TravelUserId = user2.Id
            };
            var trip4 = new Trip {
                Id = 1, Destination = "trip4Dist", Comment = "trip4Coment", EndDate = DateTime.Now.AddDays(50), StartDate = DateTime.Now.AddDays(40), SightseeingsCollection = "trip4Sights", TravelUser = user2, TravelUserId = user2.Id
            };
            var trip5 = new Trip {
                Id = 1, Destination = "trip5Dist", Comment = "trip5Coment", EndDate = DateTime.Now.AddDays(60), StartDate = DateTime.Now.AddDays(50), SightseeingsCollection = "trip5Sights", TravelUser = user2, TravelUserId = user2.Id
            };
            var trip6 = new Trip {
                Id = 1, Destination = "trip6Dist", Comment = "trip6Coment", EndDate = DateTime.Now.AddDays(70), StartDate = DateTime.Now.AddDays(60), SightseeingsCollection = "trip6Sights", TravelUser = user2, TravelUserId = user2.Id
            };
            var trip7 = new Trip {
                Id = 1, Destination = "trip7Dist", Comment = "trip7Coment", EndDate = DateTime.Now.AddDays(80), StartDate = DateTime.Now.AddDays(40), SightseeingsCollection = "trip7Sights", TravelUser = user3, TravelUserId = user3.Id
            };
            var trip8 = new Trip {
                Id = 1, Destination = "trip8Dist", Comment = "trip8Coment", EndDate = DateTime.Now.AddDays(90), StartDate = DateTime.Now.AddDays(80), SightseeingsCollection = "trip8Sights", TravelUser = user3, TravelUserId = user3.Id
            };
            var trip9 = new Trip {
                Id = 1, Destination = "trip9Dist", Comment = "trip9Coment", EndDate = DateTime.Now.AddDays(15), StartDate = DateTime.Now.AddDays(11), SightseeingsCollection = "trip9Sights", TravelUser = user3, TravelUserId = user3.Id
            };

            user1.Trips.Add(trip1);
            user1.Trips.Add(trip2);

            user2.Trips.Add(trip3);
            user2.Trips.Add(trip4);
            user2.Trips.Add(trip5);
            user2.Trips.Add(trip6);

            user3.Trips.Add(trip7);
            user3.Trips.Add(trip8);
            user3.Trips.Add(trip9);

            var data = new List <TravelUser>()
            {
                user1, user2, user3
            }.AsQueryable();

            mockUsers = new Mock <DbSet <TravelUser> >();
            mockUsers.As <IQueryable <TravelUser> >().Setup(m => m.Provider).Returns(data.Provider);
            mockUsers.As <IQueryable <TravelUser> >().Setup(m => m.Expression).Returns(data.Expression);
            mockUsers.As <IQueryable <TravelUser> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockUsers.As <IQueryable <TravelUser> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            var mockDbContext = new Mock <TravelPlannerContext>();

            mockDbContext.Setup(c => c.TravelUsers).Returns(mockUsers.Object);

            usersRepo = new TravelUserRepository(mockDbContext.Object);
        }
Пример #28
0
 public TravelUser CreateUser(TravelUser user)
 {
     user = _context.Users.Add(user).Entity;
     _context.SaveChanges();
     return(user);
 }
Пример #29
0
        public UserModel Login(string UserName, string Password)
        {
            TravelUser User = userRepository.Login(UserName, Password);

            return(AutoMapper.Mapper.Map <TravelUser, UserModel>(User));
        }
Пример #30
0
        public async Task <MultipleUsersQueryResponse> GetAllUsersAsync(TravelUser currentUser, string email, int?pageIndex, int?pageSize)
        {
            var query = new GetAllUsersQuery(currentUser, email, pageIndex, pageSize);

            return(await _mediator.Send(query));
        }