Пример #1
0
        static void Main(string[] args)
        {
            Ticket tick1 = new Ticket(1, "09-04-2020", 1, "A", 15);
            Ticket tick2 = new Ticket(1, "09-04-2020", 1, "A", 16);
            Ticket tick3 = new Ticket(1, "09-04-2020", 1, "A", 17);

            JsonSerializerOptions options = new JsonSerializerOptions
            {
                WriteIndented            = true,
                IgnoreNullValues         = true,
                IgnoreReadOnlyProperties = true
            };


            //STORE JSON OBJECT
            var jsonString = JsonSerializer.Serialize(new Ticket[] { tick1, tick2, tick3 }, options);

            Console.WriteLine(jsonString);
            File.WriteAllText("data.json", jsonString);


            //READ AND UPDATE JSON OBJECT
            string        jsonText = File.ReadAllText("data.json");
            List <Ticket> tickets  = new List <Ticket>();

            using (JsonDocument document = JsonDocument.Parse(jsonString))
            {
                JsonElement root = document.RootElement;
                JsonElement ticketsArrayElement = root;

                foreach (JsonElement ticket in ticketsArrayElement.EnumerateArray())
                {
                    //Make .NET object is values are present in JSON
                    if (ticket.TryGetProperty("Price", out JsonElement PriceElement) &&
                        ticket.TryGetProperty("Date", out JsonElement DateElement) &&
                        ticket.TryGetProperty("TheaterNumber", out JsonElement TheaterElement) &&
                        ticket.TryGetProperty("SeatNumber", out JsonElement SeatElement) &&
                        SeatElement.TryGetProperty("Row", out var RowElement) && SeatElement.TryGetProperty("Seat", out var SeatNumElement)
                        )
                    {
                        int    price         = PriceElement.GetInt32();
                        string date          = DateElement.GetString();
                        int    theaterNumber = TheaterElement.GetInt32();
                        string row           = RowElement.GetString();
                        int    seat          = SeatNumElement.GetInt32();

                        tickets.Add(new Ticket(price, date, theaterNumber, row, seat));
                    }
                }
            }

            tickets[0].Date = "DATE HAS BEEN MODIFIED";

            jsonText = JsonSerializer.Serialize(tickets, options);
            File.WriteAllText("data.json", jsonText);
        }
Пример #2
0
        private void seatLayout_seat()
        {
            if (SeatCache.SeatList == null)
            {
                SeatCache.SeatList = new List <SeatElement>();
            }
            List <SeatElement> list = SeatCache.SeatList.Where(p => p.ReadingRoomNum == RoomNoStr).ToList();

            if (list.Count > 0)
            {
                foreach (var seatElement in list)
                {
                    this.canvas_Seat.Children.Add(seatElement.seatUC);
                    Canvas.SetLeft(seatElement.seatUC, (float)seatElement.seatLeft);
                    Canvas.SetTop(seatElement.seatUC, (float)seatElement.seatTop);
                    this.canvas_Thumbnail.Children.Add(seatElement.rec);
                    Panel.SetZIndex(seatElement.rec, 0);
                    Canvas.SetLeft(seatElement.rec, (float)seatElement.recLeft);
                    Canvas.SetTop(seatElement.rec, (float)seatElement.recTop);
                }
            }
            else
            {
                foreach (KeyValuePair <string, Seat> keyValuePair in this.viewModel.Layout.Seats)
                {
                    float   num     = (float)(24.0 * keyValuePair.Value.PositionX);
                    float   num2    = (float)(24.0 * keyValuePair.Value.PositionY);
                    UC_Seat uc_Seat = new UC_Seat(this.viewModel.SeatLayoutList[keyValuePair.Key]);
                    uc_Seat.Width  = 48.0;
                    uc_Seat.Height = 48.0;
                    uc_Seat.LblSeatNo.RenderTransform       = new RotateTransform(keyValuePair.Value.RotationAngle);
                    uc_Seat.LblSeatNo.RenderTransformOrigin = new Point(0.5, 0.5);
                    uc_Seat.RenderTransform       = new RotateTransform((double)keyValuePair.Value.RotationAngle);
                    uc_Seat.RenderTransformOrigin = new Point(0.5, 0.5);
                    this.canvas_Seat.Children.Add(uc_Seat);
                    Canvas.SetLeft(uc_Seat, (float)num);
                    Canvas.SetTop(uc_Seat, (float)num2);
                    Rectangle rectangle = new Rectangle();
                    rectangle.Width  = (float)(36f / this.scaleX);
                    rectangle.Height = (float)(36f / this.scaleY);
                    float num3  = (float)((keyValuePair.Value.PositionX * 24.0 + 6.0) / (float)this.scaleX);
                    float num4  = (float)((keyValuePair.Value.PositionY * 24.0 + 6.0) / (float)this.scaleY);
                    bool  flag3 = this.viewModel.SeatLayoutList[keyValuePair.Key].IsStop || this.viewModel.SeatLayoutList[keyValuePair.Key].IsUsing;
                    if (flag3)
                    {
                        rectangle.Fill = new SolidColorBrush(Color.FromRgb(234, 38, 52));
                    }
                    else
                    {
                        rectangle.Fill = new SolidColorBrush(Color.FromRgb(220, 220, 220));
                    }
                    rectangle.RenderTransformOrigin = new Point(0.5, 0.5);
                    rectangle.RenderTransform       = new RotateTransform((double)keyValuePair.Value.RotationAngle);
                    this.canvas_Thumbnail.Children.Add(rectangle);
                    Panel.SetZIndex(rectangle, 0);
                    Canvas.SetLeft(rectangle, (double)(num3 + this.moveX));
                    Canvas.SetTop(rectangle, (double)(num4 + this.moveY));
                    SeatElement seatElement2 = new SeatElement();
                    seatElement2.ReadingRoomNum = this.RoomNoStr;
                    seatElement2.seatUC         = uc_Seat;
                    seatElement2.seatLeft       = num;
                    seatElement2.seatTop        = num2;
                    seatElement2.rec            = rectangle;
                    seatElement2.recLeft        = num3 + this.moveX;
                    seatElement2.recTop         = num4 + this.moveY;
                    SeatCache.SeatList.Add(seatElement2);
                }
            }
        }