/// <summary> /// </summary> /// <param name="id"></param> /// <returns></returns> public ClientCustomerDTO Get(int id) { var clientCustomerDTO = new ClientCustomerDTO(); var customer = _unitOfWork.Customers.Get(id); if (customer != null) { clientCustomerDTO = AutoMapper.Mapper.Map <ClientCustomerDTO>(customer); } return(clientCustomerDTO); }
/// <summary> /// Adds a new Customer to the database (Customers + CustomersHistory) /// </summary> /// <param name="customerDTO"></param> /// <returns>The added Customer</returns> public CustomerDTO Create(CustomerDTO customerDTO) { var clientId = _clientUserService.GetUserClientId(_currentUserId); // Customer var customer = AutoMapper.Mapper.Map <Customer>(customerDTO); customer.CreatedByUserId = _currentUserId; customer.CreatedDate = DateTime.UtcNow; customer.Status = Status.Active; _unitOfWork.Customers.Add(customer); // Have to call this here to get the new CustomerId _unitOfWork.SaveChanges(); customerDTO.Id = customer.Id; // ClientCustomer + ClientCustomerHistory var clientCustomerDTO = new ClientCustomerDTO() { ClientId = (int)clientId, CustomerId = customer.Id, }; _clientCustomerService.Create(clientCustomerDTO); // History var customerHistory = AutoMapper.Mapper.Map <CustomerHistory>(customer); customerHistory.CustomerId = customer.Id; customerHistory.ModifiedByUserId = _currentUserId; customerHistory.ModifiedDate = customer.CreatedDate; customerHistory.Status = Status.Active; _unitOfWork.CustomersHistory.Add(customerHistory); _unitOfWork.SaveChanges(); return(customerDTO); }
/// <summary> /// </summary> /// <param name="clientCustomerDTO"></param> /// <returns></returns> public ClientCustomerDTO Create(ClientCustomerDTO clientCustomerDTO) { // first, find if there is already a row with this clientId and customerId var clientCustomer = (from cc in _unitOfWork.ClientCustomers.GetAll() where cc.ClientId == clientCustomerDTO.ClientId && cc.CustomerId == clientCustomerDTO.CustomerId select cc ).SingleOrDefault(); // if it doesn't exist, create a new row if (clientCustomer != null) { return(this.Update(clientCustomer.Id, clientCustomerDTO)); } //otherwise re-enable the existing one clientCustomer = AutoMapper.Mapper.Map <ClientCustomer>(clientCustomerDTO); clientCustomer.CreatedByUserId = _currentUserId; if (clientCustomer.CreatedDate != null) { clientCustomer.CreatedDate = DateTime.UtcNow; } clientCustomer.Status = Status.Active; _unitOfWork.ClientCustomers.Add(clientCustomer); // History var clientCustomerHistory = AutoMapper.Mapper.Map <ClientCustomerHistory>(clientCustomer); clientCustomerHistory.ModifiedByUserId = _currentUserId; clientCustomerHistory.ModifiedDate = clientCustomer.CreatedDate; clientCustomerHistory.Status = Status.Active; _unitOfWork.ClientCustomersHistory.Add(clientCustomerHistory); _unitOfWork.SaveChanges(); return(clientCustomerDTO); }
/// <summary> /// </summary> /// <param name="id"></param> /// <param name="clientCustomerDTO"></param> /// <returns></returns> public ClientCustomerDTO Update(int id, ClientCustomerDTO clientCustomerDTO) { // get the existing clientCustomer var clientCustomer = _unitOfWork.ClientCustomers.Get(id); // merge the DTO AutoMapper.Mapper.Map(clientCustomerDTO, clientCustomer); _unitOfWork.ClientCustomers.Update(clientCustomer); // History var clientCustomerHistory = AutoMapper.Mapper.Map <ClientCustomerHistory>(clientCustomer); clientCustomerHistory.ModifiedByUserId = _currentUserId; clientCustomerHistory.ModifiedDate = DateTime.UtcNow; clientCustomerHistory.Status = clientCustomer.Status; _unitOfWork.ClientCustomersHistory.Add(clientCustomerHistory); _unitOfWork.SaveChanges(); return(clientCustomerDTO); }