Exemplo n.º 1
0
        public async Task <ActionResult> Save(ProfessorFormViewModel form)
        {
            if (ModelState.IsValid)
            {
                ProfessorDto newProfessor = null;

                try
                {
                    ProfessorDto professor = (form.IsNew)
                        ? new ProfessorDto()
                        : await _professorRepository.GetProfessorById(form.Id.Value);

                    professor.FirstName       = form.FirstName;
                    professor.LastName        = form.LastName;
                    professor.Email           = form.Email;
                    professor.CellphoneNumber = form.CellphoneNumber;

                    if (form.IsNew)
                    {
                        newProfessor = await _professorRepository.PostProfessor(professor);

                        var registerBindingModel = new RegisterBindingModel
                        {
                            Email    = professor.Email,
                            Password = "******",
                            UserId   = newProfessor.Id,
                            UserRole = "AppProfessor"
                        };

                        await _accountRepository.RegisterAccount(registerBindingModel);
                    }
                    else
                    {
                        await _professorRepository.PutProfessor(professor.Id, professor);
                    }

                    AddPageAlerts(ViewHelpers.PageAlertType.Success, "Your changes have been saved succesfully.");

                    return(RedirectToAction("Index"));
                }
                catch (BadRequestException bre)
                {
                    AddErrorsFromAdycHttpExceptionToModelState(bre, ModelState);

                    if (newProfessor != null)
                    {
                        await _accountRepository.DeleteAccount(newProfessor.Email);
                    }
                }
            }

            // Add properties to layout
            AddPageHeader(form.Title, "");

            AddBreadcrumb("Professors", Url.Action("Index", "Professors", new { area = "Admin" }));
            AddBreadcrumb(form.Title, "");

            return(View("ProfessorForm", form));
        }
Exemplo n.º 2
0
 public async void Adicionar(Professor paramProfessor)
 {
     if ((paramProfessor == null) || (string.IsNullOrWhiteSpace(paramProfessor.Nome)))
     {
         await App.Current.MainPage.DisplayAlert("Atenção", "O campo nome é obrigatório", "OK");
     }
     else if (await ProfessorRepository.PostProfessor(paramProfessor))
     {
         await App.Current.MainPage.Navigation.PopAsync();
     }
     else
     {
         await App.Current.MainPage.DisplayAlert("Falhou", "Desculpe, ocorreu um erro inesperado =(", "OK");
     }
 }