Beispiel #1
0
        public void TestAreModelsEqual()
        {
            // Arrange
            string path      = @"c:\foo";
            string fileName  = "testimage";
            string extension = ".png";
            string id        = Path.Combine(path, fileName) + extension;

            // Act
            TextureModel modelA = new TextureModel(id);
            TextureModel modelB = modelA;
            bool         equals = modelA.Equals(modelB);

            // Assert
            Assert.AreEqual(path, modelA.Path, "Path doesn't match in model A!");
            Assert.AreEqual(fileName, modelA.FileNameWithoutExtension, "File name without extension doesn't match in model A!");
            Assert.AreEqual(id, modelA.Id, "Id doesn't match in model A!");
            Assert.AreEqual(path, modelB.Path, "Path doesn't match in model B!");
            Assert.AreEqual(fileName, modelB.FileNameWithoutExtension, "File name without extension doesn't match in model B!");
            Assert.AreEqual(id, modelB.Id, "Id doesn't match in model B!");
            Assert.IsTrue(equals, "Models aren't equal!");
        }
Beispiel #2
0
        private void DeleteDuplicates(IEnumerable <TextureItemViewModel> viewModels)
        {
            IsBusy = true;
            SetStatus("Removing duplicates...");

            _log.Info("Deleting duplicates");

            try
            {
                foreach (var textureVm in viewModels)
                {
                    TextureModel deletableModel = _textureComparer.GetDeletableModel(textureVm.Model, textureVm.DuplicateModel);
                    if (deletableModel != null)
                    {
                        TextureModel         modelToDelete;
                        TextureItemViewModel duplicateVm;
                        TextureItemViewModel vmToDelete;

                        // Delete the actual duplicate
                        if (deletableModel.Equals(textureVm.Model))
                        {
                            modelToDelete = textureVm.DuplicateModel;
                            duplicateVm   = GetViewModelByModel(textureVm.DuplicateModel);
                            vmToDelete    = textureVm;
                        }
                        else
                        {
                            modelToDelete = textureVm.Model;
                            duplicateVm   = GetViewModelByModel(textureVm.Model);
                            vmToDelete    = GetViewModelByModel(textureVm.DuplicateModel);
                        }

                        if (_textureProvider.DeleteTexture(deletableModel))
                        {
                            lock (_lockObj)
                            {
                                if (duplicateVm != null)
                                {
                                    duplicateVm.SetDuplicateModel(null);
                                }

                                if (vmToDelete != null)
                                {
                                    Textures.Remove(vmToDelete);
                                }
                            }
                        }
                    }
                }

                NotifyOfPropertyChange(() => NumberOfTextures);
                NotifyOfPropertyChange(() => NumberOfDuplicates);
                NotifyOfPropertyChange(() => Textures);
                NotifyOfPropertyChange(() => TexturesToShow);

                SetStatus();
            }
            catch (Exception ex)
            {
                _log.Error(ex);
                SetStatus("ERROR: " + ex.Message);
            }
            finally
            {
                IsBusy = false;
            }
        }