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

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

            var createResult = new CreateContactCommand(_companyUnitOfWork).Execute(parametersResults.ResultingObject);
            if(!createResult.Success)
            {
                return createResult.ConvertTo<string>();
            }

            _companyUnitOfWork.Commit();

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