示例#1
0
        private void ModifyTile(AppTile aTile)
        {
            var t = aTile.ToTile();
            var queryLogicList = this.GenerateQueryLogicFromAppTile(aTile);

            switch (aTile.Status)
            {
            case Enums.ChangeStatus.Add:
                t.TileQueryLogics = _tileQueryLogicRepository.AddBatchTileQueryLogics(queryLogicList);
                _tileRepository.AddTile(t);
                break;

            case Enums.ChangeStatus.Change:
                var logics = _tileQueryLogicRepository.AddBatchTileQueryLogics(queryLogicList);
                t.TileQueryLogics = _tileQueryLogicRepository.ModifyTileQueryLogic(aTile.Id.Value, logics);

                _tileRepository.ModifyTile(t);
                break;

            case Enums.ChangeStatus.Delete:
                _tileRepository.DeleteTile(t);
                break;

            default: throw new ArgumentException("The tile status shall be in Add, Change and Delete");
            }
        }