Пример #1
0
 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()
                });
            }
Пример #3
0
            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());
            }