Beispiel #1
0
        public async Task <Customer> CreateAsync(Customer customer)
        {
            var customerRecord = _mapper.Map <DataProvider.Models.Customer>(customer);

            customerRecord.Number = await _sequenceDataProvider.GetNextCustomerNumberAsync();

            customerRecord.Created    = DateTimeOffset.UtcNow.UtcDateTime;
            customerRecord.SearchName = DataProvider.Models.CustomerRecord.CalculateSearchName(customer.Name);
            // customer name is already uppercased by the frontend

            await HydratePostalCodeAsync(customer, customerRecord);

            if (customer.Memo != null)
            {
                var memo = new DataProvider.Models.Memo()
                {
                    Text = customer.Memo
                };
                customerRecord.Memo = memo;
                _context.Memos.Add(memo);
            }

            _context.Customers.Add(customerRecord);
            await _context.SaveChangesAsync();

            return(_mapper.Map <Customer>(customerRecord));
        }
Beispiel #2
0
        public async Task <Customer> UpdateAsync(Customer customer)
        {
            var customerRecord = await FindByNumberAsync(customer.Id);

            var memoRecord = customerRecord.Memo;

            _mapper.Map(customer, customerRecord);
            customerRecord.SearchName = DataProvider.Models.CustomerRecord.CalculateSearchName(customer.Name);
            // customer name is already uppercased by the frontend

            await HydratePostalCodeAsync(customer, customerRecord);

            ReplaceEmptyStringWithNull(customer, customerRecord);

            if (customer.Memo != null)
            {
                if (memoRecord != null)  // update existing memo
                {
                    memoRecord.Text = customer.Memo;
                }
                else  // create new memo
                {
                    var memo = new DataProvider.Models.Memo()
                    {
                        Text = customer.Memo
                    };
                    customerRecord.Memo = memo;
                    _context.Memos.Add(memo);
                }
            }
            else if (memoRecord != null)  // delete old memo
            {
                _context.Memos.Remove(memoRecord);
            }

            _context.Customers.Update(customerRecord);
            await _context.SaveChangesAsync();

            return(_mapper.Map <Customer>(customerRecord));
        }