예제 #1
0
        public void Delete()
        {
            var sw = new Stopwatch();

            sw.Start();
            using (var storage = _isolatedStorageFileProvider.GetIsolatedStorage())
            {
                if (storage.FileExists(appSettings.Default.TimeTrackerDataFile))
                {
                    try
                    {
                        storage.DeleteFile(appSettings.Default.TimeTrackerDataFile);
                    }
                    catch (IsolatedStorageException ex)
                    {
                        Logger.Error(ex);
                        DataSet = new TimeTrackerDataSet();
                        Save();
                    }
                }
            }
            DataSet = null;
            sw.Stop();
            Logger.Debug("Delete(): " + sw.Elapsed);
        }
예제 #2
0
        private void Load()
        {
            var sw = new Stopwatch();

            sw.Start();
            lock (LockObj)
            {
                try
                {
                    using (var appScope = _isolatedStorageFileProvider.GetIsolatedStorage())
                    {
                        using (var fs = new IsolatedStorageFileStream(appSettings.Default.TimeTrackerDataFile, FileMode.OpenOrCreate, appScope))
                        {
                            var formatter = new BinaryFormatter();
                            DataSet = (TimeTrackerDataSet)formatter.Deserialize(fs);
                        }
                    }
                }
                catch (Exception)
                {
                    DataSet = new TimeTrackerDataSet();
                }
            }
            sw.Stop();
            Logger.Debug("Load(): " + sw.Elapsed);
        }
            public void CollectionContainsThreeCompanies_ReturnsTwoCompanies()
            {
                // Arrange
                var fixture = InitializeFixture();

                var trackerDataSet = new TimeTrackerDataSet();
                var excludedCust1  = trackerDataSet.Customers.NewCustomersRow();

                excludedCust1.Id   = 1;
                excludedCust1.Name = "abcd";
                var includedCust1 = trackerDataSet.Customers.NewCustomersRow();

                includedCust1.Id   = 2;
                includedCust1.Name = "defg";
                var includedCust2 = trackerDataSet.Customers.NewCustomersRow();

                includedCust2.Id   = 3;
                includedCust2.Name = "dEFg";
                var excludedCust2 = trackerDataSet.Customers.NewCustomersRow(); // Fullfills searchstring but is inactive, therefore exlcuded

                excludedCust2.Id       = 3;
                excludedCust2.Name     = "dEFghijk";
                excludedCust2.Inactive = true;

                var dataWrapper = fixture.Create <Mock <DataSetWrapper> >();

                dataWrapper
                .SetupGet(x => x.Customers)
                .Returns(new List <TimeTrackerDataSet.CustomersRow>
                {
                    excludedCust1,
                    excludedCust2,
                    includedCust1,
                    includedCust2
                });

                var repo = new ClientCompanyRepository(dataWrapper.Object);

                // Act
                var result = repo.GetByNameSearchString("efg");

                // Assert
                Assert.That(result.Count, Is.EqualTo(2));
                Assert.That(result[0].Name, Is.EqualTo("defg"));
                Assert.That(result[1].Name, Is.EqualTo("dEFg"));
            }
        private Mock <DataSetWrapper> CreateData(IFixture fixture, Mock <ICompanyRepository> companyRepoMock)
        {
            var dataset = new TimeTrackerDataSet();
            var rows    = new List <TimeTrackerDataSet.ProjectsRow>
            {
                CreateProject(dataset, companyRepoMock, 1, "Project X", "Cashcow client", 10, false),
                CreateProject(dataset, companyRepoMock, 2, "Project Z", "Cashcow", 11, true),     // inactive
                CreateProject(dataset, companyRepoMock, 3, "d60.dk X", "d60", 12, false),
                CreateProject(dataset, companyRepoMock, 4, "asdf", "hjkl", 13, false),
            };

            var result = fixture.Create <Mock <DataSetWrapper> >();

            result
            .SetupGet(x => x.Projects)
            .Returns(rows);
            return(result);
        }
예제 #5
0
        public DataTier(TimeTrackerDataSet timeTrackerDataSet)
        {
            ds = timeTrackerDataSet;

            var folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

            XmlDataPath   = Path.Combine(folderPath, "TimeTracking.xml");
            XmlBackupPath = Path.Combine(folderPath, "TimeTracking.xml.bak");

            LoadEntries();

            ds.Projects.ProjectsRowDeleted += new TimeTrackerDataSet.ProjectsRowChangeEventHandler(Projects_ProjectsRowDeleted);
            ds.Projects.ProjectsRowChanged += new TimeTrackerDataSet.ProjectsRowChangeEventHandler(Projects_ProjectsRowChanged);

            ds.TimeEntries.TimeEntriesRowChanged += new TimeTrackerDataSet.TimeEntriesRowChangeEventHandler(TimeEntries_TimeEntriesRowChanged);
            ds.TimeEntries.TimeEntriesRowDeleted += new TimeTrackerDataSet.TimeEntriesRowChangeEventHandler(TimeEntries_TimeEntriesRowDeleted);

            CheckForOpenTimeEntries();
        }
        private TimeTrackerDataSet.ProjectsRow CreateProject(TimeTrackerDataSet dataset
                                                             , Mock <ICompanyRepository> companyRepoMock
                                                             , int projectId
                                                             , string projectName
                                                             , string clientName
                                                             , int clientId
                                                             , bool inactive)
        {
            var newProjectsRow = dataset.Projects.NewProjectsRow();

            newProjectsRow.Id         = projectId;
            newProjectsRow.Name       = projectName;
            newProjectsRow.CustomerId = clientId;
            newProjectsRow.Inactive   = inactive;

            var newClientRow = dataset.Customers.NewCustomersRow();

            newClientRow.Id   = clientId;
            newClientRow.Name = clientName;
            companyRepoMock.Setup(x => x.GetById(clientId)).Returns(Company.Create(clientName, clientId, true, false));

            return(newProjectsRow);
        }