private ICollection <IOrderedEnumerable <XmlReportData> > GetAllReportData() { using (CinemaCityEntities entities = new CinemaCityEntities()) { var elements = entities.Cinemas.Join(entities.ProjectionRooms, (cinema => cinema.ID), (projectionRoom => projectionRoom.CinemaId), (cinema, projectionRoom) => new { cinema, projectionRoom }) .Join(entities.Projections, (type => type.projectionRoom.ID), (projection => projection.ProjectionRoomID), (type, projection) => new XmlReportData { CinemaName = type.cinema.Name, SeatsTaken = type.projectionRoom.Seats, ProjectionPrice = projection.Price * type.projectionRoom.Seats, ProjectionDate = projection.Start }) .GroupBy(x => x.CinemaName) .Select(x => x.OrderByDescending(group => group.ProjectionDate)) .ToList(); return(elements); } }
public static void Export() { var db = new CinemaCityEntities(); var projections = db.ProjectionMovies .Select(pm => new { id = pm.Id, name = pm.Movy.Title, start = pm.Projection.Start, cinema = pm.Projection.ProjectionRoom.Cinema.Name, price = pm.Projection.Price, rating = pm.Movy.Rating, genre = pm.Movy.Type, minutes = pm.Movy.Minutes }); foreach (var proj in projections) { var jsonObject = JsonConvert.SerializeObject(proj, Newtonsoft.Json.Formatting.Indented); var address = "../../../ExportedJson/" + proj.id + ".json"; File.WriteAllText(address, jsonObject); } }