//Write your own contracts here. Currently compiles using solc v0.4.15+commit.bbb8e64f. pragma solidity ^0.4.18; contract MusicLibrary { enum Genre {RAP,POP,ROCK} struct MusicObject { uint id; string title; string url; Genre genre; uint duration; bool banned; } mapping (uint => MusicObject) listOfData; uint listOfDataLength; function set(uint _id, string _value, string _url, uint _genre, uint _duration) public { listOfDataLength++; Genre selectedGenre = Genre(_genre); listOfData[_id] = MusicObject(_id, _value, _url, selectedGenre, _duration, false); } function getGenre(uint _id) public constant returns (uint) { return uint(listOfData[_id].genre); } function setBanned(uint _id) public { listOfData[_id].banned = true; } function get(uint _id) public constant returns (string) { return listOfData[_id].title; } function getOnTripStatus(uint _id) public constant returns (bool) { return listOfData[_id].banned; } function remove(uint _id) public { delete listOfData[_id]; } function showStatusBanned(uint _id) public constant returns (string) { if (listOfData[_id].banned == true) { return "Заблокирован правооблодателями"; } else { return "Едем"; } } function howManyBanned() public constant returns (uint) { uint count = 0; for (uint iin = 0; iin < listOfDataLength; iin++) { if (listOfData[iin].banned == true) { count++; } } return count; } }
0.4.18