Exemplo n.º 1
0
        /// <summary>
        ///     Updates the user.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="replace">if set to <c>true</c> [replace].</param>
        /// <returns>Task{OperationResult}.</returns>
        public async Task <OperationResult> UpdateUser(User user, bool replace)
        {
            //replace should be set to false only for simple changes (nickname and image)
            if (!replace)
            {
                var updatingUser = user.ToAzureModel();
                return(await _azureManager.UpsertEntityAsync(updatingUser, false));
            }

            var userRelatedEntities =
                await _azureManager.GetEntitiesAsync(new TableQuery <UserAzure>().Where(user.Id.GetFilterById()));

            var userAzure = userRelatedEntities.FirstOrDefault(u => u.IsUserEntity);
            var newUser   = user.ToAzureModel();

            newUser.CopyToTableEntity(userAzure);

            var entitiesToDelete = userRelatedEntities.Where(m => m.IsPersonQualityLink).ToList();
            var entitiesToAdd    = GeneratePersonQualityLinks(user);
            var entitiesToUpdate = AzureTableExtensions.FilterUpdatableLinks(entitiesToAdd, entitiesToDelete);

            entitiesToUpdate.Add(userAzure);

            return
                (await _azureManager.UpdateEntityBatchAsync(entitiesToUpdate, entitiesToAdd, entitiesToDelete));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Updates the specified kind action.
        /// </summary>
        /// <param name="kindAction">The kind action.</param>
        /// <returns></returns>
        public async Task <OperationResult> UpdateLikes(KindAction kindAction)
        {
            var updatedKindAction = kindAction.ToAzureModel();

            return(await _azureManager.UpsertEntityAsync(updatedKindAction, false));
        }
Exemplo n.º 3
0
        public async Task <OperationResult> UpsertAppCounters(AppCounters appCounters)
        {
            var azureModel = appCounters.ToAzureModel();

            return(await _azureManager.UpsertEntityAsync(azureModel, false));
        }