Beispiel #1
0
        public async Task <AdminConfigResponse> Insert(AdminConfigResponse entity)
        {
            string Id          = Guid.NewGuid().ToString();
            var    adminConfig = new AdminConfiguration
            {
                RowKey          = Id,
                PartitionKey    = PartitionKey.AdminConfiguration,
                ConfigId        = Id,
                FlagName        = entity.FlagName,
                FlagDescription = entity.FlagDescription,
                FlagValue       = entity.FlagValue.ToString(),
            };

            await _storage.Insert <AdminConfiguration>(TableStorageEntityType.AdminConfiguration, adminConfig);

            if (entity.FlagValue == Allow.AllOff && entity.UserId != null)
            {
                var chunkedList = this.ChunkBy(entity.UserId, 100).Select(e => string.Join(",", e)).ToList();

                foreach (var chunk in chunkedList)
                {
                    var user = new AllowExtenedUser
                    {
                        RowKey       = Guid.NewGuid().ToString(),
                        PartitionKey = Id,
                        UserId       = chunk
                    };
                    await _storage.Insert <AllowExtenedUser>(TableStorageEntityType.AllowExtenedUser, user);
                }
            }
            entity.ConfigId = new Guid(Id);
            return(entity);
        }
Beispiel #2
0
        public async Task <AdminConfigResponse> Upsert(AdminConfigResponse entity)
        {
            var adminConfig = new AdminConfiguration
            {
                RowKey          = entity.ConfigId.ToString(),
                PartitionKey    = PartitionKey.AdminConfiguration,
                ConfigId        = entity.ConfigId.ToString(),
                FlagName        = entity.FlagName,
                FlagDescription = entity.FlagDescription,
                FlagValue       = entity.FlagValue.ToString(),
            };

            await _storage.Upsert <AdminConfiguration>(TableStorageEntityType.AdminConfiguration, adminConfig);

            var existingData = await _storage.GetAll <AllowExtenedUser>(TableStorageEntityType.AllowExtenedUser, entity.ConfigId.ToString());

            foreach (var data in existingData)
            {
                await _storage.Delete <AllowExtenedUser>(TableStorageEntityType.AllowExtenedUser, data);
            }

            if (entity.FlagValue == Allow.AllOff && entity.UserId != null)
            {
                var chunkedList = this.ChunkBy(entity.UserId, 100).Select(e => string.Join(",", e)).ToList();

                foreach (var chunk in chunkedList)
                {
                    var user = new AllowExtenedUser
                    {
                        RowKey       = Guid.NewGuid().ToString(),
                        PartitionKey = entity.ConfigId.ToString(),
                        UserId       = chunk
                    };
                    await _storage.Upsert <AllowExtenedUser>(TableStorageEntityType.AllowExtenedUser, user);
                }
            }
            return(entity);
        }