public Board Convert(BoardModel boardModel)
        {
            var stickers = new List <Sticker>();

            boardModel.Content ??= new BoardContentModel();
            boardModel.Content.Stickers ??= new List <StickerModel>();
            foreach (var stickerModel in boardModel.Content.Stickers)
            {
                var stickerContent = new StickerContent(stickerModel.Content.Text, stickerModel.Content.TimeTable);
                var sticker        = new Sticker(stickerContent);
                stickers.Add(sticker);
            }
            var boardContent = new BoardContent(stickers);

            IAccessParameters accessParameters;

            switch (boardModel.AccessType)
            {
            case "Public":
                accessParameters = new PublicAccessParameters();
                break;

            case "Private":
                var accessed = new List <Guid>();

                foreach (var login in boardModel.GetLoginsOfAccessedUsers())
                {
                    if (userService.TryGetUser(login, out var user))
                    {
                        accessed.Add(user.Id);
                    }
                }
                accessParameters = new PrivateAccessParameters(accessed);
                break;

            default:
                throw new NotImplementedException();
            }

            return(new Board(boardContent, accessParameters));
        }
示例#2
0
 public Sticker(StickerContent content)
 {
     Content = content;
 }