示例#1
0
        /// <inheritdoc/>
        public async Task UpdateAsync(
            IWho who,
            IAuditHeaderWithAuditDetails auditHeader,
            IHost host)
        {
            this.logger.LogTrace(
                "ENTRY {Method}(who, host) {@Who} {@Host}",
                nameof(this.UpdateAsync),
                who,
                host);

            HostDto dto      = HostDto.ToDto(host);
            HostDto original = await this.context.FindAsync <HostDto>(host.Id)
                               .ConfigureAwait(false);

            Audit.AuditUpdate(auditHeader, dto.Id, original, dto);

            this.context.Entry(original).CurrentValues.SetValues(dto);
            await this.context.SaveChangesAsync().ConfigureAwait(false);

            this.logger.LogTrace(
                "EXIT {Method}(who) {@Who}",
                nameof(this.UpdateAsync),
                who);
        }
示例#2
0
        /// <inheritdoc/>
        public async Task CreateAsync(
            IWho who,
            IAuditHeaderWithAuditDetails auditHeader,
            IHost host)
        {
            this.logger.LogTrace(
                "ENTRY {Method}(who, organisation) {@Who} {@Host}",
                nameof(this.CreateAsync),
                who,
                host);

            HostDto dto = HostDto.ToDto(host);

            this.context.Hosts.Add(dto);
            await this.context.SaveChangesAsync().ConfigureAwait(false);

            Audit.AuditCreate(auditHeader, dto, dto.Id);

            this.logger.LogTrace(
                "EXIT {Method}(who) {@Who}",
                nameof(this.CreateAsync),
                who);
        }