Пример #1
0
 public void PrepareTest()
 {
     _user = new ClubUser
     {
         Name        = "Pepe",
         Surname     = "Bernad",
         Email       = "*****@*****.**",
         DateOfBirth = new DateTime(1990, 1, 12),
         Level       = Level.Rookie,
         Phone       = "976223344",
         Weight      = 80
     };
     _validatedUser = new ClubUser
     {
         UserId      = "TestID",
         Name        = "Jose Maria",
         Surname     = "Bernad",
         Email       = "*****@*****.**",
         DateOfBirth = new DateTime(1990, 1, 12),
         Level       = Level.Intermediate,
         Phone       = "976223344",
         Weight      = 80
     };
     _sut = new AuthService("<YourFirebaseApiKey>");
     _sut.UserRepository = Substitute.For <IUserRepository>();
     _sut.UserRepository.SaveUserAsync(_validatedUser).ReturnsForAnyArgs(_validatedUser);
 }
Пример #2
0
        public void LoginCommandTo_Navigates_To_AnotherPage_When_Login_Is_Successful_And_Saves_Credentials()
        {
            ClubUser testUser = new ClubUser
            {
                UserId          = "TestID",
                Email           = "testEmail",
                IsEmailVerified = true,
                Name            = "Test Name",
                Surname         = "Test Surname",
                Phone           = "Test Phone"
            };
            ICredentials secureCredentials = new DummyCredentials();

            _authService.LoginWithEmailAndPasswordAsync("testEmail", "testPassword", true, false).Returns(
                new AuthResult
            {
                Result = "Success",
                User   = testUser
            });
            _sut = new LoginPageViewModel(_navigationService, _pageDialogService, _authService, secureCredentials);
            _sut.OnNavigatedTo(_parameters);

            _sut.Email    = "testEmail";
            _sut.Password = "******";
            _sut.LoginCommand.Execute();

            Assert.That(secureCredentials.Password, Is.EqualTo("testPassword"));
            Assert.That(secureCredentials.User, Is.EqualTo(testUser));
            _navigationService.Received(1).NavigateAsync("AnotherPage");
        }
Пример #3
0
        public async Task <IActionResult> Create([Bind("Name,FoundedDate,JoinedDate,IsActive,Id")] Club club)
        {
            if (ModelState.IsValid)
            {
                club.Owner = _context.Users.FirstOrDefault(u => u.UserName == HttpContext.User.Identity.Name);

                // Adds "Club Admin"-role to the user
                var user = _context.Users.FirstOrDefault(o => o.UserName == club.Owner.UserName);
                await _userManager.AddToRoleAsync(user, "Club Admin");

                club.JoinedDate = DateTime.Now;
                club.IsActive   = true;
                club.Id         = Guid.NewGuid();

                // adds user to club user table
                var clubUser = new ClubUser {
                    User = user, ClubId = club.Id, Club = club, UserId = club.Owner.Id, Id = Guid.NewGuid()
                };
                _context.Add(clubUser);

                _context.Add(club);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(club));
        }
Пример #4
0
        public async Task <IActionResult> Edit(int id, [Bind("ClubUserId,UserId,ClubId")] ClubUser clubUser)
        {
            if (id != clubUser.ClubUserId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(clubUser);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ClubUserExists(clubUser.ClubUserId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction());
            }
            ViewData["ClubId"] = new SelectList(_context.Club, "ClubId", "Name", clubUser.ClubId);
            return(View(clubUser));
        }
Пример #5
0
        public void PrepareTest()
        {
            _user = new ClubUser
            {
                Name        = "Pepe",
                Surname     = "Bernad",
                Email       = "*****@*****.**",
                DateOfBirth = new DateTime(1990, 1, 12),
                Level       = Level.Rookie,
                Phone       = "976223344",
                Weight      = 80
            };

            _validatedUser = new ClubUser
            {
                Name        = "Jose Maria",
                Surname     = "Bernad",
                Email       = "*****@*****.**",
                DateOfBirth = new DateTime(1990, 1, 12),
                Level       = Level.Intermediate,
                Phone       = "976223344",
                Weight      = 80
            };
            _authService = new AuthService("<YourFirebaseApiKey>");
            _sut         = new UserRepository("<YourFirebaseDatabaseURL>", _authService);
            _authService.UserRepository = _sut;
        }
Пример #6
0
        public async Task <AuthResult> CreateUserAsync(ClubUser user, string password, bool sendVerificationEmail)
        {
            string displayName = user.Name + " " + user.Surname;

            try
            {
                _auth = await _authProvider.CreateUserWithEmailAndPasswordAsync(
                    user.Email, password, displayName, sendVerificationEmail);

                user.UserId          = _auth.User.LocalId;
                user.IsEmailVerified = _auth.User.IsEmailVerified;
                // TODO: Add user to database if boolean optional parameter
                //       saveUser is true (pending to add parameter)
                return(new AuthResult {
                    User = user, Result = "Success"
                });
            }
            catch (Exception ex)
            {
                string reason = "Unknown reason";
                if (ex.Message.Contains("EMAIL_EXISTS"))
                {
                    reason = "Mail Exists";
                }
                return(new AuthResult {
                    User = user, Result = "Error: " + reason
                });
            }
        }
Пример #7
0
        //同步设置IM群管理员
        //文档: https://www.qcloud.com/document/product/269/1623
        public Response SetIMGroupAdmin(ClubUser obj)
        {
            string role;

            if (obj.IsAdmin)
            {
                role = "Admin";
            }
            else
            {
                role = "Member";
            }
            IMGroup imGroup = new IMGroup();

            imGroup.GroupId        = obj.ClubId;
            imGroup.Member_Account = obj.UserCode;
            imGroup.Role           = role;
            //请求IM接口
            var reqRest = new RestRequest("v4/group_open_http_svc/modify_group_member_info", Method.POST);

            reqRest.AddJsonBody(imGroup);

            var result = RestApiHelper.SendIMRequestAndGetResponse(reqRest);

            return(result);
        }
Пример #8
0
        public async Task <ClubUser> SaveUserAsync(ClubUser user)
        {
            await FirebaseClient
            .Child($"users/{user.UserId}")
            .PutAsync(user);

            return(user);
        }
Пример #9
0
        void addUserItem(ClubUser user)
        {
            GComponent item = userList.AddItemFromPool().asCom;

            item.GetChild("imgAvatar").asLoader.url = Utils.Helper.GetReallyImagePath(user.avatar);
            item.GetChild("textId").text            = "ID:" + user.id;
            item.GetChild("textNick").text          = "昵称:" + user.nick;

            //var btnPayer = item.GetChild("btnPayer").asButton;
            var btnAdmin   = item.GetChild("btnAdmin").asButton;
            var btnCheck   = item.GetChild("btnCheck").asButton;
            var btnDisable = item.GetChild("btnDisable").asButton;


            // 是管理员或者老板
            // 并且 当前列表项不是老板
            // 才显示控制按钮
            var b = (Data.Club.IsAdmin || Data.Club.IsBoss) &&
                    Data.Club.Info.uid != user.id;

            // 管理员 只有 老板可以控制
            if (user.admin)
            {
                if (Data.Club.IsBoss)
                {
                    b = true;
                }
                else
                {
                    b = false;
                }
            }


            //  btnPayer.visible = b;
            btnAdmin.visible   = b;
            btnCheck.visible   = b;
            btnDisable.visible = b;


            //btnPayer.selected = user["id"].n == Data.Club.Data["payer_uid"].n;
            btnAdmin.selected   = user.admin;
            btnCheck.selected   = user.status != 0;
            btnDisable.selected = user.status == 2;

            // btnPayer.onClick.Add(onBtnPayerClick);
            btnAdmin.onClick.Add(onBtnAdminClick);
            btnCheck.onClick.Add(onBtnCheckClick);
            btnDisable.onClick.Add(onBtnDisableClick);


            userList.AddChild(item);
        }
Пример #10
0
        public IActionResult PostForm(ClubViewModel clubViewModel)
        {
            var cu = new ClubUser
            {
                UserName = clubViewModel.name,
                Class    = clubViewModel.Class,
                Section  = clubViewModel.Section
            };

            _DbContext.clubUsers.Add(cu);
            _DbContext.SaveChanges();
            return(Redirect("/Club"));
        }
Пример #11
0
        public async Task FindUserById_Returns_Null_When_User_Does_Not_Exist()
        {
            AuthResult result = await _authService.LoginWithEmailAndPasswordAsync(_user, "testPassword", false, false);

            Assert.IsNotNull(result.User);
            Assert.IsNotNull(result.User.UserId);
            Assert.IsFalse(result.User.IsEmailVerified);
            Assert.AreEqual("Success", result.Result); //check that preparation is successful

            ClubUser user = await _sut.FindUserByIdAsync(result.User.UserId);

            Assert.That(user, Is.Null);
        }
Пример #12
0
 private void InitializeVisualProperties()
 {
     _user    = _credentials.User;
     Password = _credentials.Password;
     if (_user != null)
     {
         Email = _user.Email;
     }
     else
     {
         _user = new ClubUser();
     }
 }
Пример #13
0
        public void Values_Are_Not_Null_When_Exist()
        {
            _storage.GetValue("Password").Returns("myTestPassword");
            ClubUser user = new ClubUser {
                Email = "*****@*****.**"
            };
            string userJson = JsonConvert.SerializeObject(user);

            _storage.GetValue("User").Returns(userJson);

            Assert.AreEqual("myTestPassword", _sut.Password);
            Assert.AreEqual(user.Email, _sut.User.Email);
        }
Пример #14
0
 private static ClubUser createClubUser(User currentUser, Club club)
 {
     ClubUser user = new ClubUser();
     user.SetNewId();
     user.SetCreateDate();
     user.SetRowAdded();
     user.ClubId = club.Id;
     user.UserId = currentUser.Id;
     user.Score = 0;
     user.PetName = currentUser.PetName;
     user.IsCreator = true;
     user.IsAdmin = true;
     user.LevelValue = 3;
     return user;
 }
Пример #15
0
        public void CountManageState(User user, string CurrentUserId, string ClubId, string UserCode)
        {
            ClubUser objCurrentUser = GetClubUser(CurrentUserId, ClubId);

            user.IsClubManagerWithCurrentUser   = objCurrentUser.IsAdmin;
            user.IsClubCreatorWithCurrentUser   = objCurrentUser.IsCreator;
            user.IsSystemManagerWithCurrentUser = UserHelper.Instance.IsSystemManager(CurrentUserId);
            string   queryUserId  = GetUserByCode(UserCode).Id;
            ClubUser objQueryUser = GetClubUser(queryUserId, ClubId);

            user.IsClubManagerWithQueryUser = objQueryUser.IsAdmin;
            user.IsClubCreatorWithQueryUser = objQueryUser.IsCreator;
            user.ClubJoinTime = (DateTime)objQueryUser.CreateDate;
            user.PetName      = objQueryUser.PetName;
        }
Пример #16
0
        // TODO: refactor this method and its overload to eliminate duplicate code.
        public async Task <AuthResult> LoginWithEmailAndPasswordAsync(string email,
                                                                      string password,
                                                                      bool enforceValidation = true,
                                                                      bool saveUser          = true)
        {
            ClubUser user = null;

            try
            {
                _auth = await _authProvider.SignInWithEmailAndPasswordAsync(email, password);

                await _auth.RefreshUserDetails();

                user = await UserRepository.FindUserByIdAsync(_auth.User.LocalId);

                if (user == null)
                {
                    user = new ClubUser {
                        Email = email
                    };
                }
                user.UserId          = _auth.User.LocalId;
                user.IsEmailVerified = _auth.User.IsEmailVerified;
                if (!user.IsEmailVerified && enforceValidation)
                {
                    return(new AuthResult {
                        User = user, Result = "Error: Please, validate your email."
                    });
                }
                else
                {
                    if (saveUser)
                    {
                        await UserRepository.SaveUserAsync(user);
                    }
                    CurrentUser = user;
                    return(new AuthResult {
                        User = user, Result = "Success"
                    });
                }
            }
            catch (Exception)
            {
                return(new AuthResult {
                    User = user, Result = "Error: Invalid credentials"
                });
            }
        }
Пример #17
0
        //同步设置IM群成员昵称
        //文档: https://www.qcloud.com/document/product/269/1623
        public Response SetIMGroupAdmin(ClubUser obj)
        {
            IMGroup imGroup = new IMGroup();

            imGroup.GroupId        = obj.ClubId;
            imGroup.Member_Account = obj.UserCode;
            imGroup.NameCard       = obj.PetName;
            //请求IM接口
            var reqRest = new RestRequest("v4/group_open_http_svc/modify_group_member_info", Method.POST);

            reqRest.AddJsonBody(imGroup);

            var result = RestApiHelper.SendIMRequestAndGetResponse(reqRest);

            return(result);
        }
Пример #18
0
        private async Task Login(ClubUser user, string password)
        {
            if (user != null && password != null)
            {
                AuthResult result = await _authService.LoginWithEmailAndPasswordAsync(user, password);

                if (string.Equals(result.Result, "Success"))
                {
                    await _navigationService.NavigateAsync(_initialPage);
                }
                else
                {
                    await _pageDialogService.DisplayAlertAsync("Error", result.Result, "OK");
                }
            }
        }
Пример #19
0
        public async Task <IActionResult> Create(int id)
        {
            var user = await GetCurrentUserAsync();

            ClubUser clubUser = new ClubUser
            {
                ClubId = id,
                UserId = user.Id
            };


            _context.Add(clubUser);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Index", "Clubs"));
        }
Пример #20
0
        public async Task AddUser_Returns_User_And_User_Exists_In_Database()
        {
            AuthResult result = await _authService.LoginWithEmailAndPasswordAsync(_validatedUser, "testPassword");

            Assert.IsNotNull(result.User);
            Assert.IsNotNull(result.User.UserId);
            Assert.AreEqual("Success", result.Result); //check that preparation is successful

            ClubUser user = await _sut.SaveUserAsync(result.User);

            Assert.IsNotNull(result.User);
            Assert.IsNotNull(result.User.UserId);

            user = await _sut.FindUserByIdAsync(user.UserId);

            Assert.IsNotNull(result.User);
            Assert.IsNotNull(result.User.UserId);
        }
Пример #21
0
        public void PrepareTest()
        {
            _user = new ClubUser
            {
                Name        = "Pepe",
                Surname     = "Bernad",
                Email       = "*****@*****.**",
                DateOfBirth = new DateTime(1990, 1, 12),
                Level       = Level.Rookie,
                Phone       = "976223344",
                Weight      = 80
            };

            _validatedUser = new ClubUser
            {
                Name        = "Jose Maria",
                Surname     = "Bernad",
                Email       = "*****@*****.**",
                DateOfBirth = new DateTime(1990, 1, 12),
                Level       = Level.Intermediate,
                Phone       = "976223344",
                Weight      = 80
            };

            _board = new Board
            {
                Level     = Level.Intermediate,
                MaxWeight = 120,
                MinWeight = 50,
                Mode      = TableMode.Race,
                Type      = TableType.Rigid,
                Model     = "Mistral 12,6 M2 Rígida Tipo RACE"
            };
            _reservation = new Reservation
            {
                Status    = ReservationStatus.InProcess,
                StartDate = new DateTime(2017, 12, 15),
                EndDate   = new DateTime(2017, 12, 18),
            };
            _authService = new AuthService("<YourFirebaseApiKey>");
            _sut         = new ReservationRepository("<YourFirebaseDatabaseURL>", _authService);
        }
Пример #22
0
        public override void OnNavigatedTo(NavigationParameters parameters)
        {
            _action = parameters.GetValue <string>("action");
            Title   = _action;
            ClubUser user = _credentials.User;

            if (user == null)
            {
                User = new ClubUser();
            }
            else
            {
                User = user;
            }
            string password = _credentials.Password;

            if (password != null)
            {
                Password = password;
            }
        }
Пример #23
0
        public ClubUser GetClubUser(string userId, string ClubId)
        {
            string sql = @"
SELECT * FROM dbo.ClubUser WHERE UserId=@UserId AND ClubId=@ClubId
";
            var    cmd = CommandHelper.CreateText <ClubUser>(FetchType.Fetch, sql);

            cmd.Params.Add("@UserId", userId);
            cmd.Params.Add("@ClubId", ClubId);

            var result = DbContext.GetInstance().Execute(cmd);

            if (result.Entities.Count > 0)
            {
                return(result.FirstEntity <ClubUser>());
            }
            else
            {
                ClubUser clubUser = new ClubUser();
                clubUser.IsAdmin   = false;
                clubUser.IsCreator = false;
                return(clubUser);
            }
        }