コード例 #1
0
        public async Task <ActionResult> UpdateCustomerDevice(CustomerDeviceFormViewModel viewModel)
        {
            if (viewModel == null)
            {
                throw new ArgumentNullException(nameof(viewModel));
            }
            if (viewModel.CustomerId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(viewModel.CustomerId));
            }
            if (viewModel.Device.Id <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(viewModel.Device.Id));
            }
            if (string.IsNullOrWhiteSpace(viewModel.Device.Name))
            {
                throw new ArgumentException("Value cannot be null or whitespace.", nameof(viewModel.Device.Name));
            }

            // Retrieve customer
            var customer = this.context.Customers.FirstOrDefault(c => c.Id == viewModel.CustomerId);

            if (customer == null)
            {
                throw new ArgumentOutOfRangeException(nameof(viewModel.CustomerId));
            }

            // Retrieve required data
            var deviceId            = viewModel.Device.Id;
            var deviceName          = viewModel.Device.Name;
            var deviceManufacturer  = viewModel.Device.Manufacturer;
            var deviceCommisionDate = viewModel.Device.CommissionDate;

            // Update device for customer
            await this.customerService.EditCustomerDeviceAsync(
                customer,
                deviceId,
                deviceName,
                deviceManufacturer,
                deviceCommisionDate);

            return(this.RedirectToAction("Details", new { id = customer.Id }));
        }
コード例 #2
0
        public async Task <ActionResult> CreateCustomerDevice(CustomerDeviceFormViewModel viewModel)
        {
            if (viewModel == null)
            {
                throw new ArgumentNullException(nameof(viewModel));
            }
            if (viewModel.CustomerId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(viewModel.CustomerId));
            }
            if (viewModel.Device == null)
            {
                throw new ArgumentNullException(nameof(viewModel.Device));
            }

            // Retrieve customer
            var customer = this.context.Customers.FirstOrDefault(c => c.Id == viewModel.CustomerId);

            if (customer == null)
            {
                throw new ArgumentOutOfRangeException(nameof(viewModel.CustomerId));
            }

            // Retrieve required data
            var deviceName          = viewModel.Device.Name;
            var deviceManufacturer  = viewModel.Device.Manufacturer;
            var deviceCommisionDate = viewModel.Device.CommissionDate;

            // Create device for customer
            await this.customerService.CreateNewCustomerDeviceAsync(
                customer,
                deviceName,
                deviceManufacturer,
                deviceCommisionDate);

            // Display edited customer details view
            return(this.RedirectToAction("Details", new { id = customer.Id }));
        }