Example #1
0
        public RegistryValueViewModel(RegistryValueDto dto)
        {
            Dto = dto;

            switch (dto)
            {
            case var val when val is StringRegistryValueDto typedVal:
                ValueString = typedVal.Value;
                break;

            case var val when val is BinaryRegistryValueDto typedVal:
                ValueString = BitConverter.ToString(typedVal.Value).Replace('-', ' ');
                break;

            case var val when val is DWordRegistryValueDto typedVal:
                ValueString = typedVal.Value.ToString();
                break;

            case var val when val is QWordRegistryValueDto typedVal:
                ValueString = typedVal.Value.ToString();
                break;

            case var val when val is MultiStringRegistryValueDto typedVal:
                ValueString = string.Join("\t", typedVal.Value);
                break;

            case var val when val is ExpandableStringRegistryValueDto typedVal:
                ValueString = typedVal.Value;
                break;
            }
        }
Example #2
0
 public void InitializeEdit(RegistryValueDto registryValue)
 {
     Value = JsonConvert.DeserializeObject <RegistryValueDto>(JsonConvert.SerializeObject(registryValue,
                                                                                          new JsonSerializerSettings {
         ContractResolver = new CamelCasePropertyNamesContractResolver()
     }));                                                                                                  //clone
     Name  = string.IsNullOrEmpty(registryValue.Name) ? Tx.T("RegistryEditor:DefaultValue") : registryValue.Name;
     Title = Tx.T("RegistryEditor:EditValueTitle", "name", Tx.T($"RegistryEditor:Type.{registryValue.Type}Value"));
 }
        public IActionResult CreateSubKeyValue([FromQuery] string path, [FromBody] RegistryValueDto valueDto)
        {
            var(registryHive, relativePath) = RegistryHelper.UnpackPath(path);

            using (var regKey = RegistryHelper.OpenRegistry(registryHive).OpenSubKey(relativePath ?? string.Empty, RegistryKeyPermissionCheck.ReadWriteSubTree))
            {
                object            value;
                RegistryValueKind kind;

                switch (valueDto)
                {
                case var val when val is StringRegistryValueDto typedVal:
                    value = typedVal.Value;
                    kind  = RegistryValueKind.String;
                    break;

                case var val when val is ExpandableStringRegistryValueDto typedVal:
                    value = typedVal.Value;
                    kind  = RegistryValueKind.ExpandString;
                    break;

                case var val when val is BinaryRegistryValueDto typedVal:
                    value = typedVal.Value;
                    kind  = RegistryValueKind.Binary;
                    break;

                case var val when val is DWordRegistryValueDto typedVal:
                    value = (int)typedVal.Value;
                    kind  = RegistryValueKind.DWord;
                    break;

                case var val when val is QWordRegistryValueDto typedVal:
                    value = (long)typedVal.Value;
                    kind  = RegistryValueKind.QWord;
                    break;

                case var val when val is MultiStringRegistryValueDto typedVal:
                    value = typedVal.Value;
                    kind  = RegistryValueKind.MultiString;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                regKey.SetValue(valueDto.Name, value, kind);
                return(Ok());
            }
        }
Example #4
0
 public static Task SetRegistryValue(string path, RegistryValueDto registryValue, ITargetedRestClient restClient) =>
 CreateRequest(HttpVerb.Post, "subKeys/values", registryValue).AddQueryParam("path", path).Execute(restClient);