Exemplo n.º 1
0
        private void AddReference()
        {
            var ofd = new SWF.OpenFileDialog {
                Filter = "DLL|*.dll", Multiselect = true
            };

            if (ofd.ShowDialog() == SWF.DialogResult.OK)
            {
                if (Path.GetDirectoryName(ofd.FileName).Contains(AppDomain.CurrentDomain.BaseDirectory.Trim('\\')))
                {
                    _dialogService.ShowMessage("Please do not add files in the installation directory!", MessageButton.OK, MessageType.Warning);
                    return;
                }

                foreach (var selectedName in ofd.FileNames)
                {
                    var fileName       = Path.GetFileName(selectedName);
                    var targetFileName = AppDomain.CurrentDomain.BaseDirectory + fileName;

                    var reference = References.FirstOrDefault(r => string.Equals(r.FileName, fileName, StringComparison.OrdinalIgnoreCase));
                    if (reference != null)
                    {
                        var result = ButtonResult.Yes;
                        var msg    = string.Format("{0}\n\nThis file already exists.\nDo you want to replace it?", fileName);
                        _dialogService.ShowMessage(msg, MessageButton.YesNo, MessageType.Question, r =>
                        {
                            result = r.Result;
                        });

                        if (result != ButtonResult.Yes)
                        {
                            continue;
                        }

                        if (FileHelper.Exists(targetFileName))
                        {
                            File.Delete(targetFileName);
                        }

                        References.Remove(reference);
                        _appData.Config.References.Remove(fileName);
                    }

                    try
                    {
                        File.Copy(selectedName, targetFileName, true);

                        References.Add(new ReferenceViewModel(fileName));
                        _appData.Config.References.Add(fileName);
                    }
                    catch (Exception ex)
                    {
                        var msg = string.Format("{0}\n\nAdd failed: {1}.\nPlease try again!", fileName, ex.Message);
                        _dialogService.ShowMessage(msg, MessageButton.OK, MessageType.Error);
                    }
                }

                RemoveRefCommand.RaiseCanExecuteChanged();
            }
        }
Exemplo n.º 2
0
        private void RemoveReference()
        {
            for (int i = 0; i < References.Count; i++)
            {
                var r = References[i];
                if (r.IsSelected)
                {
                    References.RemoveAt(i);
                    _appData.Config.References.RemoveAll(rf => rf == r.FileName);

                    var filePath = AppDomain.CurrentDomain.BaseDirectory + r.FileName;
                    if (FileHelper.Exists(filePath))
                    {
                        File.Delete(filePath);
                    }

                    i--;
                }
            }

            RemoveRefCommand.RaiseCanExecuteChanged();
        }
Exemplo n.º 3
0
 private void RefSelectionChanged()
 {
     RemoveRefCommand.RaiseCanExecuteChanged();
 }