public static int AddSchoolWithDefaultUser(School schoolToInsert)
        {
            //create DBContext object
            using (var smsDB = new SMSEntities())
            {
                //Add Student object into Students DBset
                smsDB.Schools.Add(schoolToInsert);

                //School school = new GetSchool
                // Get Admin User
                //UserGroup userGroup = GetUserGroup(1);

                // ExternalUserInfo
                ExternalUserInfo externalUserToAdd = new ExternalUserInfo();
                externalUserToAdd.SchoolID  = schoolToInsert.SchoolID;
                externalUserToAdd.FirstName = "Admin";
                externalUserToAdd.LastName  = "Admin";
                int result = DA_ExternalUser.AddExternalUserInfo(externalUserToAdd);

                ExternalUserLogin externalUserLogin = new ExternalUserLogin();
                //externalUserLogin.
                // ExternalUserLogin

                // ExternalUserLogin_UserGroup_Mapping

                //
                // call SaveChanges method to save student into database
                return(smsDB.SaveChanges());
            }
        }
        public ActionResult Login(LoginCredentials login)
        {
            /**
             *  UserGroupId	UserGroupName
             *  1	Admin
             *  2	Parent
             *  3	Student
             *  4	Teacher
             *  5	View
             */

            ExternalUserLogin extuser = DA_Login.GetExternalUser(login);

            if (extuser != null)
            {
                if (extuser.Password != login.Password)
                {
                    return(View("Index"));
                }

                ExternalUserInfo exUserInfo = DA_ExternalUser.GetExternalUserInfo(extuser.ExternalUserInfoID);
                Session["CurrentUser"] = exUserInfo;
                int userGroupID = DA_ExternalUser.GetExternalUserGroup(extuser.ExternalUserLoginID).UserGroupId;
                Session["UserGroupID"] = userGroupID;
                if (userGroupID == 3) // student
                {
                    StudentInfo sInfo = DA_Student.GetStudentInfoByLoginID(extuser.ExternalUserLoginID);
                    return(View("~/Views/Student/Index.cshtml", sInfo));
                }

                if (userGroupID == 4) // Teacher
                {
                    return(View("~/Views/Teacher/Index.cshtml", exUserInfo));
                }
            }
            else
            {
                InternalUser interanlUser = DA_Login.GetInternalUser(login);

                if (interanlUser != null)
                {
                    if (interanlUser.Password != login.Password)
                    {
                        return(View("Index"));
                    }
                    Session["CurrentUser"] = interanlUser;
                    Session["UserGroupID"] = interanlUser.UserGroupId;
                }
                else
                {
                    return(View("Index"));
                }
            }



            return(View());
        }
        public async Task <IActionResult> PhoneLogin([FromForm] ExternalUserLogin obj)
        {
            var user = new ApplicationUser();

            user.Email        = obj.Email;
            user.UserName     = obj.PhoneNumber;
            user.FullName     = obj.FullName;
            user.PasswordHash = obj.PhoneNumber;
            user.Type         = obj.TypeUser;
            return(await ExternalUser(user));
        }
        public static int AddExternalUserLogin(ExternalUserLogin userToInsert)
        {
            //create DBContext object
            using (var smsDB = new SMSEntities())
            {
                //Add Student object into Students DBset
                smsDB.ExternalUserLogins.Add(userToInsert);

                // call SaveChanges method to save student into database
                return(smsDB.SaveChanges());
            }
        }
        public async Task <IActionResult> FacebookLogin([FromForm] ExternalUserLogin obj)
        {
            FacebookClient _facebook = new FacebookClient();

            _facebook.AppId       = _externalProvider.Value.Facebook.AppId;
            _facebook.AppSecret   = _externalProvider.Value.Facebook.AppSecret;
            _facebook.AccessToken = obj.AccessToken;

            string result  = _facebook.Get("/me?fields=id,name,picture.width(240).height(240),email").ToString();
            var    tmpUser = JsonConvert.DeserializeObject <ExternalUserModel>(result);

            if (tmpUser.id == 0)
            {
                var responseEr = new ResponseError();
                responseEr.status = "Có lỗi xảy ra không liên kết được với Facebook!";
                return(Ok(responseEr));
            }

            var user = new ApplicationUser();

            user.Email        = (tmpUser.email == null ? obj.Email : tmpUser.email);
            user.UserName     = "******" + tmpUser.id;
            user.FullName     = tmpUser.name;
            user.PasswordHash = tmpUser.id.ToString();
            user.Avatar       = tmpUser.picture.data.url;

            var userEmail = await _userStoreExtend.FindByEmailAsync(tmpUser.email);

            if (userEmail != null)
            {
                var response    = new Response();
                var permissions = await _roleStoreExtend.ReadByUser(userEmail.Id);

                //Mapping
                var userInfo = _mapper.Map <UserInfo>(userEmail);
                userInfo.Permissions = permissions;
                string[] output = userInfo.FullName.Split(' ');
                foreach (string s in output)
                {
                    userInfo.LetterAvatar += s[0];
                }
                userInfo.Avatar       = (userInfo.Avatar == null ? "" : _imagePath.Value.URL + userInfo.Avatar);
                userInfo.PhoneNumber  = (userInfo.PhoneNumber == null ? "" : userInfo.PhoneNumber);
                userInfo.LetterAvatar = userInfo.LetterAvatar.ToUpper();
                response.response     = userInfo;
                return(Ok(response));
            }

            return(await ExternalUser(user));
        }
        public async Task <IActionResult> ZaloRegister([FromForm] ExternalUserLogin obj)
        {
            Zalo3rdAppInfo   appInfo   = new Zalo3rdAppInfo(Int64.Parse(_externalProvider.Value.Zalo.AppId), _externalProvider.Value.Zalo.SecretCode, _externalProvider.Value.Zalo.CallbackUrl);
            Zalo3rdAppClient appClient = new Zalo3rdAppClient(appInfo);

            JObject profile = appClient.getProfile(obj.AccessToken, "name, id, picture");
            var     tmpData = profile.ToObject <ExternalUserModel>();
            var     user    = new ApplicationUser();

            user.Email        = obj.Email;
            user.UserName     = "******" + tmpData.id;
            user.FullName     = tmpData.name;
            user.PasswordHash = tmpData.id.ToString();
            user.Avatar       = tmpData.picture.data.url;
            return(await ExternalUser(user));
        }
        public static bool CheckExternalUserGroupTypeIsAdmin(int?externalUserInfoId)
        {
            bool result = false;

            using (var smsDB = new SMSEntities())
            {
                ExternalUserLogin externalUserLogin = smsDB.ExternalUserLogins.SingleOrDefault(m => m.ExternalUserInfoID == externalUserInfoId);

                ExternalUserLogin_UserGroup_Mapping userMapping = smsDB.ExternalUserLogin_UserGroup_Mapping.SingleOrDefault(m => m.ExternalUserLoginID == externalUserLogin.ExternalUserLoginID && m.UserGroupId == 1);

                if (userMapping != null)
                {
                    result = true;
                }
            }
            return(result);
        }
        public static int DeleteExternalUserLogin(int?externalUserLoginId)
        {
            using (var smsDB = new SMSEntities())
            {
                ExternalUserLogin externalUserLogin = smsDB.ExternalUserLogins.Find(externalUserLoginId);

                if (externalUserLogin != null)
                {
                    smsDB.ExternalUserLogins.Remove(externalUserLogin);
                    return(smsDB.SaveChanges());
                }
                else
                {
                    return(0); // no record found
                }
            }
        }
Ejemplo n.º 9
0
 public static UserGroup  Login(LoginCredentials login)
 {
     using (var smsDB = new SMSEntities())
     {
         ExternalUserLogin extuser = smsDB.ExternalUserLogins.FirstOrDefault(m => m.ExternalUserName == login.Username);
         if (extuser != null)
         {
             var tmp = smsDB.ExternalUserLogin_UserGroup_Mapping.FirstOrDefault(m => m.ExternalUserLoginID == extuser.ExternalUserLoginID);
             return(tmp.UserGroup);
         }
         InternalUser interanlUser = smsDB.InternalUsers.FirstOrDefault(m => m.UserName == login.Username);
         if (interanlUser != null)
         {
             return(interanlUser.UserGroup);
         }
     }
     return(null);
 }
        public static int EditExternalUserLogin(ExternalUserLogin userToEdit)
        {
            //create DBContext object
            using (var smsDB = new SMSEntities())
            {
                ExternalUserLogin externalUserLogin = smsDB.ExternalUserLogins.Find(userToEdit.ExternalUserLoginID);
                externalUserLogin.CreateDate            = userToEdit.CreateDate;
                externalUserLogin.CurrentSuccesfulLogin = userToEdit.CurrentSuccesfulLogin;
                externalUserLogin.Disabled           = userToEdit.Disabled;
                externalUserLogin.ExternalUserInfoID = userToEdit.ExternalUserInfoID;
                externalUserLogin.ExternalUserName   = userToEdit.ExternalUserName;
                externalUserLogin.FailedLoginCount   = userToEdit.FailedLoginCount;
                externalUserLogin.LastSuccesfulLogin = userToEdit.LastSuccesfulLogin;
                externalUserLogin.Password           = userToEdit.Password;

                return(smsDB.SaveChanges());
            }
        }
        public async Task <IActionResult> GoogleLogin([FromForm] ExternalUserLogin obj)
        {
            // Confirm JWT is valid
            try
            {
                var validPayload = await GoogleJsonWebSignature.ValidateAsync(obj.AccessToken);

                var httpClient = new HttpClient();
                var requestUri = new Uri("https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=" + obj.AccessToken);
                //httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", obj.AccessToken);

                HttpResponseMessage httpResponseMessage;
                try
                {
                    httpResponseMessage = httpClient.GetAsync(requestUri).Result;

                    var response           = httpResponseMessage.Content.ReadAsStringAsync().Result;
                    var googleApiTokenInfo = JsonConvert.DeserializeObject <GoogleApiTokenInfo>(response);

                    if (googleApiTokenInfo.email == null)
                    {
                        var responseEr = new ResponseError();
                        responseEr.status = "Có lỗi xảy ra không liên kết được với Google!";
                        return(Ok(responseEr));
                    }
                    //TODO
                    var user = new ApplicationUser();
                    user.Email        = googleApiTokenInfo.email;
                    user.UserName     = googleApiTokenInfo.email;
                    user.FullName     = googleApiTokenInfo.name;
                    user.PasswordHash = googleApiTokenInfo.email;
                    user.Avatar       = googleApiTokenInfo.picture;
                    return(await ExternalUser(user));
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
        public static int AddSchool(School schoolToInsert)
        {
            //create DBContext object
            using (var smsDB = new SMSEntities())
            {
                //Add Student object into Students DBset
                schoolToInsert.CreateDate = DateTime.Now;
                schoolToInsert.IsActive   = true;
                smsDB.Schools.Add(schoolToInsert);

                // call SaveChanges method to save student into database
                smsDB.SaveChanges();

                // Add Default Admin User into database when school is added.
                ExternalUserInfo externalUserInfo = new ExternalUserInfo();
                externalUserInfo.SchoolID = schoolToInsert.SchoolID;
                externalUserInfo.EmailID  = "Admin@" + externalUserInfo.SchoolID + ".com";

                smsDB.ExternalUserInfoes.Add(externalUserInfo);
                smsDB.SaveChanges();

                ExternalUserLogin externalUserLogin = new ExternalUserLogin();
                externalUserLogin.ExternalUserInfoID = externalUserInfo.ExternalUserInfoID;
                externalUserLogin.ExternalUserName   = "******" + schoolToInsert.SchoolID;
                externalUserLogin.Password           = "******";

                smsDB.ExternalUserLogins.Add(externalUserLogin);
                smsDB.SaveChanges();

                ExternalUserLogin_UserGroup_Mapping userMapping = new ExternalUserLogin_UserGroup_Mapping();
                userMapping.ExternalUserLoginID = externalUserLogin.ExternalUserLoginID;
                userMapping.UserGroupId         = 1;

                smsDB.ExternalUserLogin_UserGroup_Mapping.Add(userMapping);
                return(smsDB.SaveChanges());
            }
        }
Ejemplo n.º 13
0
 public int DeleteExternalUserLogin(ExternalUserLogin obj)
 {
     _ctx.ExternalUserLogins.Remove(obj);
     return(_ctx.SaveChanges());
 }
Ejemplo n.º 14
0
 public int UpdateExternalUserLogin(ExternalUserLogin obj)
 {
     _ctx.ExternalUserLogins.Add(obj);
     return(_ctx.SaveChanges());
 }