public virtual IActionResult Edit(ProfessorModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageProfessors))
            {
                return(AccessDeniedView());
            }

            //try to get a professor with the specified id
            var professor = _professorService.GetProfessorById(model.Id);

            if (professor == null)
            {
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                professor = model.ToEntity(professor);
                _professorService.UpdateProfessor(professor);
                var address = model.AddressModel.ToEntity <Address>();
                SaveAddress(model.AddressModel, address);

                SuccessNotification("Professor Updated");

                //activity log
                //_userActivityService.InsertActivity("EditProfessor","ActivityLog EditProfessor", professor);

                if (!continueEditing)
                {
                    return(RedirectToAction("List"));
                }

                //selected tab
                SaveSelectedTabName();

                return(RedirectToAction("Edit", new { id = professor.Id }));
            }

            //prepare model
            model = _professorModelFactory.PrepareProfessorModel(model, professor, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }
        public virtual IActionResult Create(ProfessorModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageProfessors))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var professor = model.ToEntity <Professor>();
                _professorService.InsertProfessor(professor);

                SuccessNotification("Admin.ContentManagement.Professors.Added");

                //activity log
                //_userActivityService.InsertActivity("AddNewProfessor", "ActivityLog.AddNewProfessor", professor);

                var address = model.AddressModel.ToEntity <Address>();
                SaveAddress(model.AddressModel, address);
                if (address.Id != 0)
                {
                    professor.AddressId = address.Id;
                    _professorService.UpdateProfessor(professor);
                }
                if (!continueEditing)
                {
                    return(RedirectToAction("List"));
                }

                //selected tab
                SaveSelectedTabName();

                return(RedirectToAction("Edit", new { id = professor.Id }));
            }

            //prepare model
            model = _professorModelFactory.PrepareProfessorModel(model, null, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }