示例#1
0
        public async Task <IActionResult> SetStampSlot([FromBody] SetStampSlot.Request req)
        {
            var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId);

            if (!await Validation(req.mobileSuitIds,
                                  evolib.Item.Type.Stamp,
                                  req.stampItemIds,
                                  db))
            {
                return(BuildErrorResponse(Error.LowCode.BadParameter));
            }

            var playerId = SelfHost.playerInfo.playerId;

            var rs = new DbRecordsStocker();
            await rs.Init(PDBSM, new List <long>() { playerId }, req.mobileSuitIds);

            var res = new SetStampSlot.Response();

            res.settings = new List <Setting>();

            for (int i = 0; i < req.mobileSuitIds.Count; i++)
            {
                var msId = req.mobileSuitIds[i];

                var result = rs.Get(playerId, msId, MasterData);
                await result.AddToDb(PDBSM);

                result.msRecord.stampSlotItemId1 = req.stampItemIds[0];
                result.msRecord.stampSlotItemId2 = req.stampItemIds[1];
                result.msRecord.stampSlotItemId3 = req.stampItemIds[2];
                result.msRecord.stampSlotItemId4 = req.stampItemIds[3];

                res.settings.Add(result.ToSetting());

                Logger.Logging(
                    new LogObj().AddChild(new LogModels.ChangePalletItem
                {
                    PlayerId = playerId,
                    Date     = DateTime.UtcNow,
                    UnitId   = msId,
                    ItemType = evolib.Item.Type.Stamp,
                    ItemIds  = req.stampItemIds,
                })
                    );
            }

            await db.SaveChangesAsync();

            return(Ok(res));
        }
示例#2
0
        public async Task <IActionResult> SetMvpCelebration([FromBody] SetMvpCelebration.Request req)
        {
            var db = PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId);

            if (!await Validation(new List <string>()
            {
                req.mobileSuitId
            },
                                  evolib.Item.Type.MvpCelebration,
                                  new List <string>()
            {
                req.mvpCelebrationItemId
            },
                                  db))
            {
                return(BuildErrorResponse(Error.LowCode.BadParameter));
            }

            var playerId = SelfHost.playerInfo.playerId;
            var msId     = req.mobileSuitId;

            var rs = new DbRecordsStocker();
            await rs.Init(PDBSM, new List <long>() { playerId }, new List <string>() { msId });

            var result = rs.Get(playerId, msId, MasterData);
            await result.AddToDb(PDBSM);

            result.msRecord.mvpCelebrationItemId = req.mvpCelebrationItemId;

            await db.SaveChangesAsync();

            Logger.Logging(
                new LogObj().AddChild(new LogModels.ChangeCustomItem
            {
                PlayerId = playerId,
                Date     = DateTime.UtcNow,
                UnitId   = msId,
                ItemType = evolib.Item.Type.MvpCelebration,
                ItemId   = req.mvpCelebrationItemId,
            })
                );

            return(Ok(new SetMvpCelebration.Response
            {
                setting = result.ToSetting(),
            }));
        }
示例#3
0
        public async Task <IActionResult> GetSettingsList([FromBody] GetSettingsList.Request req)
        {
            var res = new GetSettingsList.Response();

            res.settingsList = new List <GetSettingsList.Settings>();

            var rs = new DbRecordsStocker();
            await rs.Init(PDBSM, req.playerIds);


            foreach (var playerId in req.playerIds)
            {
                var settings = new GetSettingsList.Settings
                {
                    playerId = playerId,
                    settings = new List <Setting>(),
                };

                foreach (var msId in MasterData.AllMobileSuitIds)
                {
                    var result = rs.Get(playerId, msId, MasterData);

                    if (SelfHost.hostType == HostType.Player && playerId == SelfHost.playerInfo.playerId)
                    {
                        await result.AddToDb(PDBSM);
                    }

                    settings.settings.Add(result.ToSetting());
                }

                res.settingsList.Add(settings);
            }

            if (SelfHost.hostType == HostType.Player)
            {
                await PDBSM.PersonalDBContext(SelfHost.playerInfo.playerId).SaveChangesAsync();
            }

            return(Ok(res));
        }