public ICollection <string> ExtractEnvironmentVariables(ProfileModel model)
        {
            _objectValidator.IsNull(model, nameof(model));

            var foundEnvironmentVariables = ProcessFileHelper.ExtractEnvironmentVariables(model.Fields);

            return(foundEnvironmentVariables);
        }
        public async Task <ProfileModel> Read(string path)
        {
            _stringValidator.IsNullOrWhitespace(path, nameof(path));
            _fileValidator.IsExist(path);

            var fileContent = await _diskService.ReadFileText(path);

            var fields = ProcessFileHelper.ProcessContent(fileContent);

            var result = new ProfileModel(fields);

            return(result);
        }
        public async Task <Pbkdf2Model> Decrypt(string path, string entropy)
        {
            _stringValidator.IsNullOrWhitespace(path, nameof(path));
            _stringValidator.IsNullOrWhitespace(entropy, nameof(entropy));
            _fileValidator.IsExist(path);

            var content = await _diskService.ReadFileText(path);

            var plaintext = _pbkdF2Service.Decrypt(content, entropy);

            var fields = ProcessFileHelper.ProcessContent(plaintext);

            var result = new Pbkdf2Model(fields);

            var environmentVariables = ProcessFileHelper.ExtractEnvironmentVariables(result.Fields);

            var environmentVariablesValues = _environmentVariableReader.Read(environmentVariables);

            result = ProcessEnvironmentVariables(result, environmentVariablesValues);

            return(result);
        }