public IResult<string> CreateCompany(ICreateCompanyParameters parameters)
        {
            if(parameters == null) { throw new ArgumentNullException("parameters"); }

            var parsedParametersResult = parameters.ToParsedParameters();
            if(!parsedParametersResult.Success)
            {
                return parsedParametersResult.ConvertTo<string>();
            }

            var createResult = new CreateCompanyCommand(_companyUnitOfWork).Execute(_timeStamper.CurrentTimeStamp, parsedParametersResult.ResultingObject);
            if(!createResult.Success)
            {
                return createResult.ConvertTo<string>();
            }

            _companyUnitOfWork.Commit();

            var companyKey = createResult.ResultingObject.ToCompanyKey();
            return SyncParameters.Using(new SuccessResult<string>(companyKey), companyKey);
        }