예제 #1
0
        public IHttpActionResult Create(FacultyViewModel faculty)
        {
            if (!User.IsInRole(RoleNames.Admin))
            {
                return(BadRequest("error"));
            }
            if (Framework.FacultyManager.FacultyIsAlreadyExist(faculty.Name))
            {
                return(BadRequest("faculty"));
            }

            var newFacultyViewModel = new FacultyViewModel();

            newFacultyViewModel.Name = faculty.Name;
            Faculty newFaculty = AutoMapper.Mapper.Map <Faculty>(newFacultyViewModel);

            if (faculty.Users[0].Email == faculty.Users[1].Email)
            {
                return(BadRequest());
            }

            foreach (UserViewModel item in faculty.Users)
            {
                if (Framework.userManager.GetByEmail(item.Email) != null)
                {
                    return(BadRequest());
                }
            }

            Framework.FacultyManager.Create(newFaculty);

            foreach (UserViewModel uv in faculty.Users)
            {
                UserViewModel userViewModel = new UserViewModel();

                userViewModel.Email = uv.Email;

                userViewModel.FacultyId = newFaculty.Id;

                userViewModel.PasswordSalt = HashDecoder.GenarateSalt();

                userViewModel.Password = HashDecoder.ComputeHash(uv.Password, userViewModel.PasswordSalt);

                userViewModel.Roles_id = uv.Roles_id;

                userViewModel.Roles = Framework.RoleManager.GetById(uv.Roles_id);

                User user = AutoMapper.Mapper.Map <User>(userViewModel);

                Framework.userManager.Create(user);
            }

            return(Ok(newFaculty));
        }
예제 #2
0
        public IHttpActionResult Update(FacultyViewModel faculty)
        {
            if (!User.IsInRole(RoleNames.Admin))
            {
                return(BadRequest("error"));
            }

            if (faculty.Users[0].Email == faculty.Users[1].Email)
            {
                return(BadRequest());
            }
            Faculty updatedFaculty = Framework.FacultyManager.GetById(faculty.Id);

            if (Framework.FacultyManager.FacultyIsAlreadyExist(faculty.Name) && updatedFaculty.Name != faculty.Name)
            {
                return(BadRequest("faculty"));
            }

            updatedFaculty.Name = faculty.Name;

            foreach (UserViewModel item in faculty.Users)
            {
                User temporaryUpdatedUser = Framework.userManager.GetById(item.Id);

                if (Framework.userManager.GetByEmail(item.Email) != null && temporaryUpdatedUser.Email != item.Email)
                {
                    return(BadRequest());
                }
            }

            Framework.FacultyManager.Update(updatedFaculty);

            foreach (UserViewModel uv in faculty.Users)
            {
                User updatedUser = Framework.userManager.GetById(uv.Id);

                updatedUser.Email = uv.Email;

                if (updatedUser.Password != uv.Password)
                {
                    updatedUser.PasswordSalt = HashDecoder.GenarateSalt();
                    updatedUser.Password     = HashDecoder.ComputeHash(uv.Password, updatedUser.PasswordSalt);
                }
                Framework.userManager.Update(updatedUser);
            }
            updatedFaculty = Framework.FacultyManager.GetById(faculty.Id);//something weired
            var model = Mapper.Map <FacultyViewModel>(updatedFaculty);

            return(Ok(model));
        }
예제 #3
0
        static void DoCommands()
        {
            while (true)
            {
                Console.Write(">");
                string command = Console.ReadLine();
                if (command.Length > 0)
                {
                    string[] commands = CommandRegex.Split(command);

                    if (commands.Length > 0)
                    {
                        switch (commands[0])
                        {
                        case "i":
                            Greatings();
                            Console.WriteLine("Comands list:");
                            Console.WriteLine("____SHARED____");
                            Console.WriteLine("i - info;");
                            Console.WriteLine("ss - show/set settings; full format {c -ip hostIp -p hostPort -l lettersMax -c maxCalcClients}");
                            Console.WriteLine("____CLIENT____");
                            Console.WriteLine("c - connect as client; full format {c -ip hostIp -p hostPort}");
                            Console.WriteLine("d - disconect as client");
                            Console.WriteLine("____SERVER____");
                            Console.WriteLine("s - start server; full format  {s -p port}");
                            Console.WriteLine("sd - start decodind");
                            break;

                        case "d":
                            Console.WriteLine("Disconect");
                            ServClient.Disconnect();
                            ServClient.Disconnect();
                            break;

                        case "ss":
                            Settings.parseSettings(commands);
                            Console.WriteLine(Settings.ToString());
                            break;

                        case "s":
                            Settings.parseSettings(commands);
                            Server.StartServer(Settings);
                            break;

                        // TODO добавить проверку на запущенность сервера
                        case "sd":
                            if (commands.Length > 1)
                            {
                                string[] result = Server.DoCalculations(HashDecoder.CreateMD5(commands[1]));
                                foreach (string res in result)
                                {
                                    Console.WriteLine(res);
                                }
                            }
                            else
                            {
                                Console.WriteLine("not enought arguments");
                            }
                            break;

                        case "c":
                            Settings.parseSettings(commands);
                            Thread Client = new Thread(new ThreadStart(ServClient.Connect));
                            Client.Start();
                            break;

                        default:
                            Console.WriteLine("unknown command (i for list of commands)");
                            break;
                        }
                    }
                }
            }
        }
예제 #4
0
 public bool IsPasswordValid(User user, string password)
 {
     return((bool)HashDecoder.VerifyHash(password, user.Password, user.PasswordSalt));
 }