Example #1
0
        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);
            }
        }