public async System.Threading.Tasks.Task <OperationResult <Company> > CreateCompany(Company company)
 {
     return(await System.Threading.Tasks.Task.Factory.StartNew <OperationResult <Company> >(() =>
     {
         OperationResult <Company> result = new OperationResult <Company>();
         try
         {
             company.OwnerId = CurrentUser.Id;
             Company created = CompaniesRepository.CreateOrUpdate(company);
             if (created.Id > 0)
             {
                 UserStore.AddToRoleAsync(CurrentUser, RoleNames.CompanyOwner);
                 result.SingleResult = created;
                 result.Result = true;
             }
         }
         catch (Exception ex)
         {
             LoggingService.Log(ex);
         }
         return result;
     }));
 }