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); }
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.")); }
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); }
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)); }
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)); }
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)); }
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()); }
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); }
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)); }
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); }
//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)); }
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(); }
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(); }
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); }
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(); }
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()); }
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); }
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); }
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.")); }
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); }
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); }); }
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); } } } }
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.")); }
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.")); }
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)); }