public async Task SaveRepositoryUpdateHistory(IRepositoryUpdateHistory entity)
        {
            if (entity is RepositoryUpdateHistoryEntity ruh)
            {
                if (ruh.CreatedAt == null)
                {
                    ruh.CreatedAt = DateTimeOffset.UtcNow;
                }
                ruh.PartitionKey = RepositoryUpdateHistoryEntity.GeneratePartitionKey();
                ruh.RowKey       = entity.RepositoryId;
            }
            else
            {
                var pk = RepositoryUpdateHistoryEntity.GeneratePartitionKey();
                var rk = RepositoryUpdateHistoryEntity.GenerateRowKey(entity.RepositoryId);
                ruh = await _tableStorage.GetDataAsync(pk, rk)
                      ?? new RepositoryUpdateHistoryEntity
                {
                    PartitionKey = pk, RowKey = rk
                };

                ruh.RepositoryId  = entity.RepositoryId;
                ruh.InitialCommit = entity.InitialCommit;
                ruh.User          = entity.User;
                ruh.Branch        = entity.Branch;
                ruh.IsManual      = entity.IsManual;
                ruh.CreatedAt     = DateTime.UtcNow;
            }

            await _tableStorage.InsertOrMergeAsync(ruh);
        }
Example #2
0
        public async Task SaveRepositoryUpdateHistory(IRepositoryUpdateHistory entity)
        {
            if (!(entity is RepositoryUpdateHistory ruh))
            {
                ruh = (RepositoryUpdateHistory) await GetAsync(entity.RowKey) ?? new RepositoryUpdateHistory();

                ruh.ETag          = entity.ETag;
                ruh.InitialCommit = entity.InitialCommit;
                ruh.User          = entity.User;
                ruh.Branch        = entity.Branch;
                ruh.IsManual      = entity.IsManual;
                ruh.CreatedAt     = DateTime.UtcNow;
            }

            if (ruh.CreatedAt == null)
            {
                ruh.CreatedAt = ruh.Timestamp;
            }
            ruh.PartitionKey = RepositoryUpdateHistory.GeneratePartitionKey();
            ruh.RowKey       = entity.RowKey;
            await _tableStorage.InsertOrMergeAsync(ruh);
        }