예제 #1
0
 public BlocksGroup(Block.Roles role, int group, int version = -1, List <Block> blocks = null)
 {
     Role    = role;
     Group   = group;
     Version = version == -1 ? CurrentVersion : version;
     Blocks  = blocks == null ? new List <Block>() : blocks;
 }
        private void AddFromXML(XElement blocks, Block.Roles role)
        {
            Version = (int)blocks.Attribute("Version");
            int group = (int)blocks.Attribute("Group");

            foreach (var b in blocks.Elements("Block"))
            {
                Block block = new Block(b, role, group);
                blocksDict.Add(block.Position, block);
            }
        }
 private void AddFromBase64(string base64, Block.Roles role, int group)
 {
     Version = CurrentVersion;
     if (base64 == "")
     {
         return;
     }
     try
     {
         using (BinaryReader streamReader = new BinaryReader(new MemoryStream(Convert.FromBase64String(base64))))
         {
             Version = streamReader.ReadInt32();
             int blocks_count = streamReader.ReadInt32();
             for (int i = 0; i < blocks_count; i++)
             {
                 Block b = new Block(streamReader, role, group);
                 blocksDict.Add(b.Position, b);
             }
         }
     }
     catch { }
 }
 public string ToBase64(Block.Roles role)
 {
     return(String.Join("#", blocksGroups.Where(i => i.Role == role).Select(i => i.ToBase64())));
 }