public coreModel.FulfillmentCenter UpsertFulfillmentCenter(coreModel.FulfillmentCenter center)
        {
            if (center == null)
                throw new ArgumentNullException("center");

            coreModel.FulfillmentCenter retVal = null;
            using (var repository = _repositoryFactory())
            {
                var sourceEntry = center.ToDataModel();
                var targetEntry = repository.FulfillmentCenters.FirstOrDefault(x => x.Id == center.Id);
                if (targetEntry == null)
                {
                    repository.Add(sourceEntry);
                }
                else
                {
                    sourceEntry.Patch(targetEntry);
                }

                CommitChanges(repository);
                retVal = repository.FulfillmentCenters.First(x => x.Id == sourceEntry.Id).ToCoreModel();
            }
            return retVal;
        }
		public coreModel.SeoInfo UpsertSeo(coreModel.SeoInfo seo)
		{
			if (seo == null)
				throw new ArgumentNullException("seo");

			coreModel.SeoInfo retVal = null;
			using (var repository = _repositoryFactory())
			{
				var sourceEntry = seo.ToDataModel();
				var targetEntry = repository.SeoUrlKeywords.FirstOrDefault(x => x.Id == seo.Id || (x.ObjectId == sourceEntry.ObjectId && x.ObjectType == sourceEntry.ObjectType));
				if (targetEntry == null)
				{
					repository.Add(sourceEntry);
				}
				else
				{
					sourceEntry.Patch(targetEntry);
				}
				CommitChanges(repository);
				seo.Id = sourceEntry.Id ?? targetEntry.Id;
				retVal = repository.SeoUrlKeywords.First(x => x.Id == seo.Id).ToCoreModel();
			}
			return retVal;
		}