public async Task <IActionResult> RuptureFriend([FromBody] RuptureFriend.Request req) { var requester = new evosequencing.ProtocolModels.Friend.RuptureFriend(); requester.request.playerIdSrc = SelfHost.playerInfo.playerId; requester.request.playerIdDst = req.playerId; var response = await requester.PostAsyncXXX(SequencingServerInfo.Uri); if (response.StatusCode != System.Net.HttpStatusCode.OK) { return(BuildErrorResponse(Error.LowCode.ServerInternalError)); } if (response.Payload.resultCode == evosequencing.ProtocolModels.Friend.RuptureFriend.Response.ResultCode.Ok) { Logger.Logging( new LogObj().AddChild(new LogModels.RuptureFriend { PlayerIdSrc = SelfHost.playerInfo.playerId, PlayerIdDst = req.playerId.Value, Date = DateTime.UtcNow, }) ); } switch (response.Payload.resultCode) { case evosequencing.ProtocolModels.Friend.RuptureFriend.Response.ResultCode.Ok: case evosequencing.ProtocolModels.Friend.RuptureFriend.Response.ResultCode.NotFriend: var res = new RuptureFriend.Response(); await GetFriendsResponse(res); return(Ok(res)); default: return(BuildErrorResponse(Error.LowCode.Others)); } }
public async Task <IActionResult> RuptureFriend([FromBody] RuptureFriend.Request req) { var res = new RuptureFriend.Response(); res.resultCode = ProtocolModels.Friend.RuptureFriend.Response.ResultCode.Unknown; await DependJobManager.Enqueue(req.playerIdSrc.Value, req.playerIdDst.Value, async() => { var friend = Friend.Create(req.playerIdSrc.Value, req.playerIdDst.Value); friend = await Common2DB.Friends.FindAsync(friend.playerIdL, friend.playerIdR); if (null == friend) { res.resultCode = ProtocolModels.Friend.RuptureFriend.Response.ResultCode.NotFriend; return; } Common2DB.Friends.Remove(friend); await Common2DB.SaveChangesAsync(); res.resultCode = ProtocolModels.Friend.RuptureFriend.Response.ResultCode.Ok; //{ // var r = new FavoriteFriend // { // playerId = req.playerIdSrc.Value, // favoritePlayerId = req.playerIdDst.Value, // }; // var db = pdbsm.PersonalDBContext(req.playerIdSrc.Value); // db.FavoriteFriends.Attach(r); // db.FavoriteFriends.Remove(r); // await db.SaveChangesAsync(); //} //{ // var r = new FavoriteFriend // { // playerId = req.playerIdDst.Value, // favoritePlayerId = req.playerIdSrc.Value, // }; // var db = pdbsm.PersonalDBContext(req.playerIdDst.Value); // db.FavoriteFriends.Attach(r); // db.FavoriteFriends.Remove(r); // await db.SaveChangesAsync(); //} //PUSH var player = new Player(req.playerIdDst.Value); await player.FetchAsync(); if (await new Session(player.Model.sessionId).ExistsAsync()) { await new ConnectionQueue(player.Model.sessionId).EnqueueAsync(new UpdateFriends()); } }); return(Ok(res)); }