예제 #1
0
        public async Task <IActionResult> Index()
        {
            User user = await _userService.GetDetails(GetActiveUserId());

            int householdCount = await _userService
                                 .FamilyMemberCountAsync(user.HouseholdHeadUserId ?? user.Id);

            var branchList = await _siteService.GetBranches(user.SystemId);

            var systemList = await _siteService.GetSystemList();

            var programList = await _siteService.GetProgramList();

            var userProgram       = programList.Where(_ => _.Id == user.ProgramId).SingleOrDefault();
            var programViewObject = _mapper.Map <List <ProgramViewModel> >(programList);


            ProfileDetailViewModel viewModel = new ProfileDetailViewModel()
            {
                User              = user,
                HouseholdCount    = householdCount,
                HasAccount        = !string.IsNullOrWhiteSpace(user.Username),
                RequirePostalCode = (await GetCurrentSiteAsync()).RequirePostalCode,
                ShowAge           = userProgram.AskAge,
                ShowSchool        = userProgram.AskSchool,
                HasSchoolId       = user.SchoolId.HasValue,
                ProgramJson       = Newtonsoft.Json.JsonConvert.SerializeObject(programViewObject),
                BranchList        = new SelectList(branchList.ToList(), "Id", "Name"),
                SystemList        = new SelectList(systemList.ToList(), "Id", "Name"),
                ProgramList       = new SelectList(programList.ToList(), "Id", "Name")
            };

            var districtList = await _schoolService.GetDistrictsAsync();

            if (user.SchoolId.HasValue)
            {
                var schoolDetails = await _schoolService.GetSchoolDetailsAsync(user.SchoolId.Value);

                var typeList = await _schoolService.GetTypesAsync(schoolDetails.SchoolDisctrictId);

                viewModel.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name",
                                                              schoolDetails.SchoolDisctrictId);
                viewModel.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name",
                                                          schoolDetails.SchoolTypeId);
                viewModel.SchoolList = new SelectList(schoolDetails.Schools.ToList(), "Id", "Name");
            }
            else
            {
                viewModel.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name");
            }
            return(View(viewModel));
        }
예제 #2
0
        public IActionResult Index()
        {
            var viewModel = new ProfileDetailViewModel();

            Guid userId;
            var  userIdClaim = this.User.Claims.FirstOrDefault(f => f.Type == ClaimTypes.NameIdentifier);

            var user = this.usersManager.GetItem(Guid.TryParse(userIdClaim.Value, out userId) ? userId : Guid.Empty) as User;

            if (user != null)
            {
                viewModel.Id         = user.Id;
                viewModel.Name       = $"{user.FirstName} {user.LastName}";
                viewModel.Email      = user.Email;
                viewModel.Image      = string.IsNullOrEmpty(user.Image) ? "/images/default-user-profile-image.svg" : user.Image;
                viewModel.IsExternal = user.IsExternal;
                viewModel.PersonalInformationViewModel = new ProfilePersonalInformationViewModel()
                {
                    FirstName = user.FirstName,
                    LastName  = user.LastName,
                };

                viewModel.CarInformationViewModel = new ProfileCarInformationViewModel();

                var car = (this.carsManager.GetItems() as IEnumerable <Car>).Where(c => c.OwnerId == user.Id).FirstOrDefault();
                if (car != null)
                {
                    viewModel.CarInformationViewModel.Brand    = car.Brand;
                    viewModel.CarInformationViewModel.Model    = car.Model;
                    viewModel.CarInformationViewModel.Seats    = car.Seats;
                    viewModel.CarInformationViewModel.FuelType = car.FuelType.ToString().ToLower();
                }
            }

            return(View(viewModel));
        }
예제 #3
0
 public ProfileDetail()
 {
     vm             = new ProfileDetailViewModel();
     BindingContext = vm;
     InitializeComponent();
 }
예제 #4
0
        public async Task <IActionResult> Index(ProfileDetailViewModel model)
        {
            var site = await GetCurrentSiteAsync();

            var program = await _siteService.GetProgramByIdAsync(model.User.ProgramId);

            if (site.RequirePostalCode && string.IsNullOrWhiteSpace(model.User.PostalCode))
            {
                ModelState.AddModelError("User.PostalCode", "The Zip Code field is required.");
            }
            if (program.AgeRequired && !model.User.Age.HasValue)
            {
                ModelState.AddModelError("User.Age", "The Age field is required.");
            }
            if (program.SchoolRequired && !model.User.EnteredSchoolId.HasValue)
            {
                if (!model.NewEnteredSchool && !model.User.SchoolId.HasValue)
                {
                    ModelState.AddModelError("User.SchoolId", "The School field is required.");
                }
                else if (model.NewEnteredSchool &&
                         string.IsNullOrWhiteSpace(model.User.EnteredSchoolName))
                {
                    ModelState.AddModelError("User.EnteredSchoolName", "The School Name field is required.");
                }
            }
            if (model.NewEnteredSchool && !model.SchoolDistrictId.HasValue &&
                ((program.AskSchool && !string.IsNullOrWhiteSpace(model.User.EnteredSchoolName)) ||
                 program.SchoolRequired))
            {
                ModelState.AddModelError("SchoolDistrictId", "The School District field is required.");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    bool hasSchool = false;
                    if (!program.AskAge)
                    {
                        model.User.Age = null;
                    }
                    if (program.AskSchool)
                    {
                        hasSchool = true;
                        if (model.NewEnteredSchool || model.User.EnteredSchoolId.HasValue)
                        {
                            model.User.SchoolId = null;
                        }
                        else
                        {
                            model.User.EnteredSchoolId   = null;
                            model.User.EnteredSchoolName = null;
                        }
                    }

                    await _userService.Update(model.User, hasSchool, model.SchoolDistrictId);

                    AlertSuccess = "Updated profile";
                    return(RedirectToAction("Index"));
                }
                catch (GraException gex)
                {
                    ShowAlertDanger("Unable to update profile: ", gex);
                }
            }
            var branchList = await _siteService.GetBranches(model.User.SystemId);

            if (model.User.BranchId < 1)
            {
                branchList = branchList.Prepend(new Branch()
                {
                    Id = -1
                });
            }
            var systemList = await _siteService.GetSystemList();

            var programList = await _siteService.GetProgramList();

            var programViewObject = _mapper.Map <List <ProgramViewModel> >(programList);

            model.BranchList        = new SelectList(branchList.ToList(), "Id", "Name");
            model.SystemList        = new SelectList(systemList.ToList(), "Id", "Name");
            model.ProgramList       = new SelectList(programList.ToList(), "Id", "Name");
            model.ProgramJson       = Newtonsoft.Json.JsonConvert.SerializeObject(programViewObject);
            model.RequirePostalCode = site.RequirePostalCode;
            model.ShowAge           = program.AskAge;
            model.ShowSchool        = program.AskSchool;

            var districtList = await _schoolService.GetDistrictsAsync();

            if (model.User.SchoolId.HasValue)
            {
                var schoolDetails = await _schoolService.GetSchoolDetailsAsync(model.User.SchoolId.Value);

                var typeList = await _schoolService.GetTypesAsync(schoolDetails.SchoolDisctrictId);

                model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name",
                                                          schoolDetails.SchoolDisctrictId);
                model.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name",
                                                      schoolDetails.SchoolTypeId);
                model.SchoolList = new SelectList(schoolDetails.Schools.ToList(), "Id", "Name");
            }
            else
            {
                model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name");
                if (model.SchoolDistrictId.HasValue)
                {
                    var typeList = await _schoolService.GetTypesAsync(model.SchoolDistrictId);

                    model.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name",
                                                          model.SchoolTypeId);
                    var schoolList = await _schoolService.GetSchoolsAsync(model.SchoolDistrictId,
                                                                          model.SchoolTypeId);

                    model.SchoolList = new SelectList(schoolList.ToList(), "Id", "Name");
                }
            }

            return(View(model));
        }
 public LoadProfileDetailsCommand(int accountId, ProfileDetailViewModel viewModel)
 {
     _accountId = accountId;
     _viewModel = viewModel;
 }