public async Task <IActionResult> Edit(string userId) { // Get user information GolfioUser golfioUser = await _golfioUser.GetUserAsync(userId); AdminEditViewModel adminEditVM = new AdminEditViewModel() { UserId = golfioUser.Id, FirstName = golfioUser.FirstName, LastName = golfioUser.LastName, Email = golfioUser.Email, }; // Get user claim(s) List <Claim> claims = await _golfioUser.GetUserClaimsAsync(golfioUser); foreach (var claimType in Enum.GetValues(typeof(ClaimType)).Cast <ClaimType>()) { ClaimInfo claimInfo = new ClaimInfo() { ClaimType = claimType.ToString(), IsSelected = false, }; adminEditVM.ClaimInfos.Add(claimInfo); } foreach (var claim in claims) { ClaimInfo claimInfo = adminEditVM.ClaimInfos.FirstOrDefault(ci => ci.ClaimType == claim.Type.ToString()); claimInfo.IsSelected = Convert.ToBoolean(claim.Value); } return(View(adminEditVM)); }
private UserContext DemoUserLogin(User user, UnitOfWork uow, int?schoolYearId = null) { if (user == null) { return(null); } if (!user.District.IsDemoDistrict) { throw new ChalkableException("This login is allowed to demo district only"); } Guid?developerId = null; var developer = new DeveloperDataAccess(uow).GetDeveloper(user.District.Id); if (developer != null) { developerId = developer.Id; } var schoolUser = user.SchoolUsers.First(); var schoolYear = DemoSchoolYearService.GetDemoSchoolYear(); int roleId; var personId = DemoPersonService.GetPersonDataForLogin(schoolUser.User, out roleId); var res = new UserContext(user, CoreRoles.GetById(roleId), user.District, schoolUser.School, developerId, personId, null, schoolYear) { Claims = ClaimInfo.Create(DemoUserService.GetDemoClaims()) }; return(res); }
//Display first claim in list public void ViewFirstClaim() { ClaimInfo claim = _claimsRepo.GetNextClaim(); Console.Clear(); Console.WriteLine( $"Claim ID: {claim.ClaimId}\n" + $"Claim Type: {claim.TypeOfClaim}\n" + $"Claim Description: {claim.Description}\n" + $"Claim Amount: {claim.ClaimAmount}\n" + $"Date of Incident: {claim.DateOfIncident}\n" + $"Date of Claim: {claim.DateOfClaim}\n" + $"Is Claim Valid: {claim.IsValid}\n"); Console.WriteLine("Are you available to work on this claim? Please enter y or n"); string input = Console.ReadLine(); if (input == "y") { _claimsRepo.DeleteClaimfromQueue(); Console.WriteLine("Claim Successfully Completed.\n" + "Press enter to return to the main menu..."); Console.ReadKey(); Console.Clear(); } else { Console.WriteLine("No action at this time. Returning to Main Menu..."); Console.ReadKey(); Console.Clear(); } }
public async Task <ActionResult> Claims() { ClaimsPrincipal cp = ClaimsPrincipal.Current; List <ClaimInfo> results = new List <ClaimInfo>(); foreach (var claim in cp.Claims) { ClaimInfo ci = new ClaimInfo(); ci.ClaimType = claim.Type; ci.Value = claim.Value; ci.ValueType = claim.ValueType.Substring(claim.ValueType.IndexOf('#') + 1); ci.SubjectName = ((claim.Subject) != null && (String.IsNullOrEmpty(claim.Subject.Name)) == false) ? claim.Subject.Name : "Null"; ci.IssuerName = !String.IsNullOrEmpty(claim.Issuer) ? claim.Issuer : "Null"; results.Add(ci); } ViewBag.IDclaims = results; // // If the call failed for any other reason, show the user an error. // //return View("Error"); return(View()); }
private static void DayThree(List <string> initialInputs) { char[][] TextileMap = null; List <ClaimInfo> claims = new List <ClaimInfo>(); foreach (var initialInput in initialInputs) { var split = initialInput.Split(new[] { ' ', '#', '@', ',', ':', 'x', }); var claim = new ClaimInfo(split); claims.Add(claim); } TextileMap = new char[ClaimInfo.HighestY][]; for (int row = 0; row < ClaimInfo.HighestY; row++) { TextileMap[row] = Enumerable.Repeat('.', ClaimInfo.HighestX).ToArray(); } foreach (var claimInfo in claims) { for (int row = claimInfo.X; row < claimInfo.X + claimInfo.Width; row++) { for (int column = claimInfo.Y; column < claimInfo.Y + claimInfo.Height; column++) { if (TextileMap[column][row] == '.') { TextileMap[column][row] = 'O'; } else if (TextileMap[column][row] == 'O') { TextileMap[column][row] = 'X'; } } } } var overlap = TextileMap.Sum(col => col.Count(item => item == 'X')); bool badClaim = false; foreach (var claimInfo in claims) { badClaim = false; for (int row = claimInfo.X; !badClaim && row < claimInfo.X + claimInfo.Width; row++) { for (int column = claimInfo.Y; !badClaim && column < claimInfo.Y + claimInfo.Height; column++) { if (TextileMap[column][row] == 'X') { badClaim = true; } } } if (!badClaim) { Console.WriteLine("Claim #" + claimInfo.Number); break; } } }
//Enter a new claim private void EnterNewClaim() { ClaimInfo newClaim = new ClaimInfo(); Console.WriteLine("Enter the Claim ID:"); string claimIdAsString = Console.ReadLine(); newClaim.ClaimId = int.Parse(claimIdAsString); Console.WriteLine("Enter the Claim Type:\n" + "1. Car\n" + "2. Home\n" + "3. Theft"); string claimTypeAsString = Console.ReadLine(); int claimTypeAsInt = int.Parse(claimTypeAsString); newClaim.TypeOfClaim = (ClaimType)claimTypeAsInt; Console.WriteLine("Enter Claim Description:"); string claimDescription = Console.ReadLine(); newClaim.Description = claimDescription; Console.WriteLine("Enter Amount of Damage:"); string claimAmtAsString = Console.ReadLine(); newClaim.ClaimAmount = decimal.Parse(claimAmtAsString); Console.WriteLine("Enter Date of Accident:"); string accidentDateAsString = Console.ReadLine(); newClaim.DateOfIncident = DateTime.Parse(accidentDateAsString); Console.Write("Enter Report Date of Claim:\n"); string claimDateAsString = Console.ReadLine(); newClaim.DateOfClaim = DateTime.Parse(claimDateAsString); //is claim valid DateTime t1 = newClaim.DateOfClaim; DateTime t2 = newClaim.DateOfIncident; TimeSpan Diff_dates = t1.Subtract(t2); if (Diff_dates.Days <= 30) { newClaim.IsValid = true; } else { newClaim.IsValid = false; } Console.WriteLine($"Days since incident: {Diff_dates.Days} so claim is valid: {newClaim.IsValid}"); _claimsRepo.AddClaimToList(newClaim); }
public void Create(CreateClaimInfoModel model) { var claimInfo = new ClaimInfo() { Issuer = model.Issuer, ClaimType = model.ClaimType, Value = model.Value, MethodTypeValue = model.MethodTypeValue }; Context.ClaimInfos.Add(claimInfo); Context.SaveChanges(); }
//Add existing claims to repo private void ExistingClaimList() { ClaimInfo claim1 = new ClaimInfo(1, ClaimType.Car, "Car accident on 465", 400m, Convert.ToDateTime("4/25/2018"), Convert.ToDateTime("4/27/2018"), true); ClaimInfo claim2 = new ClaimInfo(2, ClaimType.Home, "House fire in kitchen", 4000m, Convert.ToDateTime("4/11/2018"), Convert.ToDateTime("4/12/2018"), true); ClaimInfo claim3 = new ClaimInfo(3, ClaimType.Theft, "Stolen pancakes", 4m, Convert.ToDateTime("4/27/2018"), Convert.ToDateTime("6/1/2018"), false); _claimsRepo.AddClaimToList(claim1); _claimsRepo.AddClaimToList(claim2); _claimsRepo.AddClaimToList(claim3); }
public override void WriteJson(JsonWriter writer, Claim?value, JsonSerializer serializer) { if (value == null) { return; } var info = new ClaimInfo(value.Type, value.Value); serializer.Serialize(writer, info); }
public async Task <IList <ClaimInfo> > CopyClaimInfo(string id) { ApplicationUser user = await _userManager.FindByIdAsync(id); var claims = await _userManager.GetClaimsAsync((ApplicationUser)user); IList <ClaimInfo> claimInfos = new List <ClaimInfo>(); foreach (Claim claim in claims) { ClaimInfo claimInfo = new ClaimInfo(); claimInfo.userId = id; claimInfo.type = claim.Type; claimInfo.value = claim.Value; claimInfos.Add(claimInfo); } return(claimInfos); }
public string ValidateInfo(string ClaimID, string AIN, string ClaimStatusID, string ClaimReceivedDate) { string strAssignor = User.FindFirst("Name").Value; try { var result = new ClaimInfo(); var pClaimStatus = new SqlParameter("@ClaimStatusRefID", ClaimStatusID); var pClaimID = new SqlParameter("@ClaimID", ClaimID); var pAIN = new SqlParameter("@AIN", AIN); result = _context.ClaimInfo.FromSql("sp_chk_ClaimID_AIN @ClaimStatusRefID, @ClaimID, @AIN", pClaimStatus, pClaimID, pAIN).FirstOrDefaultAsync().Result; return(result.info); } catch (Exception e) { return("0"); } }
public IEnumerable <ClaimInfo> Get() { ClaimsPrincipal cp = ClaimsPrincipal.Current; List <ClaimInfo> results = new List <ClaimInfo>(); foreach (var claim in cp.Claims) { ClaimInfo ci = new ClaimInfo(); ci.ClaimType = claim.Type; ci.Value = claim.Value; ci.ValueType = claim.ValueType.Substring(claim.ValueType.IndexOf('#') + 1); ci.SubjectName = ((claim.Subject) != null && (String.IsNullOrEmpty(claim.Subject.Name)) == false) ? claim.Subject.Name : "Null"; ci.IssuerName = !String.IsNullOrEmpty(claim.Issuer) ? claim.Issuer : "Null"; results.Add(ci); } return(results); }
public async Task <IdentityResult> UpdateAccessPermission(AdminEditViewModel adminEditVM) { // Retrieve user Claims IdentityResult identityResult = new IdentityResult(); GolfioUser golfioUser = await _userManager.FindByIdAsync(adminEditVM.UserId); List <Claim> userClaims = await GetUserClaimsAsync(golfioUser); // Does adminEditVM.ClaimInfos.ClaimType contain Admin? ClaimInfo adminClaimInfo = adminEditVM.ClaimInfos.FirstOrDefault(ci => ci.ClaimType == ClaimType.Admin.ToString() && ci.IsSelected == true); // If yes, check DB to see if there's Admin if (adminClaimInfo != null) { bool isClaimInDB = userClaims.Any(uc => uc.Type.ToString() == adminClaimInfo.ClaimType); // If no, add and remove all other claims if (isClaimInDB) { List <Claim> nonAdminClaims = userClaims.Where(uc => uc.Type != ClaimType.Admin.ToString()).ToList(); await _userManager.RemoveClaimsAsync(golfioUser, nonAdminClaims); return(IdentityResult.Success); } else { await _userManager.RemoveClaimsAsync(golfioUser, userClaims); Claim claim = new Claim(adminClaimInfo.ClaimType, "true"); return(await _userManager.AddClaimAsync(golfioUser, claim)); } } // Separate ClaimValue True and False foreach (var claimInfo in adminEditVM.ClaimInfos) { if (claimInfo.IsSelected == true) { bool isClaimInDB = userClaims.Any(uc => uc.Type.ToString() == claimInfo.ClaimType); // If found, continue if (isClaimInDB) { continue; } // If not found, create else { Claim claim = new Claim(claimInfo.ClaimType, "true"); identityResult = await _userManager.AddClaimAsync(golfioUser, claim); } } else { Claim claimInDB = userClaims.FirstOrDefault(uc => uc.Type.ToString() == claimInfo.ClaimType); // If found, delete if (claimInDB != null) { identityResult = await _userManager.RemoveClaimAsync(golfioUser, claimInDB); if (!identityResult.Succeeded) { return(identityResult); } } // if not found, continue else { continue; } } if (!identityResult.Succeeded) { return(identityResult); } } return(identityResult); }
public void Edit(ClaimInfo claimInfo) { Context.ClaimInfos.AddOrUpdate(claimInfo); Context.SaveChanges(); }
private UserContext SisUserLogin(User user, UnitOfWork uow, ConnectorLocator iNowConnector = null , StiConnector.Connectors.Model.User iNowUser = null, int?schoolYearId = null, string sisRedirectUrl = null) { if (user == null) { return(null); } if (user.SisUserId.HasValue) { try { SaveSisToken(user, uow, ref iNowConnector); } catch (HttpException) { return(null); } Trace.Assert(user.DistrictRef.HasValue); var schoolL = ServiceLocator.SchoolServiceLocator(user.DistrictRef.Value, null); Data.School.Model.SchoolYear schoolYear; SchoolUser schoolUser; var userAcadSessionsIds = iNowConnector.UsersConnector.GetUserAcadSessionsIds(); if (userAcadSessionsIds.Length == 0) { throw new ChalkableException("Current user does not have access to any of school acadSessions"); } if (!schoolYearId.HasValue && userAcadSessionsIds.Length == 1) { schoolYearId = userAcadSessionsIds[0]; } PrepareSchoolData(schoolL, user, schoolYearId, userAcadSessionsIds, out schoolYear, out schoolUser); if (!schoolUser.School.IsChalkableEnabled) { return(null); } if (iNowUser == null) { iNowUser = iNowConnector.UsersConnector.GetMe(); } int roleId; int personId = PersonDataAccess.GetPersonDataForLogin(user.District.ServerUrl, user.DistrictRef.Value, user.SisUserId.Value, out roleId); var claimInfos = ClaimInfo.Create(iNowUser.Claims); if (roleId == CoreRoles.TEACHER_ROLE.Id) { EnsureTeacherChalkableAccess(claimInfos); } #if DEBUG var loginTimeOut = (int?)null; #else var loginTimeOut = schoolL.AppSettingService.GetLoginTimeOut(); #endif var res = new UserContext(user, CoreRoles.GetById(roleId), user.District, schoolUser.School, null, personId, loginTimeOut, schoolYear, sisRedirectUrl) { Claims = ClaimInfo.Create(iNowUser.Claims), SisApiVersion = iNowConnector.ApiVersion }; return(res); } throw new UnknownRoleException(); }
public async Task <ActionResult> Claims() { ClaimsPrincipal cp = ClaimsPrincipal.Current; List <ClaimInfo> results = new List <ClaimInfo>(); foreach (var claim in cp.Claims) { ClaimInfo ci = new ClaimInfo(); ci.ClaimType = claim.Type; ci.Value = claim.Value; ci.ValueType = claim.ValueType.Substring(claim.ValueType.IndexOf('#') + 1); ci.SubjectName = ((claim.Subject) != null && (String.IsNullOrEmpty(claim.Subject.Name)) == false) ? claim.Subject.Name : "Null"; ci.IssuerName = !String.IsNullOrEmpty(claim.Issuer) ? claim.Issuer : "Null"; results.Add(ci); } ViewBag.IDclaims = results; AuthenticationResult result = null; List <TodoItem> itemList = new List <TodoItem>(); try { if (ClaimsPrincipal.Current.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn") == null) { ViewBag.ATclaims = new List <ClaimInfo>(); return(View()); } string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn").Value; AuthenticationContext authContext = new AuthenticationContext(Startup.Authority, false, new NaiveSessionCache(userObjectID)); ClientCredential credential = new ClientCredential(clientId, appKey); result = await authContext.AcquireTokenSilentAsync(todoListResourceId, credential, new UserIdentifier(userObjectID, UserIdentifierType.RequiredDisplayableId)); // // Retrieve the user's To Do List. // HttpClient client = new HttpClient(); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, todoListBaseAddress + "/api/claims"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken); HttpResponseMessage response = await client.SendAsync(request); // // Return the To Do List in the view. // if (response.IsSuccessStatusCode) { List <Dictionary <String, String> > responseElements = new List <Dictionary <String, String> >(); JsonSerializerSettings settings = new JsonSerializerSettings(); String responseString = await response.Content.ReadAsStringAsync(); responseElements = JsonConvert.DeserializeObject <List <Dictionary <String, String> > >(responseString, settings); List <ClaimInfo> ATresults = new List <ClaimInfo>(); foreach (var claim in responseElements) { ClaimInfo ci = new ClaimInfo(); ci.ClaimType = claim["ClaimType"]; ci.Value = claim["Value"]; ci.ValueType = claim["ValueType"].Substring(claim["ValueType"].IndexOf('#') + 1); ci.SubjectName = ((claim["SubjectName"]) != null && (String.IsNullOrEmpty(claim["SubjectName"])) == false) ? claim["SubjectName"] : "Null"; ci.IssuerName = !String.IsNullOrEmpty(claim["IssuerName"]) ? claim["IssuerName"] : "Null"; ATresults.Add(ci); } ViewBag.ATclaims = ATresults; } //else //{ //empty list //should be covered by checking if the viewbag != null //ViewBag.ATclaims = new List<ClaimInfo>(); //} } catch (AdalException ee) { //typically one would want force signin to happen here //however here we want to explicitely show you don't have any claims //we don't want to remidiate that. //empty list //should be covered by checking if the viewbag != null //ViewBag.ATclaims = new List<ClaimInfo>(); } // // If the call failed for any other reason, show the user an error. // //return View("Error"); return(View()); }