示例#1
0
        public IHttpActionResult Create(CreateTeacher model)
        {
            IHttpActionResult httpActionResult;
            ErrorsModel       errors = new ErrorsModel();

            if (string.IsNullOrEmpty(model.Code))
            {
                errors.Add("Mã giảng viên là trường bắt buộc");
            }

            if (string.IsNullOrEmpty(model.Name))
            {
                errors.Add("Tên giảng viên là trường bắt buộc");
            }

            if (errors.Errors.Count == 0)
            {
                Teachers t = new Teachers();
                t.Code = model.Code;
                t.Name = model.Name;
                t      = _db.Teachers.Add(t);

                this._db.SaveChanges();

                TeacherModel viewModel = new TeacherModel(t);

                httpActionResult = Ok(viewModel);
            }
            else
            {
                httpActionResult = new ErrorActionResult(Request, System.Net.HttpStatusCode.BadRequest, errors);
            }

            return(httpActionResult);
        }
        public async Task <object> Post(CreateTeacher request)
        {
            var response = new BaseResponse();
            var entity   = request.ConvertTo <Teacher>();
            var result   = await _teacherService.Create(entity);

            if (request.CreateNewUserLogin)
            {
                var userLogin = new CreateUser()
                {
                    FirstName   = entity.FirstName,
                    LastName    = entity.LastName,
                    DisplayName = entity.FirstName + " " + entity.LastName,
                    UserName    = entity.FirstName.ToLower() + entity.LastName.ToLower(),
                    Password    = entity.FirstName.ToLower() + entity.LastName.ToLower(),
                    RoleId      = RoleEnum.Teacher.ToDescription()
                };
                await _userApiService.Post(userLogin);
            }

            response.Success    = true;
            response.StatusCode = (int)HttpStatusCode.Created;
            response.Message    = "Create teacher success";
            response.Results    = result;
            return(response);
        }
示例#3
0
        public async Task creating_teacher_given_valid_credentials_should_return_no_content()
        {
            string email    = "*****@*****.**";
            string password = "******";
            var    user     = await GetUserAsync(email);

            var token = await GetTokenAsync(email, password);

            var command = new CreateTeacher
            {
            };
            var payload = GetPayload(command);

            var request = CreateRequest($"http://localhost:5000/teachers", payload,
                                        new Dictionary <string, string>
            {
                { "Authorization", $"Bearer {token}" },
                { "Content-type", "application/json" }
            });

            var response = await request.PostAsync();

            response.StatusCode.ShouldBeEquivalentTo(HttpStatusCode.Created);
            response.Headers.Location.ShouldBeEquivalentTo($"/teachers/{user.Id}");
        }
示例#4
0
        private void btnCreateTeacher_Click(object sender, RoutedEventArgs e)
        {
            object Result = new CreateTeacher(
                new Entities.Teacher(
                    Guid.NewGuid().ToString("N"),
                    txtTeacherFirstName.Text,
                    txtTeacherLastName.Text,
                    txtTeacherPhoneExtension.Text)).Execute();

            Teachers.Add(Result as Teacher);
        }
示例#5
0
文件: Main.cs 项目: ajamiscosa/enr-v3
        private void CreateTeacherAction(object sender, EventArgs e)
        {
            RadPageViewPage createTeacherPage = new RadPageViewPage();

            createTeacherPage.Text = "Create Teacher";

            CreateTeacher createTeacher = new CreateTeacher();

            createTeacher.Text   = "Create Teacher";
            createTeacher.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right;

            createTeacherPage.Controls.Add(createTeacher);

            teachersPage.Pages.Add(createTeacherPage);
            teachersPage.SelectedPage = createTeacherPage;
        }
示例#6
0
        public ActionResult Create(CreateTeacher createTeacher)
        {
            if (ModelState.IsValid && createTeacher != null)
            {
                using (var db = new SpecialtySelectorDbContext())
                {
                    var adminId = this.User.Identity.GetUserId();
                    var subnew  = new List <Subject>();

                    if (createTeacher.Subject != null)
                    {
                        foreach (var kvp in createTeacher.Subject)
                        {
                            var asd = db.Subjects.FirstOrDefault(x => x.Id == kvp);
                            subnew.Add(asd);
                        }
                    }

                    var teacher = new Teacher()
                    {
                        FirstName     = createTeacher.FirstName,
                        SecondName    = createTeacher.SecondName,
                        AdminId       = adminId,
                        LastName      = createTeacher.LastName,
                        AcademicTitle = createTeacher.AcademicTitle,
                        Degree        = createTeacher.Degree,
                        TeacherInfo   = createTeacher.TeacherInfo,
                        Subjects      = subnew
                    };

                    db.Teachers.Add(teacher);
                    db.SaveChanges();

                    return(RedirectToAction("Details", new { id = teacher.Id }));
                }
            }

            using (var db = new SpecialtySelectorDbContext())
            {
                var subjects = db.Subjects.ToList();

                ViewBag.Subjects = subjects;

                return(View(createTeacher));
            }
        }
        // GET: Teachers/Create
        public ActionResult Create()
        {
            string                UserID        = "";
            CreateTeacher         createTeacher = new CreateTeacher();
            List <SelectListItem> Schools       = null;

            try
            {
                UserID           = User.Identity.GetUserId();
                Schools          = Common.GetSchoolsForDropdown(db, User);
                ViewBag.SchoolID = Schools;
                if (Schools.Count == 1)
                {
                    createTeacher.SchoolID = int.Parse(Schools[0].Value);
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Exception Initializing Teacher Creation :: " + ex.ToString());
            }

            return(View(createTeacher));
        }
示例#8
0
 public async Task<IActionResult> Post([FromBody]CreateTeacher command)
 {
     await DispatchAsync(command);
     return Created($"/teachers/{command.UserId}", null);
 }
        public ActionResult Create([Bind(Include = "SchoolID,UserName,Password,ConfirmPassword,FirstName,MiddleName,LastName,Email,Email,PhoneNumber")] CreateTeacher createTeacher)
        {
            ApplicationUser        user        = null;
            ApplicationUserManager UserMgr     = null;
            AspNetUser             aspNetUser  = null;
            AspNetRole             TeacherRole = null;
            School         school = null;
            IdentityResult result = null;

            if (ModelState.IsValid)
            {
                //TOOD : Create User
                user = new ApplicationUser
                {
                    UserName    = createTeacher.UserName,
                    Email       = createTeacher.Email,
                    FirstName   = createTeacher.FirstName,
                    MiddleName  = createTeacher.MiddleName,
                    LastName    = createTeacher.LastName,
                    PhoneNumber = createTeacher.PhoneNumber
                };
                try
                {
                    UserMgr = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();

                    aspNetUser = db.AspNetUsers.Where(a => a.UserName == createTeacher.UserName).FirstOrDefault();

                    if (aspNetUser != null && aspNetUser.Id != "")
                    {
                        throw new Exception("Username is not available");
                    }
                    if (aspNetUser == null)
                    {
                        //Attempt to create the AspNetUser Identity with credentials.
                        //Emails must be unique - May want to remove this requirement
                        result = UserMgr.Create(user, createTeacher.Password);
                        if (!result.Succeeded)
                        {
                            ModelState.AddModelError("", "Unable to create user " + createTeacher.UserName);
                            foreach (string err in result.Errors)
                            {
                                ModelState.AddModelError("", err);
                            }
                            throw new Exception();
                        }
                        //Reload aspNetUser variable
                        aspNetUser = db.AspNetUsers.Where(a => a.UserName == createTeacher.UserName).FirstOrDefault();
                    }

                    TeacherRole = aspNetUser.AspNetRoles.Where(r => r.Name == "Teacher").FirstOrDefault();
                    //If the User is new OR the user was not successfully added to the teacher role previously
                    //Attempt to add the User to the Teacher Role
                    if (TeacherRole == null)
                    {
                        result = UserMgr.AddToRole(aspNetUser.Id, "Teacher");
                        if (!result.Succeeded)
                        {
                            ModelState.AddModelError("", "Unable to assign " + aspNetUser.FullName + " the role of 'Teacher'");
                            foreach (string err in result.Errors)
                            {
                                ModelState.AddModelError("", err);
                            }
                            throw new Exception();
                        }
                    }

                    //Get School to assign to the User and the user to the school
                    school = db.Schools.Where(s => s.SchoolID == createTeacher.SchoolID).FirstOrDefault();
                    aspNetUser.Schools.Add(school);
                    school.AspNetUsers.Add(aspNetUser);
                    if (db.SaveChanges() > 0)
                    {
                        // Send an email with this link
                        string code        = UserMgr.GenerateEmailConfirmationToken(user.Id);
                        var    callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                        UserMgr.SendEmail(user.Id, "Confirm your account", "<h2>Welcome to Online Permission Slips by Trash Panda Solutions.</h2>" + Environment.NewLine + Environment.NewLine +
                                          "You have been added to " + school.SchoolName + " with a Teacher Account" + Environment.NewLine + Environment.NewLine +
                                          "Your user name is: " + createTeacher.UserName + Environment.NewLine +
                                          "Your password will be provided by your school admin" + Environment.NewLine + Environment.NewLine +
                                          "You can confirm your account using the following link: <a href=\"" + callbackUrl + "\">Click Here to confirm your account</a>");

                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Login Created but an error occurred trying to assign Teacher to School");
                    }

                    return(RedirectToAction("Index"));
                }
                catch (DbEntityValidationException ex)
                {
                    //ModelState.AddModelError("", "Login Created but an error occurred trying to assign Teacher to School");
                    foreach (DbEntityValidationResult ValidationErrors in ex.EntityValidationErrors)
                    {
                        if (!ValidationErrors.IsValid)
                        {
                            foreach (DbValidationError ValidationError in ValidationErrors.ValidationErrors)
                            {
                                ModelState.AddModelError(ValidationError.PropertyName, ValidationError.ErrorMessage);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    //ModelState.AddModelError("", "Login Created but an error occurred trying to assign Teacher to School");
                    ModelState.AddModelError("", ex.Message);
                    foreach (var key in ex.Data.Keys)
                    {
                        ModelState.AddModelError("", key + " :: " + ex.Data[key].ToString());
                    }
                }
            }


            ViewBag.SchoolID = Common.GetSchoolsForDropdown(db, User);
            return(View(createTeacher));
        }