public bool SetMissionFinsh(string UserID, int userMissionSn)
        {
            List <MissionNoteModel> mnList = GetMissionCode(UserID).ToList();
            MissionNoteModel        mn     = mnList.Where(p => p.userMissionSn == userMissionSn).FirstOrDefault();

            if (mn == null)
            {
                return(false);
            }
            if (mn.isFinsh)
            {
                foreach (MissionAssets ma in mn.maList)
                {
                    AssetsRecord ar = new AssetsRecord
                    {
                        type    = 3,
                        unitSn  = ma.unitSn,
                        assets  = ma.assets,
                        UserId  = UserID,
                        inpdate = DateTime.Now
                    };
                    new AssetsRepository().AddAssetsByAssets(ar);

                    UserMissions um = db.UserMissions.Where(p => p.sn == userMissionSn && p.userID == UserID).FirstOrDefault();
                    um.valid = 2;
                    db.SaveChanges();
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 미션 정보 얻기
        /// </summary>
        /// <param name="session"></param>
        /// <returns></returns>
        public static async Task <UserMissions> GetMissionsLock(Session session)
        {
            var userMissions = new UserMissions();
            List <Models.Mission> missions;

            missions = await MissionCache.Instance.GetEntities(session.member_no, session.user_no, true);

            if (await Refresh(missions, session, true))
            {
                await using (var mylock = await RedLock.CreateLockAsync($"lock:session:{session.session_id}"))
                {
                    missions = await MissionCache.Instance.GetEntities(session.member_no, session.user_no, true);
                    await Refresh(missions, session, false);
                }
            }

            if (missions.Count > 0)
            {
                foreach (var mission in missions)
                {
                    var mission_base = new MissionBaseInfo();
                    foreach (var m in mission.Missions())
                    {
                        mission_base.Add(((ValueTuple <int, int, bool, int>)m).Item1, ((ValueTuple <int, int, bool, int>)m).Item2, ((ValueTuple <int, int, bool, int>)m).Item3);
                    }

                    mission_base.MissionBaseId     = mission.mission_base_id;
                    mission_base.MissionBaseReward = mission.mission_reward;

                    userMissions.MissionBaseList.Add(mission_base);
                }
            }

            return(userMissions);
        }