Exemple #1
0
 public EntityBaseAuditDto(EntityBaseAudit entityBaseAudit)
 {
     PartitionKey = entityBaseAudit.Entity.Id.ToString();
     RowKey       = Guid.NewGuid().ToString();
     ETag         = "*";
     BlobUrl      = entityBaseAudit.BlobUrl;
     EntityType   = entityBaseAudit.EntityType.AssemblyQualifiedName;
 }
Exemple #2
0
        public async void SaveEntityBaseAudit(EntityBase entityBase)
        {
            var entityBaseAudit = new EntityBaseAudit(entityBase);

            var blobSafeResult = await GetPersistenceManager(PersistenceTechnologies.AZURE_BLOBS).GetEntityBaseAuditDao().Save(entityBaseAudit);

            if (blobSafeResult)
            {
                _ = GetPersistenceManager(PersistenceTechnologies.AZURE_TABLE_STORAGE).GetEntityBaseAuditDao().Save(entityBaseAudit);
            }
        }
Exemple #3
0
        public async Task SoftDeleteAsync(IUnitOfWork unitOfWork, TEntity entity)
        {
            var context = unitOfWork.GetCurrentDbContext <DbContext>();

            EntityBaseAudit <PKey> entityBase = entity as EntityBaseAudit <PKey>;

            entityBase.State = StateType.Deleted;

            context.Entry(entity).State = EntityState.Modified;

            await context.SaveChangesAsync();
        }
Exemple #4
0
        public async Task BulkSoftDeleteAsync(IUnitOfWork unitOfWork, IEnumerable <TEntity> entities)
        {
            var context = unitOfWork.GetCurrentDbContext <DbContext>();

            Parallel.ForEach(entities, entity =>
            {
                EntityBaseAudit <PKey> entityBase = entity as EntityBaseAudit <PKey>;
                entityBase.State = StateType.Deleted;
            });

            context.UpdateRange(entities);

            await context.SaveChangesAsync();
        }
Exemple #5
0
        public async Task <bool> Save(EntityBaseAudit entityBaseAudit)
        {
            var accountConnectionString = "DefaultEndpointsProtocol=https;AccountName=between;AccountKey=kS8y6N3ILffm7wfe6n+ZpzkauFNKe4EHsaLz1Zs8c3cp/8tnFQM2OT9WL8xaHgLPenWMrCsKKKtUb8FNdRhwuA==;EndpointSuffix=core.windows.net";
            var tablename = "entitybasechangeaudits";


            var        tableClient = GetCloudTableClient(accountConnectionString);
            CloudTable table       = tableClient.GetTableReference(tablename);

            EntityBaseAuditDto entityBaseAuditdto = new EntityBaseAuditDto(entityBaseAudit);

            var insertData = TableOperation.Insert(entityBaseAuditdto);

            var result = await table.ExecuteAsync(insertData);

            return(true);
        }
Exemple #6
0
        public async Task <bool> Save(EntityBaseAudit entityBaseAudit)
        {
            var accountConnectionString = "DefaultEndpointsProtocol=https;AccountName=between;AccountKey=kS8y6N3ILffm7wfe6n+ZpzkauFNKe4EHsaLz1Zs8c3cp/8tnFQM2OT9WL8xaHgLPenWMrCsKKKtUb8FNdRhwuA==;EndpointSuffix=core.windows.net";
            var containerName           = "entitybasechangeaudits";
            var blobName = entityBaseAudit?.Entity?.Id + "-" + Guid.NewGuid() + ".json";

            var blobClient = GetCloudBlobClient(accountConnectionString);
            CloudBlobContainer container = blobClient.GetContainerReference(containerName);
            CloudBlockBlob     blob      = container.GetBlockBlobReference(blobName);

            string json = Newtonsoft.Json.JsonConvert.SerializeObject(entityBaseAudit);

            await blob.UploadTextAsync(json);

            entityBaseAudit.BlobUrl = blob.Uri.AbsoluteUri;

            return(true);
        }