예제 #1
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var readCommand = new EntityIdentifierQuery <Guid, MemberUpdateModel>(User, Id);
            var updateModel = await Mediator.Send(readCommand);

            if (updateModel == null)
            {
                return(NotFound());
            }

            // only update input fields
            await TryUpdateModelAsync(
                updateModel,
                nameof(Entity),
                p => p.DisplayName,
                p => p.SortName,
                p => p.FamilyName,
                p => p.GivenName,
                p => p.JobTitle,
                p => p.Email,
                p => p.PhoneNumber
                );

            // compute sort name
            if (updateModel.SortName.IsNullOrWhiteSpace())
            {
                updateModel.SortName = ToSortName(updateModel);
            }

            if (IsMemberDisabled && updateModel.LockoutEnd == null)
            {
                updateModel.LockoutEnd = DateTimeOffset.Now.AddYears(100);
            }
            else if (!IsMemberDisabled && updateModel.LockoutEnd.HasValue)
            {
                updateModel.LockoutEnd = null;
            }

            var updateCommand = new EntityUpdateCommand <Guid, MemberUpdateModel, MemberReadModel>(User, Id, updateModel);
            var updateResult  = await Mediator.Send(updateCommand);

            // make sure correct user and tenant
            Membership.UserId   = updateResult.Id;
            Membership.TenantId = Tenant.Value.Id;

            var membershipCommand = new TenantMembershipCommand(User, Membership);
            var membershipResult  = await Mediator.Send(membershipCommand);

            ShowAlert("Successfully saved member");

            return(RedirectToPage("/Member/Edit", new { id = Id, tenant = TenantRoute }));
        }
예제 #2
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var command = new TenantMembershipCommand(User, Membership);
            var result  = await Mediator.Send(command);

            ShowAlert("Successfully saved membership");

            return(RedirectToPage("/Global/User/Membership", new { Id, TenantId }));
        }
예제 #3
0
        private async Task UpdateMembership(Core.Data.Entities.User user)
        {
            if (!Tenant.HasValue)
            {
                return;
            }

            var membershipQuery = new TenantMembershipQuery(User, Tenant.Value.Id, user.Id);
            var membership      = await Mediator.Send(membershipQuery);

            // make sure user is member
            membership.IsMember = true;

            var membershipCommand = new TenantMembershipCommand(User, membership);

            membership = await Mediator.Send(membershipCommand);
        }
예제 #4
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var readCommand = new EntityIdentifierQuery <Guid, MemberUpdateModel>(User, Id);
            var updateModel = await Mediator.Send(readCommand);

            if (updateModel == null)
            {
                return(NotFound());
            }

            // only update input fields
            await TryUpdateModelAsync(
                updateModel,
                nameof(Entity),
                p => p.DisplayName,
                p => p.Email,
                p => p.PhoneNumber
                );

            var updateCommand = new EntityUpdateCommand <Guid, MemberUpdateModel, MemberReadModel>(User, Id, updateModel);
            var updateResult  = await Mediator.Send(updateCommand);

            // make sure correct user and tenant
            Membership.UserName = updateResult.UserName;
            Membership.TenantId = Tenant.Value.Id;

            var membershipCommand = new TenantMembershipCommand(User, Membership);
            var membershipResult  = await Mediator.Send(membershipCommand);

            ShowAlert("Successfully saved member");

            return(RedirectToPage("/Member/Edit", new { id = Id, tenant = TenantRoute }));
        }