Пример #1
0
        public Response Track(AssignmentTrainingMaterialViewRequest request)
        {
            var club = clubQuery.GetClub(request.ClubId);

            if (club == null)
            {
                return(Response.CreateResponse(new EntityNotFoundException("The specified club doesn not exist")));
            }

            var assignment = assignmentQuery.GetAssignment(club.Guid, request.AssignmentId);

            if (assignment == null)
            {
                return(Response.CreateResponse(new EntityNotFoundException("The specified assignment was not found")));
            }
            else if (assignment.ClubId != request.ClubId)
            {
                return(Response.CreateResponse(new IllegalOperationException("The specified assignment does not belong to this club")));
            }

            var trainingMaterial = libraryQuery.GetTrainingMaterial(request.TrainingMaterialId);

            if (trainingMaterial == null)
            {
                return(Response.CreateResponse(new EntityNotFoundException("The specified training material does not exist")));
            }
            else if (!assignment.TrainingMaterials.Any(t => t.Guid == request.TrainingMaterialId))
            {
                return(Response.CreateResponse(new IllegalOperationException("The specified training material does not belong to this assignment")));
            }

            var    clubSquads = squadQuery.GetSquads(request.ClubId);
            Member member     = request.Membership == Core.Membership.Coach ? memberQuery.GetCoach(request.MemberId) as Member : memberQuery.GetPlayer(request.MemberId) as Member;
            var    l1         = member.Squads.Intersect(clubSquads.Select(s => s.Guid)).ToList();
            var    l2         = clubSquads.Select(s => s.Guid).Intersect(member.Squads).ToList();

            if (member == null)
            {
                return(Response.CreateResponse(new EntityNotFoundException("The specified member does not exist")));
            }
            else if (clubSquads == null || !member.Squads.Intersect(clubSquads.Select(s => s.Guid)).Any())
            {
                return(Response.CreateResponse(new IllegalOperationException("The specified member does not belong to any squad")));
            }


            try {
                trackerRepository.Track(request);
                return(Response.CreateSuccessResponse());
            } catch (Exception ex) {
                return(Response.CreateResponse(ex));
            }
        }
Пример #2
0
        public void Track(AssignmentTrainingMaterialViewRequest request)
        {
            string sql = @" INSERT INTO AssignmentTrainingMaterialViews (AssignmentId, TrainingMaterialId, PlayerId, ViewedOn)
                            VALUES(
                                (SELECT AssignmentId FROM Assignments WHERE Guid = @AssignmentGuid),
                                (SELECT TrainingMaterialId FROM TrainingMaterials WHERE Guid = @TrainingMaterialGuid),
                                (SELECT PlayerId FROM Players WHERE Guid = @PlayerGuid AND (Deleted IS NULL OR Deleted = 0)),
                                GetDate()
                        )";

            var parameters = new DynamicParameters();

            parameters.Add("@AssignmentGuid", request.AssignmentId.ToString());
            parameters.Add("@TrainingMaterialGuid", request.TrainingMaterialId.ToString());
            parameters.Add("@PlayerGuid", request.Membership == Core.Membership.Player ? request.MemberId.ToString() : null);

            using (var connection = connectionFactory.Connect()) {
                connection.Open();
                connection.Execute(sql, parameters);
            }
        }