Ejemplo n.º 1
0
        public async Task EndCurrentMission(string userId, MissionProgressionHistory[] historyToUpdate)
        {
            var user = await this.SelectAsync(userId);

            if (user == null)
            {
                return;
            }

            var     missionsCompleted = user.MissionCompleted?.ToList() ?? new List <MissionComplete>();
            Mission mission           = await this.MissionsManager.GetMissionById(user.MissionProgress.MissionId);

            MissionComplete missionComplete = new MissionComplete
            {
                IdMission     = user.MissionProgress.MissionId,
                StartDate     = user.MissionProgress.StartDate,
                CompletedDate = DateTime.UtcNow,
                History       = historyToUpdate
            };
            var nbReleve = missionComplete.History?.Count();

            missionsCompleted.Add(missionComplete);
            user.MissionCompleted = missionsCompleted.ToArray();
            user.MissionProgress  = null;

            await this.DataContext.Users.FindOneAndReplaceAsync(u => u.Id == user.Id, user);


            await this.UserNotify.SendInfoNotif(userId, $"Vous avez terminé la mission en faisant {nbReleve} relevés !");
        }
Ejemplo n.º 2
0
 private void OnMissionComplete()
 {
     if (_lastMissionComplete + TimeSpan.FromSeconds(30) < DateTime.Now)
     {
         //Only raise this event at most once every 30 seconds
         MissionComplete?.Invoke(this, EventArgs.Empty);
         _lastMissionComplete = DateTime.Now;
     }
 }
Ejemplo n.º 3
0
        public async Task AddCompleteMission(User user)
        {
            if (user == null)
            {
                return;
            }
            var completeMission = new MissionComplete {
                IdMission = "0fbae5829539411e9bad8f90397c0738", StartDate = DateTime.Now, CompletedDate = DateTime.Now
            };

            user.MissionCompleted = new MissionComplete[] { completeMission };
            await this.DataContext.Users.FindOneAndReplaceAsync(u => u.Id == user.Id, user);
        }