Exemplo n.º 1
0
        public async Task <ResponseResult <SchoolTeacherViewModel> > AddTeacher(SchoolTeacherViewModel data, SchoolProfile school)
        {
            using (var trans = _context.Database.BeginTransaction())
            {
                var r        = Shared.String.GenerateRandom(4, false, true, false, false);
                var username = $"{data.FirstName[0]}{data.LastName.ToLower()}_{r}@{school.Name.Replace(" ", "_")}.com";

                //check if studentID already exist
                while (_manager.GetList(o => o.User.UserName == username, o => o.User).Count() > 0)
                {
                    r        = Shared.String.GenerateRandom(4, false, true, false, false);
                    username = $"{data.FirstName[0]}{data.LastName.ToLower()}_{r}@{school.Name.Replace(" ", "_")}.com";
                }

                var user = new SchoolUser
                {
                    UserName       = username,
                    Email          = username,
                    EmailConfirmed = true,
                    //extended properties
                    FirstName        = data.FirstName,
                    LastName         = data.LastName,
                    School           = school,
                    Type             = UserType.Teacher,
                    InsertedDateTime = DateTime.Now,
                    UpdatedDateTime  = DateTime.Now,
                };

                var password = $"{data.LastName.ToProperCase()}{r}!";
                var result   = await _userManager.CreateAsync(user, password);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, "Teacher");

                    var teacher = await _manager.AddAsync(new SchoolTeacher()
                    {
                        FirstName  = data.FirstName,
                        MiddleName = data.MiddleName,
                        LastName   = data.LastName,
                        Position   = data.Position,
                        User       = user
                    });

                    data.Id = teacher.Id;
                    await trans.CommitAsync();
                }
            }

            return(ResponseResult <SchoolTeacherViewModel> .SetSuccess(data));
        }
Exemplo n.º 2
0
        public async Task <ResponseResult <SchoolTeacherViewModel> > UpdateTeacher(SchoolTeacherViewModel data, SchoolProfile school)
        {
            using (var trans = _context.Database.BeginTransaction())
            {
                var teacher = _manager.GetSingle(o => o.Id == data.Id);
                teacher.LastName   = data.LastName;
                teacher.FirstName  = data.FirstName;
                teacher.MiddleName = data.MiddleName;
                teacher.Position   = data.Position;

                await _manager.UpdateAsync(teacher);

                await trans.CommitAsync();
            }

            return(ResponseResult <SchoolTeacherViewModel> .SetSuccess(data));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> EditData(SchoolTeacherViewModel data)
        {
            var user = await CurrentUser();

            if (Validate())
            {
                var result = await _teacher.UpdateTeacher(data, user.School);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Success", new { message = "Updating teacher " + data.FullName + " succeeded!" }));
                }
                else
                {
                    AddPageAlerts(PageAlertType.Warning, result.Error.Description);
                }
            }
            AddPageHeader("Teachers");
            AddBreadcrumb("Teachers", "/teacher/" + user.School.Id);
            AddBreadcrumb(data.FullName, "");
            return(View(data));
        }