Esempio n. 1
0
        /// <summary>
        /// 更新租户信息
        /// </summary>
        /// <param name="input">租户更新信息</param>
        public async Task UpdateTenant(EditTenantInput input)
        {
            var tenant = await TenantManager.GetByIdAsync(input.TenantId);

            input.MapTo(tenant);
            CheckErrors(await TenantManager.UpdateAsync(tenant));
        }
Esempio n. 2
0
        public async Task <EditTenantPayload> EditTenantAsync(
            EditTenantInput inputTenant,
            [ScopedService] TenantFileContext context,
            CancellationToken cancellationToken)
        {
            // var (nameInput, phoneInput, residenceInput, residenceIdInput) = inputTenant;

            Tenant?tenant = await context.Tenants.FirstOrDefaultAsync(x => x.Id == inputTenant.TenantId);

            Phone phone = await context.Phones.FirstOrDefaultAsync(x => x.PhoneNumber == inputTenant.PhoneNumber) ?? new Phone()
            {
                PhoneNumber = inputTenant.PhoneNumber
            };

            // If it doesn't exist, create a new tenant number
            if (tenant == null)
            {
                tenant = new Tenant
                {
                    Name   = inputTenant.Name,
                    Phones = new List <Phone> {
                        phone
                    }
                };
            }
            else
            {
                tenant.Name = inputTenant.Name;
            }
            if (inputTenant.CurrentResidence != null)
            {
                var(line1, line2, line3, line4, city, state, postalCode) = inputTenant.CurrentResidence !.AddressInput;
                tenant.CurrentResidence = new Residence()
                {
                    Address = new Address()
                    {
                        Line1      = line1,
                        Line2      = line2,
                        Line3      = line3,
                        Line4      = line4,
                        City       = city,
                        State      = state,
                        PostalCode = postalCode
                    },
                    PropertyId = inputTenant.CurrentResidence.PropertyId
                };
            }
            else
            {
                tenant.ResidenceId = inputTenant.ResidenceId !;
            }

            await context.SaveChangesAsync(cancellationToken);

            return(new EditTenantPayload(tenant));
        }