public void Init() { _userRepository = new UserRepository(); _commonPlacesRepository = new CommonPlacesRepository(); _missionRepository = new MissionRepository(); _missionSetRepository = new MissionSetRepository(); _missionRequestRepository = new MissionRequestRepository(); _appCountersRepository = new AppCountersRepository(); _hintRequestRepository = new HintRequestRepository(); _ratingRepository = new RatingRepository(); var imageProvider = new ImageProvider(); _imageService = new ImageService(imageProvider, _userRepository); _ratingService = new RatingService(_userRepository, _ratingRepository, true); _appCountersService = new AppCountersService(_appCountersRepository); _service = new UserService(_userRepository, _missionRepository, _ratingRepository, _appCountersService); _missionService = new MissionService(_missionRepository, _userRepository, _missionSetRepository, _missionRequestRepository, _hintRequestRepository, _ratingService, _commonPlacesRepository); _missionRequestService = new MissionRequestService(_missionRequestRepository, _missionRepository, _userRepository, _commonPlacesRepository, _ratingService, new NotificationService(new NotificationProvider()), _appCountersService); var principal = new ClaimsPrincipal(); principal.AddIdentity(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Sid, "User1Id") })); _controller = new MissionController(_missionService, _missionRequestService, _imageService) { User = principal }; }
private static async Task MissionFinished( MissionRequest missionRequest, bool success, IMissionRepository missionRepository, AppCountersService appCountersService) { var user = missionRequest.User; var mission = missionRequest.Mission; var changedSetIds = await GetChangedSetIds(missionRequest, success, missionRepository, user, mission); var lastSetExist = changedSetIds.Contains(GameConstants.MissionSet.LastSetId); foreach (var changedSetId in changedSetIds) { var hasOtherSetMissions = user.ActiveMissionIds.Any(m => m.MissionSetId == changedSetId); if (!hasOtherSetMissions) { user.ActiveMissionSetIds.Remove(changedSetId); user.CompletedMissionSetIds = user.CompletedMissionSetIds ?? new List <string>(); user.CompletedMissionSetIds.Add(changedSetId); await CheckForLastSetAndLoadMissions(missionRequest, missionRepository, user, changedSetId, lastSetExist); } } await CheckLastSetCounters(missionRequest, appCountersService); UpdateThreeStarsAchievement(user, missionRequest.StarsCount); }
/// <summary> /// Initializes a new instance of the <see cref="UserIdentityController" /> class. /// </summary> /// <param name="userService">The user service.</param> /// <param name="identityService">The identity service.</param> /// <param name="mailService">The mail service.</param> /// <param name="appCountersService">The application counters service.</param> public UserIdentityController(UserService userService, UserIdentityService identityService, MailService mailService, AppCountersService appCountersService) { _userService = userService; _identityService = identityService; _mailService = mailService; _appCountersService = appCountersService; }
/// <summary> /// Updates the user ater mission completion. /// </summary> /// <param name="missionRequest">The mission request.</param> /// <param name="missionRepository">The mission repository.</param> /// <param name="appCountersService">The application counters service.(need to be passed for missions from the last set)</param> /// <returns> /// Points increase /// </returns> public static async Task <int> UpdateUserAfterMissionCompletion( MissionRequest missionRequest, IMissionRepository missionRepository, AppCountersService appCountersService = null) { var currentLevelMax = levelMap[missionRequest.User.Level.Value]; //user level can't be null var expIncrease = (ushort)(missionRequest.Mission.Difficulty * GameConstants.Experience.PerDifficultyPoint); var pointsIncrease = (int)Math.Round(expIncrease * GameConstants.Points.ExtraMultiplier * missionRequest.StarsCount.Value); //stars after completion can't be null missionRequest.User.LevelPoints += expIncrease; missionRequest.User.Points = (missionRequest.User.Points ?? 0) + pointsIncrease; if (missionRequest.User.LevelPoints >= currentLevelMax) { missionRequest.User.Level++; missionRequest.User.LevelPoints = (ushort)(missionRequest.User.LevelPoints - currentLevelMax); } CalculatePersonQualities(missionRequest, true); await MissionFinished(missionRequest, true, missionRepository, appCountersService); return(expIncrease); }
/// <summary> /// Initializes a new instance of the <see cref="FriendBase" /> class. /// </summary> /// <param name="missionRepository">The mission repository.</param> /// <param name="userRepository">The user repository.</param> /// <param name="appCountersService">The application counters service.</param> public FriendBase( IMissionRepository missionRepository, IUserRepository userRepository, AppCountersService appCountersService) { _missionRepository = missionRepository; _userRepository = userRepository; _appCountersService = appCountersService; }
private static async Task CheckLastSetCounters( MissionRequest missionRequest, AppCountersService appCountersService) { if (appCountersService != null && !missionRequest.User.ActiveMissionIds.Any() && !missionRequest.User.ActiveMissionSetIds.Any() && !string.IsNullOrEmpty(missionRequest.User.RadrugaColor)) { await appCountersService.UserHasFinished(); } }
/// <summary> /// Updates the user ater mission decline. /// </summary> /// <param name="missionRequest">The mission request.</param> /// <param name="missionRepository">The mission repository.</param> /// <param name="appCountersService">The application counters service.</param> /// <returns> /// If not empty returns the set id, so active missions need to be populated /// </returns> public static async Task UpdateUserAfterMissionDecline( MissionRequest missionRequest, IMissionRepository missionRepository, AppCountersService appCountersService = null) { var pointsDecrease = (ushort) (missionRequest.Mission.Difficulty * GameConstants.Experience.PerDifficultyPoint * GameConstants.Points.ExtraMultiplier); missionRequest.User.Points = (missionRequest.User.Points ?? 0) - pointsDecrease; CalculatePersonQualities(missionRequest, false); await MissionFinished(missionRequest, false, missionRepository, appCountersService); }
public void Init() { _repository = new KindActionRepository(); _userRepository = new UserRepository(); _ratingRepository = new RatingRepository(); _ratingService = new RatingService(_userRepository, _ratingRepository, true); _service = new KindActionService(_repository, _userRepository, _ratingService); _imageService = new ImageService(new ImageProvider(), new UserRepository()); _appCountersService = new AppCountersService(new AppCountersRepository()); var principal = new ClaimsPrincipal(); principal.AddIdentity(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Sid, "User1Id") })); _controller = new KindActionController(_service, _imageService, _appCountersService) { User = principal }; }
/// <summary> /// Initializes a new instance of the <see cref="QuestionController" /> class. /// </summary> /// <param name="questionService">The question service.</param> /// <param name="appCountersService">The application counters service.</param> public QuestionController(QuestionService questionService, AppCountersService appCountersService) { _questionService = questionService; _appCountersService = appCountersService; }
/// <summary> /// Initializes a new instance of the <see cref="Censored"/> class. /// </summary> /// <param name="missionRepository">The mission repository.</param> /// <param name="appCountersService">The app counters service.</param> public Censored(IMissionRepository missionRepository, AppCountersService appCountersService) { _missionRepository = missionRepository; _appCountersService = appCountersService; }
/// <summary> /// Initializes a new instance of the <see cref="KindActionController" /> class. /// </summary> /// <param name="kindActionService">The kindAction service.</param> /// <param name="imageService">The image service</param> /// <param name="appCountersService">The application counters service.</param> public KindActionController(KindActionService kindActionService, ImageService imageService, AppCountersService appCountersService) { _imageService = imageService; _kindActionService = kindActionService; _appCountersService = appCountersService; }
/// <summary> /// Initializes a new instance of the <see cref="CommandPoint" /> class. /// </summary> /// <param name="missionRepository">The mission repository.</param> /// <param name="appCountersService">The application counters service.</param> public CommandPoint(IMissionRepository missionRepository, AppCountersService appCountersService, PlaceIdService placeIdService) { _missionRepository = missionRepository; _appCountersService = appCountersService; _placeIdService = placeIdService; }