public void Sync(PipeDriveDbContext context)
 {
     foreach (var user in Entities)
     {
         context.Entry(user).State = EntityState.Added;
     }
 }
 public void Sync(PipeDriveDbContext context)
 {
     _logger?.Info("Synchronizing organizations relationships...");
     foreach (var activity in Entities)
     {
         context.Entry(activity).State = EntityState.Added;
     }
 }
Exemple #3
0
 public void Sync(PipeDriveDbContext context)
 {
     _logger?.Info("Synchronizing organizations...");
     foreach (var organization in Entities)
     {
         context.Entry((object)organization).State = EntityState.Added;
         organization.Owner = _userService.Entities.Single(user => user.Id == organization.DbOwnerId);
     }
 }
Exemple #4
0
 public void Sync(PipeDriveDbContext context)
 {
     _logger?.Info("Synchronizing deals...");
     foreach (var person in Entities)
     {
         context.Entry((object)person).State = EntityState.Added;
         person.CreatorUser = _userService.Entities.Single(user => user.Id == person.DbCreatorUserId);
         person.User        = _userService.Entities.Single(user => user.Id == person.DbUserId);
     }
 }
Exemple #5
0
 public void Sync(PipeDriveDbContext context)
 {
     _logger?.Info("Synchronizing notes...");
     foreach (var activity in Entities)
     {
         context.Entry(activity).State = EntityState.Added;
         if (activity.LastUpdateUserId.HasValue)
         {
             activity.LastUpdateUser =
                 _userService.Entities.Single(user => user.Id == activity.LastUpdateUserId.Value);
         }
     }
 }
 public virtual void Sync(PipeDriveDbContext context)
 {
     foreach (var activity in Entities)
     {
         context.Entry(activity).State = EntityState.Added;
         foreach (var field in Entities)
         {
             if (field.Id == null)
             {
                 field.Id = Entities.Max(f => f.Id) + 1;
             }
         }
     }
 }
Exemple #7
0
        public async Task SynchronizeAsync()
        {
            _logger?.Info("Cleaning the database...");
            await CleanDatabase();

            _logger?.Info("Database is cleaned.");

            _logger?.Info("Creating synchronization services...");
            var client       = new PipeDriveClient(_pipedriveApiKey);
            var syncServices = CreateSyncServices();

            _logger?.Info("Synchronization services are created.");

            _logger?.Info("Loading dynamic data types...");
            var dynamicConfigurations = new List <DynamicEntityConfiguration>();

            foreach (var syncService in syncServices.OfType <IDynamicSyncService>())
            {
                dynamicConfigurations.Add(await syncService.ConstructType(client));
            }
            _logger?.Info("Dynamic data types are loaded.");

            _logger?.Info("Loading data from API...");
            foreach (var syncService in syncServices)
            {
                await syncService.Fetch(client);
            }
            _logger?.Info("API data is loaded.");

            _logger?.Info("Synchronizing data with the database...");
            using (var context = new PipeDriveDbContext(_sqlConnectionString, dynamicConfigurations))
            {
                context.Configuration.AutoDetectChangesEnabled = false;
                foreach (var syncService in syncServices)
                {
                    syncService.Sync(context);
                }
                context.Configuration.AutoDetectChangesEnabled = true;

                _logger?.Info("Saving to the database...");
                await context.SaveChangesAsync();
            }
            _logger?.Info("Data is synchronized.");
            _logger?.Info("Success.");
        }
 public override void Sync(PipeDriveDbContext context)
 {
     _logger?.Info("Synchronizing person fields...");
     base.Sync(context);
 }