public async Task Update(
            string projectId,
            IKvpItem kvp,
            CancellationToken cancellationToken = default(CancellationToken)
            )
        {
            if (kvp == null)
            {
                throw new ArgumentException("kvp can't be null");
            }
            var kvpItem = KvpItem.FromIKvpItem(kvp);

            using (var db = _contextFactory.Create())
            {
                bool tracking = db.ChangeTracker.Entries <KvpItem>().Any(x => x.Entity.Id == kvpItem.Id);
                if (!tracking)
                {
                    db.KvpItems.Update(kvpItem);
                }

                var rowsAffected =
                    await db.SaveChangesAsync(cancellationToken)
                    .ConfigureAwait(false);
            }
        }
        public async Task Update(
            string projectId,
            IKvpItem kvp,
            CancellationToken cancellationToken = default(CancellationToken)
            )
        {
            var item = KvpItem.FromIKvpItem(kvp);

            await _kvpCommands.UpdateAsync(
                projectId,
                item.Id,
                item,
                cancellationToken).ConfigureAwait(false);
        }
Esempio n. 3
0
        public async Task CreateOrUpdate(string siteId, string userId, string key, string value)
        {
            if (string.IsNullOrWhiteSpace(siteId))
            {
                throw new ArgumentException("siteid must be provided");
            }
            if (string.IsNullOrWhiteSpace(userId))
            {
                throw new ArgumentException("userId must be provided");
            }
            if (string.IsNullOrWhiteSpace(key))
            {
                throw new ArgumentException("key must be provided");
            }
            //if (string.IsNullOrWhiteSpace(value)) throw new ArgumentException("value must be provided");

            var kvpList = await _kvpStorage.FetchById(
                siteId, //projectId
                "*",    // featureId
                siteId, //setId
                userId  // subSetId
                ).ConfigureAwait(false);

            var foundKvp = kvpList.Where(x => x.Key == key).FirstOrDefault();

            if (foundKvp != null)
            {
                foundKvp.Value       = value;
                foundKvp.ModifiedUtc = DateTime.UtcNow;
                await _kvpStorage.Update(
                    siteId,
                    foundKvp).ConfigureAwait(false);
            }
            else
            {
                var kvp = new KvpItem();
                kvp.Key      = key;
                kvp.Value    = value;
                kvp.SetId    = siteId;
                kvp.SubSetId = userId;

                await _kvpStorage.Create(
                    siteId,
                    kvp).ConfigureAwait(false);
            }
        }
        public async Task Create(
            string projectId,
            IKvpItem kvp,
            CancellationToken cancellationToken = default(CancellationToken)
            )
        {
            if (kvp == null)
            {
                throw new ArgumentException("kvp can't be null");
            }
            var kvpItem = KvpItem.FromIKvpItem(kvp);

            _db.KvpItems.Add(kvpItem);

            var rowsAffected =
                await _db.SaveChangesAsync(cancellationToken)
                .ConfigureAwait(false);
        }