public async Task <Response> Handle(Request request) { return(new Response() { DashboardTile = DashboardTileApiModel.FromDashboardTile(await _context.DashboardTiles .Include(x => x.Tenant) .SingleAsync(x => x.Id == request.Id && x.Tenant.UniqueId == request.TenantUniqueId)) }); }
public async Task <Response> Handle(Request request) { var dashboardTiles = await _context.DashboardTiles .Include(x => x.Tenant) .Where(x => x.Tenant.UniqueId == request.TenantUniqueId) .ToListAsync(); return(new Response() { DashboardTiles = dashboardTiles.Select(x => DashboardTileApiModel.FromDashboardTile(x)).ToList() }); }
public async Task <Response> Handle(Request request) { var entity = await _context.DashboardTiles .Include(x => x.Tenant) .Include(x => x.Dashboard) .Include(x => x.Tile) .SingleOrDefaultAsync(x => x.Id == request.DashboardTile.Id && x.Tenant.UniqueId == request.TenantUniqueId); if (entity == null) { var tenant = await _context.Tenants.SingleAsync(x => x.UniqueId == request.TenantUniqueId); var dashboard = await _context.Dashboards.Include(x => x.DashboardTiles).SingleAsync(x => x.Id == request.DashboardTile.DashboardId); var tile = await _context.Tiles.SingleAsync(x => x.Id == request.DashboardTile.TileId); if (dashboard.DashboardTiles.SingleOrDefault(x => x.TileId == request.DashboardTile.TileId) != null) { throw new Exception("Tile Exists. Can not add duplicate"); } _context.DashboardTiles.Add(entity = new DashboardTile() { TenantId = tenant.Id, Dashboard = dashboard, Tile = tile }); } entity.Name = request.DashboardTile.Name; entity.DashboardId = request.DashboardTile.DashboardId; entity.TileId = request.DashboardTile.TileId; entity.Top = request.DashboardTile.Top; entity.Left = request.DashboardTile.Left; entity.Width = request.DashboardTile.Width; entity.Height = request.DashboardTile.Height; await _context.SaveChangesAsync(); _bus.Publish(new AddedOrUpdatedDashboardTileMessage(DashboardTileApiModel.FromDashboardTile(entity), request.CorrelationId, request.TenantUniqueId)); return(new Response()); }