Exemplo n.º 1
0
        public async Task <bool> UpdateTraining(UpdateTrainingDto trainingToUpdate)
        {
            var request = new RestRequest($"/api/trainings/UpdateTraining", Method.POST, DataFormat.Json);

            request.AddJsonBody(trainingToUpdate);

            var result = await this.ExecuteAsync <bool>(request);

            return(result);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdateTraining(UpdateTrainingDto input)
        {
            this.Logger.LogInformation($"Update training '{input.Id}'");
            var training = this.trainingRepository.GetById(input.Id);

            if (training == null)
            {
                // Training not found
                // TODO - Log and return error
                return(null);
            }

            training.IsBonus = input.IsBonus;

            // Date already is in UTC, but is converted to UTC again, so set back to local one time.
            training.TrainingDate = input.TrainingDate.ToLocalTime();

            var current = training.TrainingPlayers.Select(tp => tp.PlayerID);

            // Add new
            var attendeesToAdd = input.Attendees.Except(current).ToList();

            foreach (var newAttendee in attendeesToAdd)
            {
                training.TrainingPlayers.Add(new PlayerTraining {
                    TrainingID = training.Id, PlayerID = newAttendee
                });
            }
            ;

            // Remove old
            var attendeesToRemove = current.Except(input.Attendees).ToList();

            foreach (var oldAttendee in attendeesToRemove)
            {
                training.TrainingPlayers.RemoveAll(tp => tp.PlayerID == oldAttendee);
            }

            var result = await this.trainingRepository.UpdateAsync(training);

            return(Ok(true));
        }
Exemplo n.º 3
0
 public async Task <bool> UpdateTrainingAsync(UpdateTrainingDto training)
 {
     DateTime.SpecifyKind(training.TrainingDate, DateTimeKind.Utc);
     return(await this.RankixApi.UpdateTraining(training));
 }