Each guest, user, premium user and admin can play the game. If guest will play the game, he must choose difficulty.
Each guest, user, premium user and admin can see Global Rates.
Each guest, user and premium user can sent a message to admin.
Each guest can register to create his account. During registration captcha cheking must be passed. After registration e-mail with information will be send.(if smth goes wrong with email - it will not damage registration process)
Each guest can Log In to enter to his account. During registration captcha cheking must be passed.
In case if guest forgot his password, he can choose option to sent him information about password to e-mail on the Log In page. In that case e-mail with password will be send to his email. If email isn't received - write to admin
Only user/premium user and admin can see Personal Rate.
Only user/premium and admin can use settings. In this settings he can:
a)change his nickname
b)change his avatar
c)change his password
d)choose level of text(low level by default).
After password is changed an email with new password will be send.(if smth goes wrong with email - password will be changed anyway)
User can be upgrated to premium user by chosing "Go premium"(Premium users and admins - allready premium). After that they should pay 3$. After that an email with congratulations will be send.(if smth goes wrong with email - user become premium anyway)
Premium means - free from advertisings.
Only admin can open admin room.
In admin room it's possible:
a) to watch special admin statistics.
b) to delete user
c) to make each user premium
d) to make each user admin
e) to make each admin user
Methods
RegisterUserController Methods
IHttpActionResult GetAll() - GET /api/registerusers - Return All Registered users.
IHttpActionResult GetById(int Id) - GET /api/registerusers/{Id} - Return Registerd user by id. In case if no user found with such Id, Not Found status will be returned
IHttpActionResult GetByName(string nickname) - GET /api/registerusers/searchbynick/{nickname} - Return Registerd user by nickname. In case if no user found with such Id, Not Found will be returned
IHttpActionResult Add([FromBody]RegisterUserDto model) - POST /api/registerusers - Add new user to register users collection. In case if nickname or email is already exist Conflict will be returned. Id of new user will be genereate automatic.
IHttpActionResult Update(int id, [FromBody]RegisterUserDto model) - PUT /api/registerusers/{id} - In case if user with such id is exist, this user will be updated with model from body(Created status with updated user will be returned). In case if user with such id doesn't exist, Not Found status will be returned.
IHttpActionResult Delete(int id) - DELETE /api/registerusers/{id} - In case if user with such id is exist, this user will be deleted(Ok status will be returned). In case if user with such id doesn't exist, Not Found status will be returned.
TextsController Methods
IHttpActionResult GetAll() - GET /api/textsets - Return All Registered textsets.
IHttpActionResult GetById(int Id) - GET /api/textsets/{id} - Return Text set by id. In case if no text set found with such Id, Not Found status will be returned
IHttpActionResult GetRandomByLevel(int level) - GET /api/textsets/searchbylevel/{level} - Return Random Text Set by level of text. In case if no Text Set found with such Id, Not Found will be returned. If level is not matching to level values Bad Request status will be returned
IHttpActionResult Add([FromBody]TextSetDto model) - POST /api/textsets - Add new Text Set to TextSets collection. Id of new Text Set will be genereate automatic.
IHttpActionResult Update(int id, [FromBody]TextSetDto model) - PUT /api/textsets/{id} - In case if Text Set with such id is exist, this Text Set will be updated with model from body(Created status with updated user will be returned). In case if Text Set with such id doesn't exist, Not Found status will be returned.
IHttpActionResult Delete(int id) - DELETE /api/textsets/{id} In case if Text Set with such id is exist, this Text Set will be deleted(Ok status will be returned). In case if Text Set with such id doesn't exist, Not Found status will be returned.