public async Task Update(eFormDashboardPnDbContext dbContext) { DashboardItem dashboardItem = await dbContext.DashboardItems.FirstOrDefaultAsync(x => x.Id == Id).ConfigureAwait(false); if (dashboardItem == null) { throw new NullReferenceException($"Could not find item with id: {Id}"); } dashboardItem.WorkflowState = WorkflowState; dashboardItem.UpdatedAt = UpdatedAt; dashboardItem.UpdatedByUserId = UpdatedByUserId; dashboardItem.Position = Position; dashboardItem.ChartType = ChartType; dashboardItem.Period = Period; dashboardItem.FieldId = FieldId; dashboardItem.FilterFieldId = FilterFieldId; dashboardItem.FilterFieldOptionId = FilterFieldOptionId; dashboardItem.CalculateAverage = CalculateAverage; dashboardItem.CompareEnabled = CompareEnabled; if (dbContext.ChangeTracker.HasChanges()) { dashboardItem.UpdatedAt = DateTime.UtcNow; dashboardItem.Version += 1; await dbContext.DashboardItemVersions.AddAsync(MapVersion(dashboardItem)).ConfigureAwait(false); await dbContext.SaveChangesAsync().ConfigureAwait(false); } }
public async Task Delete(eFormDashboardPnDbContext dbContext) { DashboardItem dashboardItem = await dbContext.DashboardItems.FirstOrDefaultAsync(x => x.Id == Id).ConfigureAwait(false); if (dashboardItem == null) { throw new NullReferenceException($"Could not find item with id: {Id}"); } dashboardItem.WorkflowState = Constants.WorkflowStates.Removed; if (dbContext.ChangeTracker.HasChanges()) { dashboardItem.UpdatedAt = DateTime.UtcNow; dashboardItem.Version += 1; await dbContext.DashboardItemVersions.AddAsync(MapVersion(dashboardItem)).ConfigureAwait(false); await dbContext.SaveChangesAsync().ConfigureAwait(false); } }
private static DashboardItemVersion MapVersion(DashboardItem dashboardItem) { var dashboardItemVersion = new DashboardItemVersion { DashboardItemId = dashboardItem.Id, CreatedAt = dashboardItem.CreatedAt, UpdatedAt = dashboardItem.UpdatedAt, Version = dashboardItem.Version, WorkflowState = dashboardItem.WorkflowState, UpdatedByUserId = dashboardItem.UpdatedByUserId, CreatedByUserId = dashboardItem.CreatedByUserId, Position = dashboardItem.Position, ChartType = dashboardItem.ChartType, FieldId = dashboardItem.FieldId, FilterFieldId = dashboardItem.FilterFieldId, FilterFieldOptionId = dashboardItem.FilterFieldOptionId, Period = dashboardItem.Period, CompareEnabled = dashboardItem.CompareEnabled, CalculateAverage = dashboardItem.CalculateAverage, }; return(dashboardItemVersion); }