public async Task <T> Create <T>(OrganizationCustomerInput model)
            where T : OrganizationCustomerOutput
        {
            var entity = new OrganizationCustomer()
            {
                Updated     = DateTimeOffset.UtcNow,
                UpdatedById = _userInfo.UserId,
                Created     = DateTimeOffset.UtcNow,
                CreatedById = _userInfo.UserId
            };

            entity.InjectFrom(model);

            await Repository.InsertAsync(entity, true);

            var output = await GetById <T>(model.CustomerId, model.OrganizationId);

            await Task.Run(() =>
            {
                RaiseEvent(new OrganizationCustomerCreatedEvent
                {
                    OrganizationCustomer = output
                });
            });

            return(output);
        }
 public Task <T> Update <T>(OrganizationCustomerInput model) where T : OrganizationCustomerOutput
 {
     throw new NotImplementedException();
 }
 public Task <T> Update <T>(IOrganizationAccountManager am, OrganizationCustomerInput input) where T : OrganizationCustomerOutput
 {
     throw new NotImplementedException();
 }
 public Task <T> Update <T>(IAgencyOwner ao, OrganizationCustomerInput input) where T : OrganizationCustomerOutput
 {
     throw new NotImplementedException();
 }
 public Task <T> Create <T>(IAgencyOwner ao, OrganizationCustomerInput input)
     where T : OrganizationCustomerOutput
 {
     return(Create <T>(input));
 }
 public Task <T> GetById <T>(OrganizationCustomerInput input) where T : OrganizationCustomerOutput
 {
     return(GetById <T>(input.CustomerId, input.OrganizationId));
 }