示例#1
0
        public void CreateGloballyUniqueValue()
        {
            var value = new GloballyUniqueValue("asset", "utilitybelt")
            {
                DistributionKey = 5797866
            };
            var azureGloballyUniqueValue = new AzureGloballyUniqueValue();

            try
            {
                azureGloballyUniqueValue.DeleteGloballyUniqueValue(value.PartitionKey, value.RowKey);
                azureGloballyUniqueValue.AddGloballyUniqueValue(value.PartitionKey, value.RowKey, value.DistributionKey);
            }
            catch (Exception)
            {
                //TODO: Log to log provider.
                throw;
            }
        }
示例#2
0
        /// <summary>
        /// Adds the globally unique value.
        /// </summary>
        /// <param name="dataSetName">Name of the data set.</param>
        /// <param name="uniqueValue">The unique value.</param>
        /// <param name="distributionKey">The distribution key.</param>
        /// <exception cref="System.InvalidOperationException">The provided unique value already exist</exception>
        public void AddGloballyUniqueValue(string dataSetName, string uniqueValue, long distributionKey)
        {
            var globallyUniqueValue = GetGloballyUniqueValue(dataSetName, uniqueValue, true);

            if (globallyUniqueValue == null)
            {
                globallyUniqueValue = new GloballyUniqueValue
                {
                    DataSetName     = dataSetName,
                    UniqueValue     = uniqueValue,
                    DistributionKey = distributionKey
                };
                _serviceContext.AddObject(GloballyUniqueValueContext.GloballyUniqueValueTable, globallyUniqueValue);
            }
            else
            {
                throw new InvalidOperationException("The provided unique value already exist");
            }

            _serviceContext.SaveChanges();

            AzureCache.Put(dataSetName + "-" + uniqueValue, globallyUniqueValue);
        }