Ejemplo n.º 1
0
        public async Task<IActionResult> Create(UserInput input)
        {
            var user = new User {UserName = input.Username, Email =  input.Email};
            
            var result =  await _userManager.CreateAsync(user, input.Password);
            
            if (result.Succeeded)
            {
                await _userManager.AddToRoleAsync(_userManager.FindByEmailAsync(input.Email).Result, "User");
                
                //Adds UserDetails for newly added user
                var repo = new UserDetailsRepository();
                var userDetails = new UserDetails();
                userDetails.UserId = _userManager.FindByEmailAsync(input.Email).Result.Id;
                repo.Add(userDetails);
                var detailsId = repo.GetAll()
                    .First(x => x.UserId == _userManager.FindByEmailAsync(input.Email).Result.Id).Id;

                user.DetailsId = detailsId;
                await _userManager.UpdateAsync(user);
                
                
                _logger.LogInformation("Account Created",user);
                return Ok();
                
            }

            return BadRequest(result.Errors);



        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Get()
        {
            var token = HttpContext.Request.Headers["Authorization"].Last().Split(" ").Last();

            string[] roles = { "Admin", "SchoolAdmin" };

            if (RoleService.CheckRoles(token, roles, _userManager))
            {
                var repo    = new SchoolRepository();
                var userIds = repo.GetAll()
                              .Select(x => new
                {
                    Name    = x.Name,
                    UserIds = x.Users.Select(x => x.UserId)
                }).ToDictionary(x => x.Name, x => x.UserIds);

                var SchoolsUsers = new Dictionary <string, List <User> >();

                foreach (var school in userIds.Keys)
                {
                    SchoolsUsers.Add(school, userIds[school].Select(x => _userManager.FindByIdAsync(x).Result).ToList());
                }

                var detailsRepo = new UserDetailsRepository();


                //Produces summary for each school with summaries for each of students.
                var result = repo.GetAll().Select(x => new SchoolSummary(x.Id, x.Name, SchoolsUsers[x.Name]
                                                                         .Select(x => UserSummaryFactory.CreateSummary(detailsRepo.GetById(x.DetailsId), x)).ToList())).ToList();

                return(Ok(result));
            }

            return(Unauthorized("Only Admin and SchoolAdmin roles have permission to this controller."));
        }
Ejemplo n.º 3
0
 public UserController(UserRepository userRepository, RoleRepository roleRepository, UserDetailsRepository userDetailsRepository, IConfiguration configuration)
 {
     this._roleRepository        = roleRepository;
     this._userRepository        = userRepository;
     this._userDetailsRepository = userDetailsRepository;
     this._configuration         = configuration;
 }
 public MessageExtension(IConfiguration configuration)
 {
     _configuration         = configuration;
     _cardHelper            = new CardHelper(_configuration);
     _taskDataRepository    = new TaskDataRepository(_configuration);
     _userDetailsRepository = new UserDetailsRepository(_configuration);
 }
Ejemplo n.º 5
0
        public ActionResult AddHoliday(Vacation model)
        {
            string message = "";
            bool   succes  = false;

            HolidayManagementContext database     = new HolidayManagementContext();
            VacationRepository       vacationrepo = new VacationRepository();

            var UserId = User.Identity.GetUserId();
            UserDetailsRepository udr = new UserDetailsRepository();
            var userDetails           = udr.GetUserDetailsByUserId(UserId);

            model.Date    = DateTime.Now;
            model.StateId = 1;
            model.UserId  = userDetails.ID;

            database.Vacations.Add(model);

            message = validateVacation(model);
            if (message == null)
            {
                database.SaveChanges();
                succes = true;
            }
            else
            {
                succes = false;
            }



            return(Json(new { successed = succes, Message = message, newUser = model }, JsonRequestBehavior.DenyGet));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> GetUsersInSchool(int id)
        {
            var token = HttpContext.Request.Headers["Authorization"].Last().Split(" ").Last();

            string[] roles      = { "Admin", "SchoolAdmin" };
            var      schoolRepo = new SchoolRepository();

            if (!schoolRepo.GetAll().Select(x => x.Id).Contains(id))
            {
                return(BadRequest("Not such id"));
            }


            if (RoleService.CheckRoles(token, roles, _userManager))
            {
                if (RoleService.CheckRole(token, "Admin", _userManager))
                {
                    if (id == 0)
                    {
                        var detailsRepo = new UserDetailsRepository();
                        var result      = detailsRepo.GetAll().Select(x => UserSummaryFactory
                                                                      .CreateSummary(x, _userManager.FindByIdAsync(x.UserId).Result)).ToList();

                        return(Ok(result));
                    }
                    else
                    {
                        try
                        {
                            var school = schoolRepo.GetAll().First(x => x.Id == id);
                            var result = school.Users.Select(x => UserSummaryFactory
                                                             .CreateSummary(x, _userManager.FindByIdAsync(x.UserId).Result)).ToList();

                            return(Ok(result));
                        }
                        catch (Exception e)
                        {
                            NotFound(e.Message);
                        }
                    }
                }
                else
                {
                    try
                    {
                        var school = schoolRepo.GetAll().First(x => x.Id == id);
                        var result = school.Users.Select(x => UserSummaryFactory
                                                         .CreateSummary(x, _userManager.FindByIdAsync(x.UserId).Result)).ToList();

                        return(Ok(result));
                    }
                    catch (Exception e)
                    {
                        NotFound(e.Message);
                    }
                }
            }

            return(Unauthorized("Only Admin, SchoolAdmin have access to this controller."));
        }
        public ActionResult EditUser(UserDetails model)
        {
            string message   = "ok";
            bool   successed = true;

            using (HolidayManagementContext db = new HolidayManagementContext())
            {
                //Id megkeresese alapjan visszateriti a modelt
                var user = db.UserDetailsModel.FirstOrDefault(x => x.ID == model.ID);

                user.LastName          = model.LastName;
                user.FirstName         = model.FirstName;
                user.AspnetUsers.Email = model.AspnetUsers.Email;
                user.HireDate          = model.HireDate;
                user.MaxDays           = model.MaxDays;
                user.Team = model.Team;

                db.SaveChanges();
            }

            UserDetailsRepository UDR = new UserDetailsRepository();
            var res = new { Success = successed, EMessage = message, usersList = UDR.GetUsers() };//

            return(Json(res, JsonRequestBehavior.DenyGet));
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Get()
        {
            var token = HttpContext.Request.Headers["Authorization"].Last().Split(" ").Last();

            string[] roles = { "User", "Admin", "SchoolAdmin" };

            if (RoleService.CheckRoles(token, roles, _userManager))
            {
                var candidacyRepo = new CandidacyRepository();
                var detailsRepo   = new UserDetailsRepository();

                var handler = new JwtSecurityTokenHandler();
                var sub     = handler.ReadJwtToken(token).Payload.Sub;

                var details   = detailsRepo.GetByUserId(sub);
                var candidacy = candidacyRepo.GetAll().Last(x => x.OwnerId.Value == details.Id);

                var credentials =
                    GoogleCredential.FromFile(
                        PathHelper.GetCredentialsPath());
                var storage = StorageClient.CreateAsync(credentials);
                var url     = SignedUrlHelper.GenerateV4SignedGetUrl("deep-castle-261418-user-photo-bucket",
                                                                     candidacy.PhotoPath);
                return(Ok(url));
            }

            return(Unauthorized());
        }
        // GET: Dashboard
        public ActionResult Index()
        {
            var DbUsers = db.UserDetailsModel.ToList();
            DashboardViewModels dashboardVM = new DashboardViewModels();

            UserDetailsRepository UDR = new UserDetailsRepository();

            dashboardVM.UserList = UDR.GetUsers();

            TeamRepository TR = new TeamRepository();

            dashboardVM.TeamList = TR.GetTeams();

            List <IdentityRole> roles = db.Roles.ToList();

            dashboardVM.RoleList = roles;

            VacationRepository    vac  = new VacationRepository();
            BankHolidayRepository bank = new BankHolidayRepository();

            CalendarViewModel calendar = new CalendarViewModel();

            calendar.BankHolidayList = bank.GetBankHolidays();
            calendar.VacationList    = vac.GetVacations();

            dashboardVM.Calendar = calendar;
            return(View(dashboardVM));
        }
Ejemplo n.º 10
0
        public async Task <IActionResult> GetSurveys()
        {
            var schoolRepo = new SchoolRepository();

            var token = HttpContext.Request.Headers["Authorization"].Last().Split(" ").Last();

            string[] roles = { "User", "Admin", "SchoolAdmin" };

            var handler = new JwtSecurityTokenHandler();
            var sub     = handler.ReadJwtToken(token).Payload.Sub;

            var detailsRepo = new UserDetailsRepository();
            var id          = detailsRepo.GetByUserId(sub).SchoolId.Value;

            //Checks if the User have needed role to access all surveys and if User is in that school
            if (RoleService.CheckRoles(token, roles, _usermanager))
            {
                var result = _repository.GetAll().Where(x => x.Author.SchoolId == id)
                             .Select(x => new SurveySummary(x))
                             .ToList();

                return(Ok(result));
            }

            return(NotFound());
        }
Ejemplo n.º 11
0
        public static async Task <UserDetailsEntity> GetUserId(string userEmail, IConfiguration configuration)
        {
            UserDetailsRepository userDetailsDataRepository = new UserDetailsRepository(configuration);

            UserDetailsEntity manager = await userDetailsDataRepository.GeUserDetails(userEmail.ToLower());

            return(manager ?? null);
        }
Ejemplo n.º 12
0
        public static Survey Convert(SurveyInput input, int AuthorId)
        {
            var authorRepo = new UserDetailsRepository();
            var Author     = authorRepo.GetById(AuthorId);

            return(new Survey(input.Name, input.StartDate, input.EndDate, input.Description
                              , input.Options.Select(x => OptionInputConverter.Convert(x))
                              , Author, input.PhotoPath, input.Color));
        }
Ejemplo n.º 13
0
        public void Add_Normal_Conditionals()
        {
            var repo      = new CandidacyRepository();
            var user      = new UserDetailsRepository().GetAll().FirstOrDefault();
            var candidacy = new Candidacy("John", "empty description", "empty", user);

            repo.Add(candidacy);
            Assert.True(repo.GetAll().Last().Owner != null);
        }
Ejemplo n.º 14
0
        //EditUser action
        public async Task <ActionResult> EditUser(UserDetails model, string ManageUserRoleID)
        {
            bool                     successedd = true;
            List <string>            messagess  = new List <string>();
            HolidayManagementContext newDB      = new HolidayManagementContext();
            var   user = newDB.UserDetails.FirstOrDefault(c => c.ID == model.ID);
            Regex reg  = new Regex("^([A-Za-z]+['.]?[ ]?|[A-Za-z]+['-]?)+$", RegexOptions.Compiled);

            if (!reg.IsMatch(model.LastName) || (model.LastName == null))
            {
                successedd = false;
                messagess.Add("Bad LastName\r\n");
            }

            if (!reg.IsMatch(model.FirstName) || (model.FirstName == null))
            {
                successedd = false;
                messagess.Add("Bad FirstName\r\n");
            }
            if (successedd)
            {
                //email address validation
                var check = newDB.UserDetails.FirstOrDefault(d => d.AspNetUser.Email == model.AspNetUser.Email);
                if ((check == null) || (check.ID == model.ID))
                {
                    user.LastName         = model.LastName;
                    user.AspNetUser.Email = model.AspNetUser.Email;
                    user.FirstName        = model.FirstName;
                    user.HireDate         = model.HireDate;
                    user.MaxDays          = model.MaxDays;
                    user.TeamId           = model.TeamId;
                    newDB.SaveChanges();
                    //get the list of the roles
                    var list = newDB.Roles.ToList();
                    //define new role
                    var name = list.FirstOrDefault(x => x.Id == ManageUserRoleID);
                    //find user roles
                    var roles = await UserManager.GetRolesAsync(user.AspNetUser.Id);

                    //delete user role
                    await UserManager.RemoveFromRolesAsync(user.UserID, roles.ToArray());

                    //add new role
                    await UserManager.AddToRoleAsync(user.AspNetUser.Id, name.Name);
                }
                else
                {
                    successedd = false;
                    messagess.Add("Bad Email");
                }
            }


            UserDetailsRepository userdr = new UserDetailsRepository();

            return(Json(new { successed = successedd, messages = messagess, userLst = userdr.GetUsers() }, JsonRequestBehavior.DenyGet));
        }
Ejemplo n.º 15
0
        public void INSQLTest()
        {
            var y       = 100;
            var user    = new UserRepository(context);
            var details = new UserDetailsRepository(context);
            var result  = user.Where(x => x.Id > 0 && x.Id < y && details.Select(z => z.Nickname).Contains(x.Username))
                          .Select(x => new { x.Id, OldId = x.Id + 1, OOID = y });

            var list = result.ToList();
        }
Ejemplo n.º 16
0
        public void INTest2()
        {
            var y       = 100;
            var user    = new UserRepository(context);
            var details = new UserDetailsRepository(context);
            var arr     = new string[] { "1", "2" };
            var result  = user.Where(x => x.Id > 0 && x.Id < y && arr.Any() && details.Any(z => z.Nickname == x.Username))
                          .Select(x => new { x.Id, OldId = x.Id + 1, OOID = y });

            var list = result.ToList();
        }
Ejemplo n.º 17
0
        public void GetAllUsersInSchool()
        {
            var repo     = new SchoolRepository();
            var userRepo = new UserDetailsRepository();
            var schoolId = repo.GetAll().Last().Id;

            userRepo.Add(new UserDetails("null", null, schoolId));
            var users = repo.GetAll().Last().Users;

            Assert.True(users.Count > 0);
        }
Ejemplo n.º 18
0
        public void UnionCountTest()
        {
            var y       = 100;
            var user    = new UserRepository(context);
            var details = new UserDetailsRepository(context);
            var result  = user.Where(x => x.Id > 0 && x.Id < y && x.Username.Contains("admin")).Select(x => new { x.Id, Name = x.Username });

            var result2 = details.Where(x => x.Id > 0 && x.Id < y).Select(x => new { x.Id, Name = x.Realname });

            var count = result.Union(result2).Count();
        }
        public AllRepositories()
        {
            this.feedbackRepository    = new FeedbackRepository();
            this.footerRepository      = new FooterRepository();
            this.imageRepository       = new ImageRepository();
            this.projectRepository     = new ProjectRepository();
            this.loginRepository       = new LoginRepository();
            this.userDetailsRepository = new UserDetailsRepository();

            this.articleRepository        = new ArticleRepository();
            this.articleCommentRepository = new ArticleCommentRepository();
        }
Ejemplo n.º 20
0
        public void Delete_Normal_Conditions()
        {
            var repo     = new CandidacyRepository();
            var user     = new UserDetails();
            var userRepo = new UserDetailsRepository();

            userRepo.Add(user);
            var candidacy = new Candidacy("John", "empty description", "empty", user);

            repo.Add(candidacy);
            repo.Delete(repo.GetAll().FirstOrDefault());
        }
Ejemplo n.º 21
0
        public static async Task <Dictionary <string, UserDetailsEntity> > GetUserDataDictionaryAsync(IConfiguration configuration)
        {
            UserDetailsRepository userDetailsRepository = new UserDetailsRepository(configuration);

            var userDataEntities = await userDetailsRepository.GetAllAsync();

            var alluser = new Dictionary <string, UserDetailsEntity>();

            foreach (var userDataEntity in userDataEntities)
            {
                alluser.Add(userDataEntity.EmailId, userDataEntity);
            }
            return(alluser);
        }
Ejemplo n.º 22
0
        public void Edit_Normal_Conditions()
        {
            var repo     = new CandidacyRepository();
            var user     = new UserDetails();
            var userRepo = new UserDetailsRepository();

            userRepo.Add(user);
            var candidacy = new Candidacy("John", "empty description", "empty", user);

            repo.Add(candidacy);
            var temp = repo.GetAll().FirstOrDefault();

            temp.PhotoPath   = "foo";
            temp.Description = "bar";
            repo.Edit(temp);
        }
Ejemplo n.º 23
0
        public async Task <IActionResult> Add(UserSchoolInput input)
        {
            string[] roles = { "Admin", "SchoolAdmin" };
            var      token = HttpContext.Request.Headers["Authorization"].Last().Split(" ").Last();

            if (RoleService.CheckRoles(token, roles, _userManager))
            {
                var userDetailsRepo = new UserDetailsRepository();
                var userDetails     = userDetailsRepo.GetAll().First(x => x.UserId == input.UserId);
                userDetails.SchoolId = input.SchoolId;
                userDetailsRepo.Edit(userDetails);

                return(Ok());
            }
            return(Unauthorized("Only Admin, SchoolAdmin have access to this controller."));
        }
Ejemplo n.º 24
0
        public static async Task <IEnumerable <SelectListItem> > GetListOfUser(IConfiguration configuration)
        {
            UserDetailsRepository    userDetailsRepository = new UserDetailsRepository(configuration);
            List <UserDetailsEntity> userDetailsEntity     = await userDetailsRepository.GeAllUserDetails();

            List <SelectListItem> itemList = new List <SelectListItem>();

            foreach (var item in userDetailsEntity)
            {
                string[] names = item.Name.Split();
                string   name  = names.Count() > 1 ? names[0] + " " + names[1] : null;
                itemList.Add(new SelectListItem()
                {
                    Value = item.EmailId, Text = name
                });
            }
            return(itemList);
        }
Ejemplo n.º 25
0
        public void Edit_PhotoPath_Null()
        {
            var repo     = new CandidacyRepository();
            var user     = new UserDetails();
            var userRepo = new UserDetailsRepository();

            userRepo.Add(user);
            var candidacy = new Candidacy("John", "empty description", "empty", user);

            repo.Add(candidacy);
            var temp = repo.GetAll().FirstOrDefault();

            Assert.Throws <ArgumentNullException>(() =>
            {
                temp.PhotoPath   = null;
                temp.Description = "bar";
                repo.Edit(temp);
            });
        }
Ejemplo n.º 26
0
        public static async Task SendNotificationAsync(IConfiguration configuration, Attachment attachment, UserDetailsEntity userDetailsEntity)
        {
            await FetchTokenAsync(configuration);

            var createConversationUrl = $"{userDetailsEntity.ServiceUrl}v3/conversations";

            using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, createConversationUrl))
            {
                requestMessage.Headers.Authorization = new AuthenticationHeaderValue(
                    "Bearer",
                    botAccessToken);

                var payloadString = "{\"bot\": { \"id\": \"28:" + configuration["MicrosoftAppId"] + "\"},\"isGroup\": false, \"tenantId\": \"" + userDetailsEntity.TenantId + "\", \"members\": [{\"id\": \""
                                    + userDetailsEntity.UserUniqueID + "\"}]}";
                requestMessage.Content = new StringContent(payloadString, Encoding.UTF8, "application/json");

                var httpClient = new HttpClient();
                using (var sendResponse = await httpClient.SendAsync(requestMessage))
                {
                    if (sendResponse.StatusCode == HttpStatusCode.Created)
                    {
                        var jsonResponseString = await sendResponse.Content.ReadAsStringAsync();

                        dynamic resp = JsonConvert.DeserializeObject(jsonResponseString);
                        if (string.IsNullOrEmpty(userDetailsEntity.ConversationId))
                        {
                            userDetailsEntity.ConversationId = resp.id;
                        }

                        await SendNotificationAsync(userDetailsEntity, attachment);

                        var operation = TableOperation.InsertOrMerge(userDetailsEntity);
                        if (userDataRepository == null)
                        {
                            userDataRepository = new UserDetailsRepository(configuration);
                        }

                        await userDataRepository.Table.ExecuteAsync(operation);
                    }
                }
            }
        }
Ejemplo n.º 27
0
        public async Task <IActionResult> Submit(SurveyInput input)
        {
            var token = HttpContext.Request.Headers["Authorization"].Last().Split(" ").Last();
            var roles = new List <string>()
            {
                "User", "Admin", "SchoolAdmin"
            };
            var handler  = new JwtSecurityTokenHandler();
            var sub      = handler.ReadJwtToken(token).Payload.Sub;
            var surveyId = new UserDetailsRepository().GetByUserId(sub).Id;

            if (RoleService.CheckRoles(token, roles, _userManager))
            {
                var survey = SurveyInputConverter.Convert(input, surveyId);
                _repository.Add(survey);

                return(CreatedAtAction("Submit", survey));
            }
            return(Unauthorized("Only User, Admin, SchoolAdmin have access to this controller."));
        }
Ejemplo n.º 28
0
        public async Task <IActionResult> Add(UserRoleInput input)
        {
            string[] roles = { "Admin" };
            var      token = HttpContext.Request.Headers["Authorization"].Last().Split(" ").Last();

            if (RoleService.CheckRoles(token, roles, _userManager))
            {
                if (RoleService.GetAllRoles().Contains(input.Role))
                {
                    var repo = new UserDetailsRepository();
                    var user = _userManager.FindByIdAsync(input.UserId).Result;
                    await _userManager.AddToRoleAsync(user, input.Role);

                    return(Ok());
                }

                return(BadRequest("Unexisting role"));
            }

            return(Unauthorized("Only Admin have access to this controller."));
        }
Ejemplo n.º 29
0
        public async Task <IActionResult> Submit(VoteInput input)
        {
            var token = HttpContext.Request.Headers["Authorization"].Last().Split(" ").Last();
            var roles = new List <string>()
            {
                "User"
            };

            var handler = new JwtSecurityTokenHandler();
            var sub     = handler.ReadJwtToken(token).Payload.Sub;

            if (RoleService.CheckRoles(token, roles, _userManager))
            {
                var vote = VoteInputConverter.Convert(input);

                var detailsRepo     = new UserDetailsRepository();
                var voteRecordsRepo = new VoteRecordRepository();

                var detailsId = detailsRepo.GetByUserId(sub).Id;
                var surveyId  = vote.SurveyId;

                if (voteRecordsRepo.GetAll().Count(x => x.UserDetailsId == detailsId && x.SurveyId == surveyId) == 0)
                {
                    _repository.Add(vote);



                    var record = new VoteRecord(surveyId, detailsId);
                    voteRecordsRepo.Add(record);

                    return(CreatedAtAction("Submit", vote));
                }

                return(BadRequest("You already voted"));
            }
            else
            {
                return(BadRequest("Only Users can vote."));
            }
        }
        public ActionResult EditUser(UserDetails model)
        {
            bool   successed = false;
            string messages  = "";

            try
            {
                UserDetailsRepository repo = new UserDetailsRepository();

                successed = repo.EditUserDetail(model);

                if (!successed)
                {
                    messages = "Email already exists!";
                }
            }
            catch (Exception ex)
            {
                messages = ex.Message;
            }

            return(Json(new { successed = successed, messages = messages, newUser = model }, JsonRequestBehavior.DenyGet));
        }