Mineplex2018-withcommit/Website/LOC.Website.Web/Controllers/PlayerAccountController.cs
Jonathan Williams 3fb52c5c71 Initial Commit
2013-08-27 08:14:08 -07:00

196 lines
6.1 KiB
C#

namespace LOC.Website.Web.Controllers
{
using System;
using System.Web.Mvc;
using Common;
using Common.Models;
using Core.Model.Account;
using Core.Tokens;
using Core.Tokens.Client;
using Newtonsoft.Json;
public class PlayerAccountController : Controller
{
private readonly IAccountAdministrator _accountAdministrator;
private readonly ILogger _logger;
public PlayerAccountController(IAccountAdministrator accountAdministrator, ILogger logger)
{
_accountAdministrator = accountAdministrator;
_logger = logger;
}
[HttpPost]
public ActionResult GetAccountNames()
{
var accountNames = _accountAdministrator.GetAccountNames();
var json = JsonConvert.SerializeObject(accountNames);
return Content(json, "application/json");
}
[HttpPost]
public ActionResult GetAccount(string name)
{
var account = _accountAdministrator.GetAccountByName(name);
var json = JsonConvert.SerializeObject(account);
return Content(json, "application/json");
}
[HttpPost]
public ActionResult GetDonor(string name)
{
var account = _accountAdministrator.GetAccountByName(name);
var json = JsonConvert.SerializeObject(account);
return Content(json, "application/json");
}
[HttpPost]
public ActionResult Login(LoginRequestToken loginRequest)
{
long time = Environment.TickCount;
var json = JsonConvert.SerializeObject(new ClientToken(_accountAdministrator.Login(loginRequest)));
_logger.Log("Debug", Environment.TickCount - time + "ms");
return Content(json, "application/json");
}
[HttpPost]
public ActionResult PurchaseKnownSalesPackage(PurchaseToken token)
{
var json = JsonConvert.SerializeObject(_accountAdministrator.PurchaseGameSalesPackage(token));
return Content(json, "application/json");
}
[HttpPost]
public ActionResult PurchaseUnknownSalesPackage(UnknownPurchaseToken token)
{
var json = JsonConvert.SerializeObject(_accountAdministrator.PurchaseUnknownSalesPackage(token));
return Content(json, "application/json");
}
[HttpPost]
public void Logout(string name)
{
_accountAdministrator.Logout(name);
}
[HttpPost]
public ActionResult AccountExists(string name)
{
var json = JsonConvert.SerializeObject(_accountAdministrator.AccountExists(name));
return Content(json, "application/json");
}
[HttpPost]
public ActionResult GetMatches(string name)
{
var json = JsonConvert.SerializeObject(_accountAdministrator.GetAllAccountNamesMatching(name));
return Content(json, "application/json");
}
[HttpPost]
public ActionResult Punish(PunishToken token)
{
var json = JsonConvert.SerializeObject(_accountAdministrator.Punish(token).ToString());
return Content(json, "application/json");
}
[HttpPost]
public ActionResult RemovePunishment(RemovePunishmentToken token)
{
var json = JsonConvert.SerializeObject(_accountAdministrator.RemovePunishment(token).ToString());
return Content(json, "application/json");
}
[HttpPost]
public void RemoveBan(RemovePunishmentToken token)
{
_accountAdministrator.RemoveBan(token);
}
[HttpPost]
public void Ignore(ClientIgnoreToken token)
{
_accountAdministrator.Ignore(token.Name, token.IgnoredPlayer);
}
[HttpPost]
public void RemoveIgnore(ClientIgnoreToken token)
{
_accountAdministrator.RemoveIgnore(token.Name, token.IgnoredPlayer);
}
[HttpPost]
public void SaveCustomBuild(CustomBuildToken token)
{
_accountAdministrator.SaveCustomBuild(token);
}
[HttpPost]
public ActionResult PlayerUpdate(PlayerUpdateToken token)
{
var account = _accountAdministrator.GetAccountByName(token.Name);
account.Gems += token.Gems;
account.FilterChat = token.FilterChat;
_accountAdministrator.UpdateAccount(account);
var json = JsonConvert.SerializeObject(token);
return Content(json, "application/json");
}
[HttpPost]
public ActionResult RankUpdate(RankUpdateToken token)
{
var json = JsonConvert.SerializeObject(_accountAdministrator.UpdateRank(token));
return Content(json, "application/json");
}
[HttpPost]
public ActionResult PlayerVoted(string name)
{
var account = _accountAdministrator.GetAccountByName(name);
var newPoints = 0;
if (account != null)
{
if (DateTime.Now.Subtract(account.LastVote) < TimeSpan.FromDays(2))
{
account.VoteModifier = Math.Min(account.VoteModifier + 1, 2);
}
else
{
account.VoteModifier = 0;
}
newPoints = 30 + (10*account.VoteModifier);
account.Gems += newPoints;
account.LastVote = DateTime.Now;
_accountAdministrator.UpdateAccount(account);
}
var token = new PlayerUpdateToken { Name = name, Gems = newPoints };
var json = JsonConvert.SerializeObject(token);
return Content(json, "application/json");
}
[HttpPost]
public void RecordDeathStat(DeathStatToken token)
{
}
[HttpPost]
public ActionResult GetPunishClient(string name)
{
var json = JsonConvert.SerializeObject(new ClientToken(_accountAdministrator.GetAccountByName(name)));
return Content(json, "application/json");
}
}
}