byte[] IAuthenticationWebServiceContract.LoginSteam(byte[] data) { try { using (var bytes = new MemoryStream(data)) { var steamId = StringProxy.Deserialize(bytes); var authToken = StringProxy.Deserialize(bytes); var machineId = StringProxy.Deserialize(bytes); var view = OnLoginSteam(steamId, authToken, machineId); using (var outBytes = new MemoryStream()) { MemberAuthenticationResultViewProxy.Serialize(outBytes, view); return(outBytes.ToArray()); } } } catch (Exception ex) { Log.Error("Unable to handle LoginSteam request:"); Log.Error(ex); return(null); } }
public byte[] LoginSteam(byte[] data) { var inputStream = new MemoryStream(data); var steamId = StringProxy.Deserialize(inputStream); var authToken = StringProxy.Deserialize(inputStream); var machineId = StringProxy.Deserialize(inputStream); var outputStream = new MemoryStream(); if (userData.ContainsKey(steamId) && userData[steamId] != null) { var instance = new MemberAuthenticationResultView { MemberAuthenticationResult = MemberAuthenticationResult.Ok, MemberView = userData[steamId], PlayerStatisticsView = playerStatistics[steamId], ServerTime = DateTime.Now, IsAccountComplete = true, AuthToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(steamId)) }; MemberAuthenticationResultViewProxy.Serialize(outputStream, instance); } else { var r = new Random((int)DateTime.Now.Ticks); var Cmid = r.Next(1000000, 9999999); var newMemberView = new MemberView { PublicProfile = new PublicProfileView { Cmid = Cmid, Name = "Player Name", IsChatDisabled = false, AccessLevel = MemberAccessLevel.Default, GroupTag = "", LastLoginDate = DateTime.Now, EmailAddressStatus = EmailAddressStatus.Verified, FacebookId = "-1" }, MemberWallet = new MemberWalletView { Cmid = Cmid, Credits = 2000, Points = 2000 } }; var newPlayerStatisticsView = new PlayerStatisticsView { Cmid = Cmid, PersonalRecord = new PlayerPersonalRecordStatisticsView(), WeaponStatistics = new PlayerWeaponStatisticsView() }; var instance = new MemberAuthenticationResultView { MemberAuthenticationResult = MemberAuthenticationResult.Ok, MemberView = newMemberView, PlayerStatisticsView = newPlayerStatisticsView, ServerTime = DateTime.Now, IsAccountComplete = true, AuthToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(steamId)) }; userData[steamId] = newMemberView; playerStatistics[steamId] = newPlayerStatisticsView; MemberAuthenticationResultViewProxy.Serialize(outputStream, instance); UpdatePlayerData(); } return(outputStream.ToArray()); }