/// <summary> /// Processes the request. /// </summary> /// <param name="request">The request.</param> /// <returns>Task{MissionCompletionResult}.</returns> public async Task <MissionCompletionResult> ProcessRequest(MissionRequest request) { request.Mission.TriesFor1Star = 7; request.Mission.TriesFor2Stars = 4; request.Mission.TriesFor3Stars = 2; if (request.Proof.Coordinates == null || !request.Proof.Coordinates.Any()) { return(new MissionCompletionResult(OperationResultStatus.Error, "Not enough data")); } var oupostCoordinate = request.Proof.Coordinates.First(); double distanceError; if (!CheckOutpost(oupostCoordinate, request.User, out distanceError)) { return(await MissionRequestService.ProcessIncorrectTry(request, _missionRepository, _missionRequestRepository)); } await MissionRequestService.SetStarsAccordingToTries(request, _missionRequestRepository); request.User.OutpostCoordinate = oupostCoordinate; var recievedPoints = await RewardsCalculator.UpdateUserAfterMissionCompletion( request, _missionRepository); return(new MissionCompletionResult { Points = recievedPoints, StarsCount = request.StarsCount, MissionCompletionStatus = MissionCompletionStatus.Success }); }
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 }; }
public void Init() { _repository = new MissionRequestRepository(); _missonRepository = new MissionRepository(); _commonPlacesRepository = new CommonPlacesRepository(); _missionSetRepository = new MissionSetRepository(); _userRepository = new UserRepository(); _ratingRepository = new RatingRepository(); _ratingService = new RatingService(_userRepository, _ratingRepository, true); _notificationService = new NotificationService(new NotificationProvider()); _missionService = new MissionService(_missonRepository, _userRepository, _missionSetRepository, new MissionRequestRepository(), new HintRequestRepository(), _ratingService, _commonPlacesRepository); _service = new MissionRequestService(_repository, _missonRepository, _userRepository, _commonPlacesRepository, _ratingService, _notificationService, new AppCountersService(new AppCountersRepository())); _controller = new MissionRequestController(_service); }
public void Init() { _repository = new MissionRequestRepository(); _missonRepository = new MissionRepository(); _commonPlacesRepository = new CommonPlacesRepository(); _userRepository = new UserRepository(); _ratingRepository = new RatingRepository(); _ratingService = new RatingService(_userRepository, _ratingRepository, true); _missionService = new MissionService(_missonRepository, _userRepository, new MissionSetRepository(), new MissionRequestRepository(), new HintRequestRepository(), _ratingService, _commonPlacesRepository); _service = new MissionRequestService(_repository, _missonRepository, _userRepository, _commonPlacesRepository, _ratingService, new NotificationService(null), new AppCountersService(new AppCountersRepository())); var principal = new ClaimsPrincipal(); principal.AddIdentity(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Sid, "User1Id") })); }
/// <summary> /// Processes the request. /// </summary> /// <param name="request">The request.</param> /// <returns>Task{MissionCompletionResult}.</returns> public async Task <MissionCompletionResult> ProcessRequest(MissionRequest request) { request.Mission.TriesFor1Star = 10; request.Mission.TriesFor2Stars = 6; request.Mission.TriesFor3Stars = 2; if (request.Proof.Coordinates == null || !request.Proof.Coordinates.Any()) { return(new MissionCompletionResult(OperationResultStatus.Error, "Not enough coordinates")); } var radarCoordinate = request.Proof.Coordinates.First(); var borders = GetBorders(request.User.HomeCoordinate, radarCoordinate); bool isNear; if (!CheckValidRadar(radarCoordinate, borders, request.User, out isNear)) { var incorrectResult = await MissionRequestService.ProcessIncorrectTry(request, _missionRepository, _missionRequestRepository); if (incorrectResult.MissionCompletionStatus == MissionCompletionStatus.IntermediateFail) { incorrectResult.Description = isNear ? "Incorrect" : "IsNear"; } return(incorrectResult); } await MissionRequestService.SetStarsAccordingToTries(request, _missionRequestRepository); request.User.RadarCoordinate = radarCoordinate; request.User.Selected2BaseCoordinates = borders; var recievedPoints = await RewardsCalculator.UpdateUserAfterMissionCompletion( request, _missionRepository); return(new MissionCompletionResult { Points = recievedPoints, StarsCount = request.StarsCount, MissionCompletionStatus = MissionCompletionStatus.Success }); }
/// <summary> /// Initializes a new instance of the <see cref="MissionController" /> class. /// </summary> /// <param name="missionService">The mission service.</param> /// <param name="missionRequestService">The mission request service.</param> /// <param name="imageService">The image service.</param> public MissionController(MissionService missionService, MissionRequestService missionRequestService, ImageService imageService) { _missionService = missionService; _missionRequestService = missionRequestService; _imageService = imageService; }
/// <summary> /// Initializes a new instance of the <see cref="MissionRequestController"/> class. /// </summary> /// <param name="missionRequestService">The missionRequest service.</param> public MissionRequestController(MissionRequestService missionRequestService) { _missionRequestService = missionRequestService; }