public async Task AddClient(AddClientToTrainerInputModel input) { var client = await this.db.Users.FirstOrDefaultAsync(u => u.Email == input.Email); if (client == null) { throw new ArgumentException("Няма регистриран човек с този е-мейл."); } if (client.Id == input.TrainerId) { throw new ArgumentException("Няма как сам да си си треньор :)."); } Trainer trainer = (Trainer)await this.db.Users.FirstOrDefaultAsync(u => u.Id == input.TrainerId); if (trainer == null) { throw new ArgumentException("Невалиден опит. Опитай пак!"); } if (trainer.Clients.Contains(client)) { throw new InvalidOperationException("Този човек вече е твой клиент!"); } trainer.Clients.Add(client); client.Trainer = trainer; client.TrainerId = trainer.Id; await this.db.SaveChangesAsync(); }
public IActionResult AddClient() { var viewModel = new AddClientToTrainerInputModel() { TrainerId = this.User.FindFirstValue(ClaimTypes.NameIdentifier), }; return(this.View(viewModel)); }
public async Task <IActionResult> RemoveClient(RemoveClientFromTrainerInputModel input) { try { await this.trainersService.RemoveClient(input); } catch (Exception e) { this.ModelState.AddModelError("client", e.Message); } if (!this.ModelState.IsValid) { var viewModel = new AddClientToTrainerInputModel() { TrainerId = this.User.FindFirstValue(ClaimTypes.NameIdentifier), }; return(this.View(viewModel)); } return(this.Redirect("/Trainer/Trainer/ControlPanel")); }