/// <summary> /// casts a vote for a workout /// </summary> /// <param name="workoutID">ID des Workouts, zu dem gevoted wird</param> /// <param name="userID">ID des Users, der den Vote abgibt</param> /// <param name="value">Wert des Votes</param> /// <returns>Gesamtsumme der Votes fuer diesen Trainingsplan</returns> public int CastVote( int workoutID, int userID, muscle_log.framework.Util.Enum.Votes value ) { var previousVotes = _repo.GetAll(v => v.WorkoutID == workoutID && v.UserID == userID); if (previousVotes.Count() > 1) { throw new ApplicationException("The user with the ID " + userID + " casted multiple votes to the workout with the ID " + workoutID); } var vote = previousVotes.FirstOrDefault(); if (vote != null) { vote.Value = (int)value; _repo.Update(vote); } else { vote = new ml_WorkoutVotes(); vote.CRDT = vote.LUDT = DateTime.Now; vote.UserID = userID; vote.WorkoutID = workoutID; vote.Value = (int)value; _repo.Insert(vote); } return GetWorkoutVotesValue(workoutID); }
private void AddVote(int userID, int workoutID, int value) { var vote = new ml_WorkoutVotes() { CRDT = DateTime.Now, LUDT = DateTime.Now, ID = ++_id, UserID = 1, Value = value, WorkoutID = workoutID, ml_WorkoutPlan = new ml_WorkoutPlan() { UserID = userID } }; _repo.Insert(vote); }