private Client AddNewClient(ClientForTransactionDto clientDto)
        {
            var client = new Client()
            {
                FullName   = clientDto.Name,
                Address    = clientDto.Address,
                CreatedBy  = _appSession.GetUserName(),
                BranchId   = BranchHelper.Id,
                ClientType = ClientType.Normal
            };

            _unitOfWork.GenericRepository <Client>().Insert(client);
            if (!string.IsNullOrWhiteSpace(clientDto.Phone))
            {
                var clientPhone = new ClientPhone()
                {
                    Phone     = clientDto.Phone,
                    Client    = client,
                    CreatedBy = _appSession.GetUserName()
                };

                _unitOfWork.GenericRepository <ClientPhone>().Insert(clientPhone);
            }

            return(client);
        }
 private Client GetClient(ClientForTransactionDto client)
 {
     if (client.Id != 0)
     {
         if (_unitOfWork.GenericRepository <Client>().GetAll().Any(x => x.Id == client.Id))
         {
             return(UpdateClient(client));
         }
     }
     return(AddNewClient(client));
 }
        private Client UpdateClient(ClientForTransactionDto clientDto)
        {
            var client = _unitOfWork.GenericRepository <Client>().GetById(clientDto.Id);

            client.Address = clientDto.Address;
            if (!client.ClientPhones.Any(c => c.Phone == clientDto.Phone))
            {
                if (!string.IsNullOrWhiteSpace(clientDto.Phone))
                {
                    var clientPhone = new ClientPhone()
                    {
                        Phone     = clientDto.Phone,
                        ClientId  = clientDto.Id,
                        CreatedBy = _appSession.GetUserName()
                    };

                    _unitOfWork.GenericRepository <ClientPhone>().Insert(clientPhone);
                }
            }

            _unitOfWork.GenericRepository <Client>().Update(client);

            return(client);
        }