コード例 #1
0
ファイル: UserData.cs プロジェクト: YovoManolov/CShapr
        public static void assignRoleByUsername(String Username)
        {
            Console.WriteLine("\nВъведете новата роля за избрания от Вас потребител,използвайки една от следните думи: ");
            Console.WriteLine(" ANONYMOS, ADMIN, INSPECTOR, PROFESSOR, STUDENT");
            Console.Write("Нова роля: ");
            String newRole = Console.ReadLine().Trim().ToUpper();

            UserRoles newRoleToAssign   = (UserRoles)Enum.Parse(typeof(UserRoles), newRole);
            bool      wasTheRoleChanged = false;

            UserContext context = new UserContext();
            User        usr     = FindUserByUserName(Username);

            if (usr != null)
            {
                //RR means RoleRights
                List <RoleRights> currUsRR = RightsGranted.getRightsByRole((UserRoles)UserRoleOfCurrUser);
                //can edit users in handled in main menu
                if ((UserRoles)UserRoleOfCurrUser == UserRoles.STUDENT &&
                    (!currUsRR.Contains(RoleRights.CanEditStudents)))
                {
                    Program.printError("Нямате права да редактирате профили на студенти");
                    Program.callMenu(UserRoleOfCurrUser);
                }
                else
                {
                    if (usr.Role != Convert.ToInt32(newRoleToAssign))
                    {
                        usr.Role = (int)newRoleToAssign;
                        context.SaveChanges();
                        wasTheRoleChanged = true;

                        String result = Convert.ToString("Ролята на " + usr.Username + "беше променена!\n");
                        Logger.logActivity(result);
                        Console.WriteLine(result);

                        Program.callMenu(usr.Role);
                    }
                    else
                    {
                        Program.printError("Ролята, която искате да приложите, е текущата роля на"
                                           + "потрбителя, когото сте избрали.\n Моля, изберете друга роля");
                    }
                }
            }
            else
            {
                Program.printError("Потребител с такова потребителско име не съществува! Моля, опитайте отново");
                Program.callMenu(usr.Role);
            }

            if (wasTheRoleChanged != true)
            {
                Console.WriteLine("Ролята, която избрахте не беше намерена в списъка с възможни роли!\n\n");
                Program.callMenu(UserRoleOfCurrUser);
            }
        }
コード例 #2
0
ファイル: UserData.cs プロジェクト: YovoManolov/CShapr
        public static void chngAtivPerByUsername(String Username)
        {
            User userToChange = FindUserByUserName(Username);
            //RR means RoleRights
            List <RoleRights> currUsRR = RightsGranted.getRightsByRole((UserRoles)UserRoleOfCurrUser);

            if ((UserRoles)userToChange.Role == UserRoles.STUDENT && (!currUsRR.Contains(RoleRights.CanEditStudents)))
            {
                Program.printError("Нямате права да редактирате профили на студенти");
                Program.callMenu(UserRoleOfCurrUser);
            }
            else
            {
                Console.WriteLine("Въведете края на активния период за избрания от Вас потребител : ");
                String year, month, day;
                Console.Write("Въведете година : ");
                year = Console.ReadLine();
                Console.Write("Въведете месец : ");
                month = Console.ReadLine();
                Console.Write("Въведете ден : ");
                day = Console.ReadLine();

                DateTime dt = new DateTime(Convert.ToInt32(year),
                                           Convert.ToInt32(month),
                                           Convert.ToInt32(day));

                userToChange.ActiveTo = dt;
                Logger.logActivity(Convert.ToString("Промяна на активност на " + userToChange.Username));

                String result = "Периодът на активност на " + Username + "беше променен до " + dt.ToString();
                Logger.logActivity(result);
                Console.WriteLine(result);

                Program.callMenu(UserRoleOfCurrUser);
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: YovoManolov/CShapr
        public static void callMenu(int uR)
        {
            List <RoleRights> currUsRR =
                RightsGranted.getRightsByRole((UserRoles)uR - 1);
            //CanEditUsers,CanSeeLogs,CanEditStudents

            String Username;
            Dictionary <string, Int32> allusers = UserData.AllUsersUsernames();
            int myChoiceOfMenuOption            = -1;

            if (currUsRR.Contains(RoleRights.CanEditUsers) &&
                currUsRR.Contains(RoleRights.CanSeeLogs))
            {
                Console.WriteLine("\n\n0: Изход");
                Console.WriteLine("1: Промяна на роля на потребител");
                Console.WriteLine("2: Промяна на активност на потребител");
                Console.WriteLine("3: Списък на потребителите");
                Console.WriteLine("4: Преглед на лог на активност");
                Console.WriteLine("5: Преглед на текуща активност");
                Console.Write("\n\nНаправете своя избор: ");
                myChoiceOfMenuOption = Convert.ToInt32(Console.ReadLine());
                if (myChoiceOfMenuOption > 5)
                {
                    Console.WriteLine("Невалиденa oпция от предоставеното Ви меню! ");
                    Console.WriteLine("Моля направете отново Вашия избор: ");
                    callMenu(uR);
                }
            }
            else if (currUsRR.Contains(RoleRights.CanEditUsers))
            {
                Console.WriteLine("\n\n0: Изход");
                Console.WriteLine("1: Промяна на роля на потребител");
                Console.WriteLine("2: Промяна на активност на потребител");
                Console.WriteLine("3: Списък на потребителите");
                Console.Write("\n\nНаправете своя избор: ");
                myChoiceOfMenuOption = Convert.ToInt32(Console.ReadLine());
                if (myChoiceOfMenuOption > 3)
                {
                    Console.WriteLine("Невалиденa oпция от предоставеното Ви меню! ");
                    Console.WriteLine("Моля направете отново Вашия избор: ");
                    callMenu(uR);
                }
            }
            else
            {
                Console.WriteLine("Нямате права за опциите налични в текущата система !");
                Console.WriteLine("\n0: Изход");

                myChoiceOfMenuOption = Convert.ToInt32(Console.ReadLine());
                if (myChoiceOfMenuOption != 0)
                {
                    Console.WriteLine("Невалиденa oпция от предоставеното Ви меню! ");
                    Console.WriteLine("Моля направете отново Вашия избор: ");
                    callMenu(uR);
                }
            }

            if (myChoiceOfMenuOption < 0)
            {
                Console.WriteLine("Невалиден избор на опция от менюто!");
                Console.WriteLine("Моля опитайте отново!");
                callMenu(uR);
            }
            switch (myChoiceOfMenuOption)
            {
            case 0:
                Environment.Exit(0);
                break;

            case 1:
                Console.Write("\nВъведете потребителското име на потребителя, чиято роля искате да промените: ");
                Username = Console.ReadLine();
                UserData.assignRoleByUsername(Username);
                break;

            case 2:
                Console.Write("\nEnter Username of the user which activity period you want to change: ");
                Username = Console.ReadLine();
                UserData.chngAtivPerByUsername(Username);
                break;

            case 3:
                foreach (KeyValuePair <string, int> item in allusers)
                {
                    Console.WriteLine(item.Key);
                }
                callMenu(uR);
                break;

            case 4:
                Console.WriteLine("Лог на активност:");
                if (File.Exists("test.txt"))
                {
                    Console.WriteLine("\n\n" + File.ReadAllText("test.txt"));
                    Console.ReadLine();
                }
                callMenu(uR);
                break;

            case 5:
                Console.Write("\nМоля въведете дума по която да направите Вашето търсене: ");
                Logger.GetCurrentSessionActivities(Console.ReadLine());
                break;

            default:
                printError("Невалидна опция !");
                Console.ReadLine();
                break;
            }
        }