예제 #1
0
        private MediatorResponse <TraineeshipVacancyDetailViewModel> GetDetails(TraineeshipVacancyDetailViewModel vacancyDetailViewModel)
        {
            if (vacancyDetailViewModel == null || vacancyDetailViewModel.VacancyStatus == VacancyStatuses.Unavailable)
            {
                return(GetMediatorResponse <TraineeshipVacancyDetailViewModel>(TraineeshipSearchMediatorCodes.Details.VacancyNotFound));
            }

            if (vacancyDetailViewModel.HasError())
            {
                return(GetMediatorResponse(TraineeshipSearchMediatorCodes.Details.VacancyHasError, vacancyDetailViewModel, vacancyDetailViewModel.ViewModelMessage, UserMessageLevel.Warning));
            }

            var distance          = UserDataProvider.Pop(CandidateDataItemNames.VacancyDistance);
            var lastViewedVacancy = UserDataProvider.PopLastViewedVacancy();

            if (HasToPopulateDistance(vacancyDetailViewModel.Id, distance, lastViewedVacancy))
            {
                vacancyDetailViewModel.Distance = distance;
                UserDataProvider.Push(CandidateDataItemNames.VacancyDistance, distance);
            }

            UserDataProvider.PushLastViewedVacancyId(vacancyDetailViewModel.Id, VacancyType.Traineeship);

            return(GetMediatorResponse(TraineeshipSearchMediatorCodes.Details.Ok, vacancyDetailViewModel));
        }
        // POST: api/User
        public HttpResponseMessage Post(string username)
        {
            IEnumerable <string> headerValues = Request.Headers.GetValues("Authorization");
            string accessToken = (string)headerValues.FirstOrDefault();
            string userId      = GraphProvider.getUserId(accessToken);

            if (userId == null)
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }
            UserDataProvider.userOperationResult result = UserDataProvider.registerUser(Int64.Parse(userId), username);
            switch (result)
            {
            case UserDataProvider.userOperationResult.UserRegistrationSuccess:
                return(Request.CreateResponse(HttpStatusCode.Created));

            case UserDataProvider.userOperationResult.UsernameIsTaken:
                return(Request.CreateResponse(HttpStatusCode.Conflict));

            case UserDataProvider.userOperationResult.UserRegistrationFailed:
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));

            case UserDataProvider.userOperationResult.UserAlreadyRegistered:
                return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed));

            default:
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }
예제 #3
0
        /// <summary>
        /// 更新用户密码信息。
        /// </summary>
        /// <param name="username">用户名。</param>
        /// <param name="password">用户密码。</param>
        /// <exception cref="ArgumentNullException"/>
        public static void UpdatePassword(string username, string password)
        {
            if (username == null)
            {
                throw new ArgumentNullException(nameof(username));
            }
            if (password == null)
            {
                throw new ArgumentNullException(nameof(password));
            }

            UserHandle handle = UserManager.Default.QueryUserByName(username);

            if (handle == null)
            {
                // 数据库中没有对应用户的实体。
                return;
            }

            byte[] hash = GetPasswordHash(password);
            using (UserDataProvider data = UserDataProvider.Create(handle, false))
            {
                // 更新密码哈希值。
                data.PasswordHash = hash;
            }
        }
예제 #4
0
        public static void Main(string[] args)
        {
            UserDataProvider userDataProvider = new UserDataProvider();

            userDataProvider.CreateDummy();
            CreateWebHostBuilder(args).Build().Run();
        }
예제 #5
0
        /// <summary>
        /// 从用户句柄创建 UserProfileModel 模型对象。
        /// </summary>
        /// <param name="handle">用户句柄。</param>
        /// <returns>UserProfileModel 模型对象。</returns>
        /// <exception cref="ArgumentNullException"/>
        public static UserProfileModel FromUserHandle(UserHandle handle)
        {
            if (handle == null)
            {
                throw new ArgumentNullException(nameof(handle));
            }

            UserProfileModel model = new UserProfileModel()
            {
                Username = handle.Username
            };

            using (UserDataProvider userData = UserDataProvider.Create(handle, true))
            {
                model.Organization = userData.Organization;
                model.UserGroup    = userData.UserGroup;
                model.Sex          = userData.Sex;

                // 加载用户队伍信息。
                foreach (TeamHandle team in userData.GetTeams())
                {
                    model.Teams.Add(TeamBriefModel.FromTeamHandle(team));
                }

                // TODO: 完成用户提交统计模块后,在这里添加代码将用户提交统计信息复制入模型中。
            }

            return(model);
        }
        public void LogoutUser(User user)
        {
            sqlConnectionToDatabase.ConnectionString = connectionString;
            UserDataProvider userDataProvider = new UserDataProvider(sqlConnectionToDatabase);

            userDataProvider.RemoveUserGuidFromDatabase(user);
        }
        public bool Registration(string userEmail, string userPassword)
        {
            sqlConnectionToDatabase.ConnectionString = connectionString;
            UserDataProvider userDataProvider = new UserDataProvider(sqlConnectionToDatabase);

            return(userDataProvider.SaveNewUserIntoDatabase(userEmail, userPassword) == 1);
        }
예제 #8
0
        private bool DoRegister(UserRegisterModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            if (UserManager.Default.IsUserExist(model.Username))
            {
                model.UsernameErrorMessage = "Username already exist.";
                return(false);
            }

            UserHandle handle = UserManager.Default.CreateUser(model.Username);

            UserAuthorization.UpdatePassword(model.Username, model.Password);

            using (UserDataProvider data = UserDataProvider.Create(handle, false))
            {
                data.Sex       = SexConvert.ConvertFromString(model.Sex);
                data.UserGroup = UsergroupConvert.ConvertFromString(model.UserGroupName);
            }

            return(true);
        }
예제 #9
0
        public void ShouldIncrementSavedVacancyCount(int savedAndDraftCount)
        {
            // Arrange.
            var viewModel = new SavedVacancyViewModel();

            ApprenticeshipApplicationProvider
            .Setup(mock => mock.SaveVacancy(_testCandidateId, TestVacancyId))
            .Returns(viewModel);

            UserDataProvider
            .Setup(mock => mock.Get(UserDataItemNames.SavedAndDraftCount))
            .Returns(savedAndDraftCount.ToString(CultureInfo.InvariantCulture));

            // Act.
            var response = Mediator.SaveVacancy(_testCandidateId, TestVacancyId);

            // Assert.
            UserDataProvider.Verify(mock => mock.Get(UserDataItemNames.SavedAndDraftCount), Times.Once);
            UserDataProvider.Verify(
                mock =>
                mock.Push(UserDataItemNames.SavedAndDraftCount,
                          (savedAndDraftCount + 1).ToString(CultureInfo.InvariantCulture)), Times.Once);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.SaveVacancy.Ok, true);
            response.ViewModel.Should().Be(viewModel);
        }
예제 #10
0
        private MediatorResponse <ApprenticeshipVacancyDetailViewModel> GetDetails(ApprenticeshipVacancyDetailViewModel vacancyDetailViewModel)
        {
            if (vacancyDetailViewModel == null)
            {
                return(GetMediatorResponse <ApprenticeshipVacancyDetailViewModel>(ApprenticeshipSearchMediatorCodes.Details.VacancyNotFound));
            }

            if (vacancyDetailViewModel.HasError())
            {
                return(GetMediatorResponse(ApprenticeshipSearchMediatorCodes.Details.VacancyHasError, vacancyDetailViewModel, vacancyDetailViewModel.ViewModelMessage, UserMessageLevel.Warning));
            }

            if ((!vacancyDetailViewModel.CandidateApplicationStatus.HasValue && vacancyDetailViewModel.VacancyStatus != VacancyStatuses.Live) ||
                (vacancyDetailViewModel.CandidateApplicationStatus.HasValue && vacancyDetailViewModel.VacancyStatus == VacancyStatuses.Unavailable))
            {
                // Candidate has no application for the vacancy and the vacancy is no longer live OR
                // candidate has an application (at least a draft) but the vacancy is no longer available.
                return(GetMediatorResponse <ApprenticeshipVacancyDetailViewModel>(ApprenticeshipSearchMediatorCodes.Details.VacancyNotFound));
            }

            var distance          = UserDataProvider.Pop(CandidateDataItemNames.VacancyDistance);
            var lastViewedVacancy = UserDataProvider.PopLastViewedVacancy();

            if (HasToPopulateDistance(vacancyDetailViewModel.Id, distance, lastViewedVacancy))
            {
                vacancyDetailViewModel.Distance = distance;
                UserDataProvider.Push(CandidateDataItemNames.VacancyDistance, distance);
            }

            UserDataProvider.PushLastViewedVacancyId(vacancyDetailViewModel.Id, VacancyType.Apprenticeship);

            return(GetMediatorResponse(ApprenticeshipSearchMediatorCodes.Details.Ok, vacancyDetailViewModel));
        }
예제 #11
0
        public ActionResult UserTeams()
        {
            string username = Request.QueryString["username"];

            if (string.IsNullOrEmpty(username))
            {
                return(QueryResult(1, "Username is required."));
            }

            if (!UserManager.Default.IsUserExist(username))
            {
                return(QueryResult(2, "Username is not exist."));
            }

            UserHandle user = new UserHandle(username);

            List <TeamDetailModel> teams = new List <TeamDetailModel>();

            using (UserDataProvider userData = UserDataProvider.Create(user, true))
            {
                foreach (TeamHandle team in userData.GetTeams())
                {
                    teams.Add(TeamDetailModel.FromTeamHandle(team));
                }
            }

            return(QueryResult(teams));
        }
예제 #12
0
        /// <summary>
        /// 从给定的 Session 中抽取当前会话用户权限集。
        /// </summary>
        /// <param name="session">当前会话上下文。</param>
        /// <returns>存在于当前会话中的用户权限集。</returns>
        public static UserGroup GetUserGroup(HttpSessionStateBase session)
        {
            if (session == null)
            {
                return(UserGroup.Guests);
            }

            // 从数据库中查询权限集。
            string username = GetUsername(session);

            if (username == null)
            {
                return(UserGroup.Guests);
            }

            UserHandle handle = UserManager.Default.QueryUserByName(username);

            if (handle == null)
            {
                return(UserGroup.Guests);
            }

            using (UserDataProvider userData = UserDataProvider.Create(handle, true))
            {
                return(userData.UserGroup);
            }
        }
예제 #13
0
        public DatabaseInitializer(
            ICallContext callContext,
            AppDbContext appDbContext,
            AppConfig appConfig,
            IAuthProvider authProvider,
            ColorDataProvider colorDataProvider,
            BikeModelDataProvider bikeModelDataProvider,
            UserDataProvider userDataProvider,
            BikeDataProvider bikeDataProvider
            )
            : base(callContext, appDbContext, appConfig)
        {
            AppDbContext.OnModelCreatingCallback = this.OnModelCreating;

            ObjectInitializers = new IDatabaseInitializer[] {
                // Schema
                // Tables
                // Views
                new Schema.Views.V_User(callContext, appDbContext, appConfig),
                // Functions
                new Schema.Functions.ufn_GeoDistanceMiles(callContext, appDbContext, appConfig),
                // Data
                new InitialData.AspNetRoles(callContext, appDbContext, appConfig, authProvider),
                new InitialData.AspNetUsers(callContext, appDbContext, appConfig, authProvider),
                new InitialData.Colors(callContext, appDbContext, appConfig, colorDataProvider),
                new InitialData.BikeModels(callContext, appDbContext, appConfig, bikeModelDataProvider),
                new InitialData.Bikes(callContext, appDbContext, appConfig, colorDataProvider, bikeModelDataProvider, userDataProvider, bikeDataProvider)
            };
        }
        // POST: api/Vote
        public HttpResponseMessage Post(string username, int vote)
        {
            IEnumerable <string> headerValues = Request.Headers.GetValues("Authorization");
            string accessToken = (string)headerValues.FirstOrDefault();
            string userId      = GraphProvider.getUserId(accessToken);

            if (userId == null)
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }
            string user = UserDataProvider.getUsername(Int64.Parse(userId));

            if (user == null)
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }
            if (!(vote == 1 || vote == 0 || vote == -1))
            {
                return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed));
            }
            if (UserStatsProvider.castVote(username, user, vote))
            {
                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }
예제 #15
0
 public UserManager(
     ICallContext callContext,
     UserDataProvider userDataProvider
     )
     : base(callContext)
 {
     this.UserDataProvider = userDataProvider;
 }
예제 #16
0
        private string GetApprenticeshipLevel(bool reset)
        {
            if (reset)
            {
                UserDataProvider.Pop(CandidateDataItemNames.ApprenticeshipLevel);
            }

            return(UserDataProvider.Get(CandidateDataItemNames.ApprenticeshipLevel) ?? "All");
        }
예제 #17
0
    /// <summary>
    /// Providerの追加
    /// </summary>
    protected override void SetProvider()
    {
        //providerの作成・追加
        testDataProvider = new UserDataProvider <UserTestData>("UserTestData");
        providers.Add(typeof(UserTestData).Name, testDataProvider);

        sampleDataProvider = new UserDataProvider <UserSampleData>("UserSampleData");
        providers.Add(typeof(UserSampleData).Name, sampleDataProvider);
    }
예제 #18
0
 public UserProvider(
     ICallContext callContext,
     AppConfig appConfig,
     UserDataProvider userDataProvider
     )
     : base(callContext, appConfig)
 {
     this.UserDataProvider = userDataProvider;
 }
예제 #19
0
 public IActionResult OnGet(string userId)
 {
     User = UserDataProvider.GetUser(userId);
     if (User == null)
     {
         return(RedirectToPage("./NotFound"));
     }
     return(Page());
 }
예제 #20
0
 public UserManager(
     ICallContext callContext,
     IAuthProvider authProvider,
     AppConfig appConfig,
     UserDataProvider userDataProvider
     )
     : base(callContext, appConfig, userDataProvider)
 {
     this.AuthProvider = authProvider;
 }
예제 #21
0
        public User Login(string loginName, string password)
        {
            if (String.IsNullOrEmpty(loginName) ||
                String.IsNullOrEmpty(password))
            {
                return(null);
            }

            return(UserDataProvider.Login(loginName, password));
        }
        public MediatorResponse <SavedVacancyViewModel> DeleteSavedVacancy(Guid candidateId, int vacancyId)
        {
            var viewModel = _apprenticeshipApplicationProvider.DeleteSavedVacancy(candidateId, vacancyId);
            int savedVacancyCount;

            int.TryParse(UserDataProvider.Get(UserDataItemNames.SavedAndDraftCount), out savedVacancyCount);
            UserDataProvider.Push(UserDataItemNames.SavedAndDraftCount, Math.Max(0, savedVacancyCount - 1).ToString(CultureInfo.InvariantCulture));

            return(GetMediatorResponse(ApprenticeshipApplicationMediatorCodes.DeleteSavedVacancy.Ok, viewModel));
        }
예제 #23
0
        public void PoputlateLocationCookieWithSearchedLocation()
        {
            UserDataProvider.Setup(x => x.Get(UserDataItemNames.LastSearchedLocation)).Returns("TEST COOKIE LOCATION");

            var response = Mediator.Index(null, ApprenticeshipSearchMode.Keyword, false);

            response.AssertCode(ApprenticeshipSearchMediatorCodes.Index.Ok, true);
            response.ViewModel.Location.Should().Be("TEST COOKIE LOCATION");
            CandidateServiceProvider.Verify(x => x.GetCandidate(It.IsAny <Guid>()), Times.Never);
        }
예제 #24
0
        public void RememberApprenticeshipLevel()
        {
            UserDataProvider.Setup(udp => udp.Get(CandidateDataItemNames.ApprenticeshipLevel)).Returns("Advanced");

            var response = Mediator.Index(ApprenticeshipSearchMode.Keyword);

            var viewModel = response.ViewModel;

            viewModel.ApprenticeshipLevel.Should().Be("Advanced");
        }
예제 #25
0
        public List <User> LoadUserList(string loginName)
        {
            var tuple = UserDataProvider.LoadUserList(loginName);
            var list  = tuple.Item1;

            foreach (var item in list)
            {
                item.Roles = String.Join(",", tuple.Item2.Where(t => t.UserId == item.UserId).Select(t => t.RoleName).ToArray());
            }
            return(list);
        }
예제 #26
0
        public override async Task UpdateUserDetailsAsync(OracleSchemaModel dataModel, CancellationToken cancellationToken)
        {
            var userDetailDataProvider = new UserDataProvider(dataModel);
            var defaultTablespaceDetailDataProvider   = new TablespaceDetailDataProvider(dataModel.DefaultTablespaceModel);
            var defaultDatafileDataProvider           = new TablespaceFilesDataProvider(dataModel.DefaultTablespaceModel);
            var temporaryTablespaceDetailDataProvider = new TablespaceDetailDataProvider(dataModel.TemporaryTablespaceModel);
            var temporaryDatafileDataProvider         = new TablespaceFilesDataProvider(dataModel.TemporaryTablespaceModel);
            var profileDataProvider = new ProfileDetailsDataProvider(dataModel.ProfileModel);

            await UpdateModelAsync(true, cancellationToken, userDetailDataProvider, defaultTablespaceDetailDataProvider, temporaryTablespaceDetailDataProvider, defaultDatafileDataProvider, temporaryDatafileDataProvider, profileDataProvider);
        }
예제 #27
0
        public async Task <ActionResult> MinimalSettingsEdit()
        {
            using (UserDataProvider dataProvider = new UserDataProvider()) {
                EditModel model = new EditModel {
                };
                UserData data   = await dataProvider.GetItemAsync();

                model.SetData(data);
                return(View(model));
            }
        }
예제 #28
0
        public bool UpdatePassword(int userId, string loginName, string oldPwd, string newPwd)
        {
            var user = this.Login(loginName, oldPwd);

            if (user == null || user.UserId <= 0)
            {
                return(false);
            }

            UserDataProvider.UpdatePassword(userId, newPwd);
            return(true);
        }
예제 #29
0
        public User GetUser(User user, bool checkPassword)
        {
            if (checkPassword && String.IsNullOrEmpty(user.Password))
            {
                return(null);
            }

            var result = UserDataProvider.GetInstance().GetUser(ConvertObjects.ConvertType(user));

            UserHelper.CurrentUser = ConvertObjects.ConvertType(result);
            return(UserHelper.CurrentUser);
        }
예제 #30
0
        /// <summary>
        /// 提供快捷方法获取给定用户的操作权限信息。
        /// </summary>
        /// <param name="handle">用户句柄。</param>
        /// <returns>给定用户的操作权限信息。</returns>
        /// <exception cref="ArgumentNullException"/>
        public static UserGroup GetUserGroup(UserHandle handle)
        {
            if (handle == null)
            {
                throw new ArgumentNullException(nameof(handle));
            }

            using (UserDataProvider data = UserDataProvider.Create(handle, true))
            {
                return(data.UserGroup);
            }
        }
예제 #31
0
파일: Main.cs 프로젝트: uaans/ocase
 private static List<User> CreateUsers()
 {
     List<User> users = new List<User>();
     if (Configuration.GenerateOrganization)
     {
         Console.WriteLine("Creating users...");
         TimeCounter counter = new TimeCounter("Creating 1000 users");
         for (int i = 0; i < 1000; i++)
         {
             counter.Start();
             User user = User.GetOne();
             user.Save();
             counter.Stop();
             users.Add(user);
         }
         counter.PrintTime();
     }
     else
     {
         users = new UserDataProvider().GetAll();
     }
     return users;
 }