public Models.Workout.WorkoutAdvice Create(Models.Requests.Workout.WorkoutAdviceCreate adviceCreate, UserInfo userInfo)
        {
            Client dbClient = _context.Clients.Find(adviceCreate.ClientId);

            if (dbClient == null)
            {
                throw new ResourceNotFoundException($"Client with id {adviceCreate.ClientId} not found");
            }

            if (userInfo.Role == "EMPLOYEE")
            {
                Trainer dbTrainer = _context.Trainers.Find(adviceCreate.TrainerId);
                if (dbTrainer == null)
                {
                    throw new ResourceNotFoundException($"Trainer with id {adviceCreate.TrainerId} not found");
                }
            }
            else
            {
                adviceCreate.TrainerId = userInfo.Id;
            }

            WorkoutAdvice dbWorkoutAdvice = WorkoutAdviceMapper.toDb(adviceCreate);

            _context.WorkoutAdvices.Add(dbWorkoutAdvice);
            _context.SaveChanges();
            return(GetById(dbWorkoutAdvice.Id));
        }
Esempio n. 2
0
 public WorkoutAdviceCreateForm(string accessToken, WorkoutAdvice workoutAdvice)
 {
     InitializeComponent();
     _accessToken             = accessToken;
     _workoutAdvice           = workoutAdvice;
     _trainerApiService       = new ApiService("trainers", _accessToken);
     _clientApiService        = new ApiService("clients", _accessToken);
     _workoutAdviceApiService = new ApiService("workoutAdvice", _accessToken);
     _ = initFormData();
 }
        public void Update(int id, Models.Requests.Workout.WorkoutAdviceCreate adviceCreate, UserInfo userInfo)
        {
            WorkoutAdvice dbWorkoutAdvice = _context.WorkoutAdvices.Find(id);

            if (dbWorkoutAdvice == null)
            {
                throw new ResourceNotFoundException($"Workout advice with id {id} not found");
            }

            Client dbClient = _context.Clients.Find(adviceCreate.ClientId);

            if (dbClient == null)
            {
                throw new ResourceNotFoundException($"Client with id {adviceCreate.ClientId} not found");
            }

            if (userInfo.Role == "TRAINER")
            {
                adviceCreate.TrainerId = userInfo.Id;
            }

            Trainer dbTrainer = _context.Trainers.Find(adviceCreate.TrainerId);

            if (dbTrainer == null)
            {
                throw new ResourceNotFoundException($"Trainer with id {adviceCreate.TrainerId} not found");
            }

            if (userInfo.Role == "TRAINER")
            {
                if (dbWorkoutAdvice.TrainerId != userInfo.Id)
                {
                    throw new OperationNowAllowedException();
                }
            }

            if (adviceCreate.Message != null)
            {
                dbWorkoutAdvice.Message = adviceCreate.Message;
            }
            if (adviceCreate.ClientId != null)
            {
                dbWorkoutAdvice.ClientId = adviceCreate.ClientId;
            }
            if (adviceCreate.TrainerId != null)
            {
                dbWorkoutAdvice.TrainerId = adviceCreate.TrainerId;
            }

            _context.WorkoutAdvices.Update(dbWorkoutAdvice);
            _context.SaveChanges();
        }
        private void DgvAdvices_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int selectedRowIndex = dgvAdvices.CurrentCell.RowIndex;
            int id = int.Parse(dgvAdvices.Rows[selectedRowIndex].Cells[0].Value.ToString());

            WorkoutAdvice workoutAdvice = _workoutAdvices.Where(x => x.Id == id).FirstOrDefault();

            WorkoutAdviceCreateForm workoutForm = new WorkoutAdviceCreateForm(_accessToken, workoutAdvice);

            workoutForm.MdiParent   = this.MdiParent;
            workoutForm.WindowState = FormWindowState.Maximized;
            workoutForm.ControlBox  = false;
            workoutForm.MaximizeBox = false;
            workoutForm.MinimizeBox = false;
            workoutForm.ShowIcon    = false;
            workoutForm.Show();
        }
        public void Delete(int id, UserInfo userInfo)
        {
            WorkoutAdvice dbWorkoutAdvice = _context.WorkoutAdvices.Find(id);

            if (dbWorkoutAdvice == null)
            {
                throw new ResourceNotFoundException($"Workout advice with id {id} not found");
            }

            if (userInfo.Role == "TRAINER")
            {
                if (dbWorkoutAdvice.TrainerId != userInfo.Id)
                {
                    throw new OperationNowAllowedException();
                }
            }

            _context.WorkoutAdvices.Remove(dbWorkoutAdvice);
            _context.SaveChanges();
        }
        public WorkoutAdviceCreateViewModel(WorkoutAdvice workoutAdvice)
        {
            string token = (string)Application.Current.Properties["access_token"];

            clientsApiService       = new ApiService("clients", token);
            workoutAdviceApiService = new ApiService("workoutAdvice", token);

            WorkoutAdvice = workoutAdvice;

            if (WorkoutAdvice != null)
            {
                AdviceContent = WorkoutAdvice.Message;
            }

            SaveAdviceCommand = new Command(async() =>
            {
                EntryErrorVissible  = false;
                PickerErrorVissible = false;

                if (string.IsNullOrEmpty(AdviceContent))
                {
                    EntryErrorVissible = true;
                }

                if (Client == null)
                {
                    PickerErrorVissible = true;
                }

                if (PickerErrorVissible || EntryErrorVissible)
                {
                    return;
                }

                WorkoutAdviceCreate adviceCreate = new WorkoutAdviceCreate
                {
                    ClientId = Client.Id,
                    Message  = AdviceContent
                };

                if (WorkoutAdvice != null)
                {
                    await workoutAdviceApiService.Update <WorkoutAdvice>(WorkoutAdvice.Id, adviceCreate);
                }
                else
                {
                    await workoutAdviceApiService.Create <WorkoutAdvice>(adviceCreate);
                }

                EntryErrorVissible  = false;
                PickerErrorVissible = false;

                await Navigation.PopAsync();
                await Navigation.PushAsync(new WorkoutAdviceTrainerPage());
            });

            DeleteAdviceCommand = new Command(async() =>
            {
                await workoutAdviceApiService.Delete(WorkoutAdvice.Id);
                await Navigation.PopAsync();
                await Navigation.PushAsync(new WorkoutAdviceTrainerPage());
            });
        }
Esempio n. 7
0
 public WorkoutAdviceCreatePage(WorkoutAdvice workoutAdvice)
 {
     InitializeComponent();
     BindingContext = WorkoutAdviceCreateViewModel = new WorkoutAdviceCreateViewModel(workoutAdvice);
     WorkoutAdviceCreateViewModel.Navigation = Navigation;
 }