Esempio n. 1
0
        public async Task <Tuple <DomainObjects.User, string> > Add(DomainObjects.User user)
        {
            var client    = GetClient();
            var container = client.GetContainer(_options.DatabaseId, _options.ContainerId);

            var result = await container.CreateItemAsync(user, new PartitionKey(user.Id.ToString()));

            return(Tuple.Create(result.Resource, result.ETag));
        }
Esempio n. 2
0
        public async Task <Tuple <DomainObjects.User, string> > Save(DomainObjects.User user, string etag)
        {
            var client    = GetClient();
            var container = client.GetContainer(_options.DatabaseId, _options.ContainerId);

            try
            {
                var opts = new ItemRequestOptions {
                    IfMatchEtag = etag
                };

                var result = await container.ReplaceItemAsync(user, user.Id.ToString(), new PartitionKey(user.Id.ToString()), opts);

                return(Tuple.Create(result.Resource, result.ETag));
            }
            catch (CosmosException ex) when(ex.StatusCode == HttpStatusCode.PreconditionFailed || ex.StatusCode == HttpStatusCode.NotFound)
            {
                return(null);
            }
        }