public async Task <IActionResult> Create([FromBody] CustomerCreateUpdateDto customerDTO) { try { if (customerDTO == null) { return(BadRequest()); } var customerDomain = this.mapper.Map <Customer>(customerDTO); await this.customerRepository.CreateAsync(customerDomain); return(Ok()); } catch (Exception ex) { this.logger.LogError(ex.Message); return(StatusCode(500)); } }
public IActionResult CreateUpdateCustomer(int?customerId, CustomerCreateUpdateDto customerCreateUpdateDto) { Customer customer = null; if (customerCreateUpdateDto == null) { return(BadRequest()); } if (customerId != null) { customer = _customerRepo.GetCustomer(customerId); if (customer == null) { return(StatusCode(404)); } } else { customer = new Customer(); } List <Order> newOrders = new List <Order>(); if (customerCreateUpdateDto.Orders != null) { foreach (Order order in customerCreateUpdateDto.Orders) { if (order.Id > 0) { Order existingOrder = _orderRepo.GetOrder(order.Id); newOrders.Add(existingOrder); } else { newOrders.Add(order); } } customer.Orders = newOrders; } if (customerCreateUpdateDto.Agent != null) { if (customerCreateUpdateDto.Agent.Id > 0) { customer.Agent = _agentRepo.GetAgent(customerCreateUpdateDto.Agent.Id); } else { customer.Agent = customerCreateUpdateDto.Agent; } } customer.Grade = customerCreateUpdateDto.Grade; customer.City = customerCreateUpdateDto.City; customer.Name = customerCreateUpdateDto.Name; customer.PhoneNumber = customerCreateUpdateDto.PhoneNumber; customer.WorkingArea = customerCreateUpdateDto.WorkingArea; if (customer.Id > 0 ? _customerRepo.UpdateCustomer(customer) : _customerRepo.CreateCustomer(customer)) { return(Ok(customer)); } return(StatusCode(500)); }
public async Task <IActionResult> Update([FromRoute][Range(1, int.MaxValue)][Required] int id, [FromBody] CustomerCreateUpdateDto customerDTO) { try { var custumers = await this.customerRepository.FindAsync(x => x.Id == id); var customer = custumers.FirstOrDefault(); if (customer == null) { return(NotFound()); } customer = this.mapper.Map <Customer>(customerDTO); await this.customerRepository.UpdateAsync(customer); return(Ok()); } catch (Exception ex) { this.logger.LogError(ex.Message); return(StatusCode(500)); } }