public void MakeReservation(int performanceId, DateTime date, int ticketQuantity, out int reservationId)
        {
            CustomPrincipal principal = Thread.CurrentPrincipal as CustomPrincipal;

            reservationId = -1;

            if (principal.IsInRole("Korisnik") || principal.IsInRole("SuperKorisnik"))
            {
                Console.WriteLine("\nMaking reservation...");
                Reservation reservation = null;

                string clientUsername = GetClientUserName();

                for (int i = 0; i < Database.users.Count(); ++i)
                {
                    if (Database.users[i].Username.Equals(clientUsername))
                    {
                        if (Database.reservations.Count() > 0)
                        {
                            reservation   = new Reservation(Database.reservations.Count(), performanceId, date, ticketQuantity);
                            reservationId = Database.reservations.Count();
                        }
                        else
                        {
                            reservation   = new Reservation(0, performanceId, date, ticketQuantity);
                            reservationId = 0;
                        }
                        Database.users[i].Reservations.Add(reservation);

                        try
                        {
                            Audit.AddToBaseSuccess(clientUsername, "reservation.");
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                        }
                    }
                }
                Database.reservations.Add(reservation);
                Database.WriteReservations();
                Database.WriteUsers();
            }
            else
            {
                try
                {
                    Audit.AuthorizationFailed(GetClientUserName(), "Make Reservation",
                                              $"Make Reservation can be used only by user in the Korisnik or SuperKorisnik group.");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                ErrorMessage("Korisnik or SuperKorisnik", "Make Reservation");
            }
        }
        public void AddPerformance(string name, DateTime date, int room, double price, out int idPerformance)
        {
            CustomPrincipal principal = Thread.CurrentPrincipal as CustomPrincipal;

            idPerformance = -1;

            if (principal.IsInRole("Admin"))
            {
                string userName = GetClientUserName();

                Console.WriteLine("\nAdding performance...");
                Performance performance = null;
                if (Database.performances.Count() > 0)
                {
                    performance   = new Performance(Database.performances.Count(), name, date, room, price);
                    idPerformance = Database.performances.Count();
                }
                else
                {
                    performance   = new Performance(0, name, date, room, price);
                    idPerformance = 0;
                }
                Database.performances.Add(performance);

                try
                {
                    Audit.AddToBaseSuccess(userName, "performance.");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                Database.WritePerformances();
            }
            else
            {
                try
                {
                    Audit.AuthorizationFailed(GetClientUserName(), "Add Performance",
                                              $"Add Performance can be used only by user in the Admin group.");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                ErrorMessage("Admin", "Add Performance");
            }
        }