private void HandleUpdateRequest(UpdateRegistrationRequest request)
        {
            RegistrationResponse response;

            Log.Info("Update Registraion for {Apps}", request.Name);

            try
            {
                if (!_apps.TryGetValue(request.Name, out var path))
                {
                    Log.Warning("No Registration Found {Apps}", request.Name);
                    response = new RegistrationResponse(true, null);
                }
                else
                {
                    var newData = JsonConvert.DeserializeObject <InstalledApp>(File.ReadAllText(path)).NewVersion();
                    File.WriteAllText(path, JsonConvert.SerializeObject(newData));
                    response = new RegistrationResponse(true, null);

                    Log.Info("Registration Update Compled {Apps}", request.Name);
                }
            }
            catch (Exception e)
            {
                Log.Error(e, "Error while Reading or Writing Registration {Apps}", request.Name);
                response = new RegistrationResponse(false, e);
            }

            Sender.Tell(response);
            _subscribeAbility.Send(response);
        }
        private void HandleNewRegistration(NewRegistrationRequest request)
        {
            Log.Info("Register new Application {Apps}", request.Name);
            RegistrationResponse response;

            try
            {
                if (_apps.ContainsKey(request.Name))
                {
                    Log.Warning("Attempt to Register Duplicate Application {Apps}", request.Name);
                    response = new RegistrationResponse(false, new InvalidOperationException("Duplicate"));
                }
                else
                {
                    string fullPath = Path.GetFullPath(request.Path + AppFileExt);
                    File.WriteAllText(fullPath,
                                      JsonConvert.SerializeObject(new InstalledApp(request.Name, request.Path, request.Version, request.AppType, request.SupressWindow, request.ExeFile)));
                    _apps[request.Name] = fullPath;

                    response = new RegistrationResponse(true, null);
                    Self.Tell(new SaveData());

                    Log.Info("Registration Compled for {Apps}", request.Name);
                }
            }
            catch (Exception e)
            {
                Log.Error(e, "Error while registration new Application {Apps}", request.Name);
                response = new RegistrationResponse(false, e);
            }

            Sender.Tell(response);
            _subscribeAbility.Send(response);
        }