Exemple #1
0
        public async Task <int> AddTrainingAsync(TrainingSocketsModelWithOwner training)
        {
            using (ShapeAppDbContext ctx = new ShapeAppDbContext())
            {
                try
                {
                    User owner = await ctx.Users.FirstAsync(u => u.Id == training.Owner.UserId);

                    Training trainingDb = new Training
                    {
                        Title     = training.Title,
                        TimeStamp = training.TimeStamp,
                        Duration  = training.Duration,
                        IsPublic  = training.Global,
                        Type      = training.Type,
                        Owner     = owner
                    };
                    await ctx.Training.AddAsync(trainingDb);

                    await ctx.SaveChangesAsync();

                    int createdTrainingId = ctx.Training.ToList().Last().Id;

                    if (training.Exercises != null && training.Exercises.Any())
                    {
                        foreach (var exercise in training.Exercises)
                        {
                            int createdExerciseId;
                            if (exercise.Id > 0)
                            {
                                createdExerciseId = exercise.Id;
                            }
                            else
                            {
                                await ctx.Exercise.AddAsync(exercise);

                                await ctx.SaveChangesAsync();

                                createdExerciseId = ctx.Exercise.ToList().Last().Id;
                            }

                            await ctx.TrainingExercises.AddAsync(new TrainingExercise
                            {
                                ExerciseId = createdExerciseId,
                                TrainingId = createdTrainingId
                            });

                            await ctx.SaveChangesAsync();
                        }
                    }

                    return(createdTrainingId);
                }
                catch (Exception e)
                {
                    return(-1);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Retrieves a training with its owner, by id
        /// </summary>
        /// <param name="actualRequest">the client request to be handled</param>
        /// <returns>the response to the given request</returns>
        private async Task <ActualRequest> GetTrainingByIdAsync(ActualRequest actualRequest)
        {
            Request request    = actualRequest.Request;
            int     trainingId = Convert.ToInt32(request.Argument.ToString());
            TrainingSocketsModelWithOwner training = await trainingRepo.GetTrainingByIdAsync(trainingId);

            Request responseRequest = new Request
            {
                ActionType = ActionType.TRAINING_GET_BY_ID.ToString(),
                Argument   = JsonSerializer.Serialize(training)
            };

            return(new ActualRequest
            {
                Request = responseRequest,
                Images = null
            });
        }
Exemple #3
0
        /// <summary>
        /// Persists a given training to the database
        /// </summary>
        /// <param name="actualRequest">the client request to be handled</param>
        /// <returns>the response to the given request</returns>
        private async Task <ActualRequest> AddTrainingAsync(ActualRequest actualRequest)
        {
            Request request = actualRequest.Request;
            TrainingSocketsModelWithOwner training = JsonSerializer.Deserialize <TrainingSocketsModelWithOwner>(request.Argument.ToString());

            Console.WriteLine("XXXXXXXXXXXXXXXXXXX" + training.TimeStamp);
            int trainingId = await trainingRepo.AddTrainingAsync(training);

            Request responseRequest = new Request
            {
                ActionType = ActionType.TRAINING_CREATE.ToString(),
                Argument   = JsonSerializer.Serialize(trainingId)
            };

            return(new ActualRequest
            {
                Request = responseRequest,
                Images = null
            });
        }