Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        //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();
            }
        }
Esempio n. 4
0
        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;
                }
            }
        }
Esempio n. 6
0
        //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);
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        //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);
            }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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");
            }
        }
Esempio n. 12
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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
 public void Edit(ClaimInfo claimInfo)
 {
     Context.ClaimInfos.AddOrUpdate(claimInfo);
     Context.SaveChanges();
 }
Esempio n. 15
0
        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();
        }
Esempio n. 16
0
        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());
        }