public static bool GenerateNewCommunications(Guid userId)
        {
            var newComm = false;

            using (var dbContext = new ActivityTrackerDbContext())
            {
                var comms     = dbContext.Communications.ToList();
                var userComms = dbContext.UserCommunications.Where(x => x.UserID == userId).ToList();

                foreach (var comm in comms)
                {
                    if (checkIfUserHasCommunication(userId, comm, userComms))
                    {
                        var userComm = new UserCommunication();
                        userComm.CommunicationID = comm.CommunicationID;
                        userComm.UserID          = userId;
                        userComm.Date            = DateTime.UtcNow;
                        dbContext.UserCommunications.Add(userComm);

                        newComm = true;
                    }
                }
                dbContext.SaveChanges();
            }

            return(newComm);
        }
Пример #2
0
        public static void GeneraterNewBadges(Guid userId)
        {
            using (var dbContext = new ActivityTrackerDbContext())
            {
                var badges     = dbContext.Badges.ToList();
                var userBadges = dbContext.UserBadges.Where(x => x.UserID == userId).ToList();

                foreach (var badge in badges)
                {
                    if (userBadges.FirstOrDefault(x => x.BadgeID == badge.BadgeID) == null)
                    {
                        if (CheckIfUserWonThisBadge(userId, badge))
                        {
                            var userBadge = new UserBadge();
                            userBadge.UserID  = userId;
                            userBadge.BadgeID = badge.BadgeID;
                            userBadge.Date    = DateTime.UtcNow;

                            dbContext.UserBadges.Add(userBadge);
                        }
                    }
                }
                dbContext.SaveChanges();
            }
        }
        /// <summary>
        /// Méthode réutilisable pour créer une activité
        /// </summary>
        /// <param name="user"></param>
        /// <param name="createActivityParameter"></param>
        private void CreateUserActivity(User user, CreateActivityParameter createActivityParameter)
        {
            var type = GetActivityTypeByCode(createActivityParameter.ActivityTypeCode);

            ValidateUserActivityCreation(user, type, createActivityParameter);

            var activity = new UserActivity
            {
                UserID         = user.UserID,
                ActivityTypeID = type.ActivityTypeID,
                Date           = createActivityParameter.CreationDate ?? DateTime.UtcNow,
                Quantity       = createActivityParameter.Quantity,
                ExternalID     = createActivityParameter.ExternalId
            };

            AdjustHealthPoints(activity, type);

            using (var dbContext = new ActivityTrackerDbContext())
            {
                dbContext.UserActivities.Add(activity);
                dbContext.SaveChanges();
            }
        }