Exemple #1
0
        public async Task BindModelAsync(ModelBindingContext bindingContext)
        {
            if (bindingContext.Model != null)
            {
                throw new InvalidOperationException("Cannot update instances");
            }

            bindingContext.Result = ModelBindingResult.Success(await _userInfoProvider.GetUserInfoAsync());
        }
Exemple #2
0
        public async Task <ProfileModel> Handle(GetProfile request, CancellationToken cancellationToken)
        {
            var userInfo = await _userInfoProvider.GetUserInfoAsync();

            var user = await _userManager.Users.FirstOrDefaultAsync(e => e.Id == userInfo.UserId, cancellationToken);

            var model = _mapper.Map <User, ProfileModel>(user);

            return(model);
        }
        public async Task <Unit> Handle(UpdateProfile request, CancellationToken cancellationToken)
        {
            var userInfo = await _userInfoProvider.GetUserInfoAsync();

            var user = await _userManager.Users
                       .FirstOrDefaultAsync(e => e.Id == userInfo.UserId, cancellationToken);

            _mapper.Map(request, user);

            var result = await _userManager.UpdateAsync(user);

            result.CheckIfSucceeded();
            return(Unit.Value);
        }
Exemple #4
0
        public async Task <Unit> Handle(UpdateProfile request, CancellationToken cancellationToken)
        {
            var userInfo = await _userInfoProvider.GetUserInfoAsync();

            var user = await _userManager.Users
                       .FirstOrDefaultAsync(e => e.Id == userInfo.UserId, cancellationToken);

            if (!string.Equals(user.Email, request.Email, StringComparison.CurrentCultureIgnoreCase))
            {
                await _userManager.UpdateUserEmail(user, request.Email);
            }

            if (!string.IsNullOrEmpty(request.NewPassword))
            {
                var result = await _userManager.ChangePasswordAsync(user, request.CurrentPassword,
                                                                    request.NewPassword);

                result.CheckIfSucceeded();
            }

            await _unitOfWork.CommitAsync();

            return(Unit.Value);
        }
Exemple #5
0
        protected override async Task <int> ExecuteCommand(RequestTrialCommand arguments)
        {
            WriteLine("Fetching user information...");
            logger.LogInformation("Fetching user information...");

            var userInfo = await userInfoProvider.GetUserInfoAsync();

            if (userInfo == null)
            {
                WriteLine("ERROR: Cannot fetch user information");
                logger.LogError("ERROR: Cannot fetch user information");
                return(-1);
            }
            else
            {
                logger.LogInformation("Logged in with {User}", userInfo);
            }

            WriteLine($"Hello {userInfo.UserName}!");
            WriteLine($"Id:    {userInfo.UserId}");
            WriteLine($"Email: {userInfo.Email}");

            WriteLine("Fetching active licenses...");
            logger.LogInformation("Fetching active licenses...");

            var storedLicense = await licenseStorage.FetchAsync();

            WriteLine($"Has stored license...? {!string.IsNullOrEmpty(storedLicense)}");

            if (string.IsNullOrEmpty(storedLicense))
            {
                var askForKey = arguments.AskForKey("You don't have a license yet. Do you want to request a trial?");

                if (askForKey)
                {
                    try
                    {
                        var machineKey = await deviceIdProvider.GetDeviceIdAsync();

                        var trialResult = await licenseClient.LicensesRequestTrialAsync(new InRequestTrialModel(machineKey));

                        if (await licenseValidator.IsValid(trialResult.License, trialResult.PublicKey))
                        {
                            WriteLine($"License is valid until {await licenseInformationProvider.IsValidUntil()}");
                        }

                        if (!arguments.NoStore)
                        {
                            await licenseStorage.StoreAsync(trialResult.License);

                            await publicKeyStorage.StoreAsync(trialResult.PublicKeyName, trialResult.PublicKey);
                        }

                        return(0);
                    }
                    catch (LicenseApiException <IDictionary <string, object> > ex) when(ex.StatusCode == 400)
                    {
                        WriteLine($"ERROR");
                        foreach (var error in ex.Result)
                        {
                            WriteLine($"{error.Key}: {error.Value}");
                        }
                    }
                    catch (LicenseApiException ex) when(ex.StatusCode == 400 || ex.StatusCode == 500)
                    {
                        WriteLine($"ERROR {ex}");
                    }
                }
            }

            if (await licenseValidator.IsValid(storedLicense))
            {
                WriteLine($"License is valid until {await licenseInformationProvider.IsValidUntil()}");
            }

            return(0);
        }