예제 #1
0
        public async Task <IActionResult> Login([FromForm] LoginViewModel model, string returnUrl = null)
        {
            MessageBase result = new MessageBase();

            //ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                AdminMemberDto dto = _adminMemberService.Find(model.UserName, model.Password);
                if (dto.Id > 0)
                {
                    var user = new ClaimsPrincipal(new ClaimsIdentity(new[]
                    {
                        new Claim(ClaimTypes.NameIdentifier, dto.Id.ToString()),
                        new Claim(ClaimTypes.Name, dto.UserName),
                        new Claim("Nickname", dto.Nickname),
                        new Claim(ClaimTypes.Role, dto.Authority.ToString())
                    }, CookieAuthenticationDefaults.AuthenticationScheme));
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, user, new AuthenticationProperties
                    {
                        IsPersistent = true,
                        ExpiresUtc   = DateTimeOffset.Now.Add(TimeSpan.FromDays(180))
                    });

                    return(Json(result));
                }
                else
                {
                    result.Status = "false";
                    return(Json(result));
                }
            }
            return(View());
        }
예제 #2
0
        public async Task <ApiResult <List <AdminMemberDto> > > UpdateMemberForAdmin(AdminMemberDto dto)
        {
            try
            {
                var member = await _context.Members.FirstOrDefaultAsync(m => m.Id == dto.Id);

                // TODO: update identity account username before updating the rest of member information
                await UpdateMemberPropertiesForAdmin(dto, member);

                // detach all positions to prevent duplicate entity tracking error when saving
                foreach (var position in dto.Positions)
                {
                    _context.Entry(position).State = EntityState.Detached;
                }

                await _context.SaveChangesAsync();

                var result = await GetMembers <AdminMemberDto>();

                return(result);
            }
            catch (Exception ex)
            {
                _logger.LogError("An issue occured when trying to update a member: \n" + ex.Message + "\n\nStack Trace: \n" + ex.StackTrace);
                return(new ApiResult <List <AdminMemberDto> >
                {
                    Successful = false,
                    Error = "An issue occured when trying to update a member."
                });
            }
        }
예제 #3
0
        public async Task <ApiResult <List <AdminMemberDto> > > UpdateMember(AdminMemberDto dto)
        {
            var response = await _idpClient.PostAsJsonAsync($"{Constants.ControllerNames.Teams}/{Constants.Routes.Update}", dto);

            response = await _apiClient.PostAsJsonAsync($"{Constants.ControllerNames.Teams}/{Constants.Routes.Update}", dto);

            return(await response.Content.ReadFromJsonAsync <ApiResult <List <AdminMemberDto> > >());
        }
예제 #4
0
            public static AdminMemberDto GenerateAdminMemberDto(int id)
            {
                var dto = new AdminMemberDto
                {
                    Id                     = id,
                    Email                  = $"*****@*****.**",
                    FirstName              = $"testfirstupdated",
                    LastName               = $"testlastupdated",
                    Address                = "testAddress",
                    City                   = "testcity",
                    PostalCode             = "T1R1L9",
                    MainPhone              = "5555555555",
                    AlternatePhone1        = "5555555555",
                    AlternatePhone2        = "5555555555",
                    ApprovalStatus         = ApprovalStatus.Pending,
                    Birthdate              = DateTime.Now,
                    EmergencyFullName      = "testemergency",
                    EmergencyPhone1        = "5555555555",
                    EmergencyPhone2        = "5555555555",
                    EmergencyRelationship  = "testrelationship",
                    FoodSafe               = false,
                    FirstAidCpr            = false,
                    OtherCertificates      = "TestOther",
                    EducationTraining      = "testeducation",
                    SkillsInterestsHobbies = "testskills",
                    Experience             = "testexperience",
                    OtherBoards            = "otherboards",
                    References             = new List <ReferenceDto>()
                    {
                        new ReferenceDto()
                        {
                            Name         = "Steve",
                            Phone        = "4034056785",
                            Relationship = "Instructor",
                            Occupation   = "Professor"
                        }
                    },
                    WorkExperiences = new List <WorkExperienceDto>()
                    {
                        new WorkExperienceDto()
                        {
                            EmployerName    = "testemployer",
                            EmployerAddress = "testaddress",
                            StartDate       = DateTime.Now,
                            EndDate         = DateTime.Now.AddDays(20),
                            EmployerPhone   = "5555555555",
                            ContactPerson   = "testcontact",
                            PositionWorked  = "testposition"
                        }
                    }
                };

                return(dto);
            }
예제 #5
0
        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <param name="password">密码</param>
        /// <returns></returns>
        public AdminMemberDto Find(string userName, string password)
        {
            password = System.DEncryptHelper.Encrypt3DES(password);
            var            member = this.AdminMemberRepository.Find(p => p.UserName == userName && p.Password == password && p.Status > 0);
            AdminMemberDto dto    = new AdminMemberDto()
            {
                Id        = member.Id,
                Authority = member.Authority.GetValueOrDefault(),
                UserName  = member.UserName,
                Nickname  = member.Nickname
            };

            return(dto);
        }
예제 #6
0
        private async Task UpdateMemberPropertiesForAdmin(AdminMemberDto dto, MemberProfile member)
        {
            var tempMember = _mapper.Map <MemberProfile>(dto);

            member.Email                    = tempMember.Email;
            member.FirstName                = tempMember.FirstName;
            member.LastName                 = tempMember.LastName;
            member.Address                  = tempMember.Address;
            member.City                     = tempMember.City;
            member.PostalCode               = tempMember.PostalCode;
            member.MainPhone                = tempMember.MainPhone;
            member.AlternatePhone1          = tempMember.AlternatePhone1;
            member.AlternatePhone2          = tempMember.AlternatePhone2;
            member.Birthdate                = tempMember.Birthdate;
            member.EmergencyFullName        = tempMember.EmergencyFullName;
            member.EmergencyPhone1          = tempMember.EmergencyPhone1;
            member.EmergencyPhone2          = tempMember.EmergencyPhone2;
            member.EmergencyRelationship    = tempMember.EmergencyRelationship;
            member.FoodSafe                 = tempMember.FoodSafe;
            member.FoodSafeExpiry           = tempMember.FoodSafeExpiry;
            member.FirstAidCprLevel         = tempMember.FirstAidCprLevel;
            member.FirstAidCpr              = tempMember.FirstAidCpr;
            member.FirstAidCprExpiry        = tempMember.FirstAidCprExpiry;
            member.OtherCertificates        = tempMember.OtherCertificates;
            member.EducationTraining        = tempMember.EducationTraining;
            member.SkillsInterestsHobbies   = tempMember.SkillsInterestsHobbies;
            member.Experience               = tempMember.Experience;
            member.OtherBoards              = tempMember.OtherBoards;
            member.VolunteerConfidentiality = tempMember.VolunteerConfidentiality;
            member.VolunteerEthics          = tempMember.VolunteerEthics;
            member.CriminalRecordCheck      = tempMember.CriminalRecordCheck;
            member.DrivingAbstract          = tempMember.DrivingAbstract;
            member.ConfirmationOfProfessionalDesignation = tempMember.ConfirmationOfProfessionalDesignation;
            member.ChildWelfareCheck = tempMember.ChildWelfareCheck;
            member.WorkExperiences   = tempMember.WorkExperiences;
            if (member.ApprovalStatus == ApprovalStatus.Pending)
            {
                var appAlert = await _context.ApplicationAlerts.FirstOrDefaultAsync(m => m.Member == member);

                appAlert.AddressedBy  = "";
                member.ApprovalStatus = tempMember.ApprovalStatus;
            }
            member.Availabilities = tempMember.Availabilities;
            member.Positions      = tempMember.Positions;
        }
예제 #7
0
 protected async Task UpdateStatus(AdminMemberDto member, ApprovalStatus status)
 {
     member.ApprovalStatus = status;
     //alert.AddressedBy =
     await _memberService.UpdateMember(member);
 }
예제 #8
0
 public async Task <IActionResult> UpdateMemberForAdmin([FromBody] AdminMemberDto dto)
 {
     return(new ObjectResult(await _teamService.UpdateMemberForAdmin(dto)));
 }