public ImportWmsTransactionOperation(RepositoryArgumentsBase HarvesterDatabase, RepositoryArgumentsBase DestinationDatabase, RepositoryArgumentsBase SourceDirectory)
        {
            Contract.Requires(DestinationDatabase != null);
            Contract.Requires(SourceDirectory != null);
            Contract.Requires(HarvesterDatabase != null);

            _databaseArgs  = DestinationDatabase;
            _harvesterArgs = HarvesterDatabase;
            _directoryArgs = SourceDirectory;
        }
        //public ICounterRepository CreateCounterRepository(RepositoryArgumentsBase arguments)
        //{
        //    if (arguments.GetType() == typeof(SushiCounterRepositoryArguments))
        //    {

        //    }
            
        //}

        public IDatabaseRepository<IStatisticsDataContext> CreateDatabaseRepository(RepositoryArgumentsBase arguments)
        {
            if (arguments.GetType() == typeof(SqlServerDatabaseRepositoryArguments))
            {
                var factory = SimpleInjector.Container.GetInstance<IFactory<IStatisticsDataContext, String>>();
                return new SqlServerDatabaseRepository<IStatisticsDataContext>(arguments as SqlServerDatabaseRepositoryArguments, factory);
            }

            throw new NotImplementedException();
        }
Beispiel #3
0
        public ImportWmsInventoryOperation(RepositoryArgumentsBase HarvesterDatabase, RepositoryArgumentsBase DestinationDatabase, RepositoryArgumentsBase SourceDirectory)
        {
            Contract.Assert(DestinationDatabase != null, "Destination Database was null");
            Contract.Assert(HarvesterDatabase != null, "Havester Database was null");
            Contract.Assert(SourceDirectory != null, "Source Directory was null");

            _databaseArgs  = DestinationDatabase;
            _harvesterArgs = HarvesterDatabase;
            _directoryArgs = SourceDirectory;
        }
        public ImportCounterTransactionsOperation(RepositoryArgumentsBase destinationDatabase, RepositoryArgumentsBase harvesterDatabase, RepositoryArgumentsBase sourceCounter, RepositoryArgumentsBase localJsonArgs)
        {
            Contract.Requires(sourceCounter != null);
            Contract.Requires(destinationDatabase != null);

            statisticsArguments  = destinationDatabase;
            harvesterArguments   = harvesterDatabase;
            counterRepoArguments = sourceCounter;
            localJsonArguments   = localJsonArgs;
        }
        public SyncOperation(SyncOperationArguments arguments, RepositoryArgumentsBase destinationDirectory, RepositoryArgumentsBase sourceDirectory)
        {
            Contract.Requires(arguments != null);
            Contract.Requires(sourceDirectory != null);
            Contract.Requires(destinationDirectory != null);

            this.arguments            = arguments;
            this.sourceDirectory      = sourceDirectory;
            this.destinationDirectory = destinationDirectory;
        }
Beispiel #6
0
        public ImportEZProxyLogOperation(ImportEZProxyLogOperationArguments arguments, RepositoryArgumentsBase HarvesterDatabase, RepositoryArgumentsBase DestinationDatabase, RepositoryArgumentsBase SourceDirectory)
        {
            Contract.Requires(arguments != null);
            Contract.Requires(SourceDirectory != null);
            Contract.Requires(HarvesterDatabase != null);
            Contract.Requires(DestinationDatabase != null);

            _directoryArgs  = SourceDirectory;
            _harvesterArgs  = HarvesterDatabase;
            _statisticsArgs = DestinationDatabase;
        }
Beispiel #7
0
        protected void UpdateHarvesterRecord(Action <string> logMessage, IEnumerable <DirectoryObjectMetadata> sourceFiles, string sourceName, RepositoryArgumentsBase harvesterArgs)
        {
            using (IDatabaseRepository <IHarvesterDataContext> harvester = RepositoryFactory.CreateHarvesterRepository(harvesterArgs))
            {
                logMessage($"Connected to database '{harvester.Name}' ({harvester.ConnectionString})");

                int insertedRecords = 0;

                Entities.Repository repository = harvester.DataContext.Repositories.First(y => y.Name == sourceName);

                if (OperationID == 0)
                {
                    logMessage("Warning: OperationID was not set properly. Correcting this.");
                    OperationID = harvester.DataContext.Operations.First(d => d.Name == Name).ID;
                }

                Dictionary <String, DirectoryRecord> dictionary = harvester.DataContext.DirectoryRecords.Where(d => d.OperationID == OperationID && d.RepositoryID == repository.ID).ToDictionary(d => d.FilePath);

                foreach (DirectoryObjectMetadata file in sourceFiles)
                {
                    if (!dictionary.ContainsKey(file.Path))
                    {
                        harvester.DataContext.DirectoryRecords.InsertOnSubmit(new DirectoryRecord
                        {
                            OperationID      = OperationID,
                            RepositoryID     = repository.ID,
                            FilePath         = file.Path,
                            FileModifiedDate = file.ModifiedDate,
                            CreationDate     = DateTime.Now,
                            ModifiedDate     = DateTime.Now
                        });
                        insertedRecords++;
                    }
                    else
                    {
                        DirectoryRecord element = dictionary[file.Path];

                        if (file.ModifiedDate > element.FileModifiedDate)
                        {
                            element.FileModifiedDate = file.ModifiedDate;
                            element.ModifiedDate     = DateTime.Now;
                        }
                    }
                }

                harvester.DataContext.SubmitChanges();
                logMessage("Inserted " + insertedRecords + " successful files into DirectoryRecords");
            }
        }