Skip to content

Instantly share code, notes, and snippets.

@mr5z
Last active January 21, 2021 08:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mr5z/a4ff5a4faa5fef5fb5437c155246b832 to your computer and use it in GitHub Desktop.
Save mr5z/a4ff5a4faa5fef5fb5437c155246b832 to your computer and use it in GitHub Desktop.
from cave in context.Cave
join user in context.User on cave.AuthorId equals user.Id
join map in context.Map on cave.Id equals map.CaveId
let score =
(
from score in context.Score
where score.CaveId == cave.Id && score.UserId == user.Id
select score.MaxScore
).Sum()
let paths =
(
from path in context.Path
where path.MapId == map.Id
select new PathDto
{
Color = path.Color,
Points =
(
from point in context.Point
where point.PathId == path.Id
select new PointDto
{
X = point.X,
Y = point.Y,
Dx = point.Dx,
Dy = point.Dy
}
).ToList()
}
)
select new CaveDto
{
Id = cave.Id,
Name = cave.Name,
DateCreated = cave.DateCreated,
DeviceOrigin = cave.DeviceOrigin,
Duration = cave.Duration,
EndPointRadius = cave.EndPointRadius,
ShowJumpScare = cave.ShowJumpScare,
Score = score,
Author = new UserDto
{
DisplayName = user.DisplayName,
Type = user.Type
},
Map = new MapDto
{
Color = map.Color,
OriginalWidth = map.OriginalWidth,
OriginalHeight = map.OriginalHeight
},
Paths = paths.ToList()
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment