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; })); }