Ejemplo n.º 1
0
        public Result <object> AssignRole(string username, int roleId)
        {
            Result <object> result = new Result <object>();

            try
            {
                Result <OlescUser> selectedUserResult = GetUser(username);

                if (selectedUserResult.isSuccess)
                {
                    /*If this user does not have this role, if count = 0 it means he doesn't have this role */
                    if (selectedUserResult.resultObject.UserRoles.Where(r => r.RoleID == roleId).Count() == 0)
                    {
                        OlescUserRole newRole = new OlescUserRole();
                        newRole.UserID = selectedUserResult.resultObject.ID;
                        newRole.RoleID = roleId;

                        dbCon.OlescUserRoles.Add(newRole);

                        int NumOfRecords = dbCon.SaveChanges();
                        if (NumOfRecords >= 1)
                        {
                            result.isSuccess    = true;
                            result.message      = "role assigned succesfully";
                            result.resultObject = result;
                        }
                        else
                        {
                            result.isSuccess    = false;
                            result.message      = "role was not assigned";
                            result.resultObject = null;
                        }
                    }
                    else
                    {
                        result.isSuccess    = false;
                        result.message      = "User already has this role";
                        result.resultObject = null;
                    }
                }
                else
                {
                    result.message      = selectedUserResult.message;
                    result.isSuccess    = selectedUserResult.isSuccess;
                    result.resultObject = null;
                }
            }
            catch (Exception e)
            {
                result.isSuccess    = false;
                result.message      = e.Message;
                result.resultObject = null;
            }

            return(result);
        }
Ejemplo n.º 2
0
        public Result <object> DeAssignRole(string username, int roleId)
        {
            Result <object> result = new Result <object>();

            try
            {
                Result <OlescUser> selectedUserResult = GetUser(username);

                if (selectedUserResult.isSuccess)
                {
                    OlescUserRole userrole = selectedUserResult.resultObject.UserRoles.Where(r => r.RoleID == roleId).FirstOrDefault();
                    /*If user has this role */
                    if (userrole != null)
                    {
                        dbCon.OlescUserRoles.Remove(userrole);

                        int NumOfRecords = dbCon.SaveChanges();
                        if (NumOfRecords >= 1)
                        {
                            result.isSuccess    = true;
                            result.message      = "role deassigned succesfully";
                            result.resultObject = result;
                        }
                        else
                        {
                            result.isSuccess    = false;
                            result.message      = "role was not assigned";
                            result.resultObject = null;
                        }
                    }
                    else
                    {
                        result.isSuccess    = false;
                        result.message      = "User doesn't have this role";
                        result.resultObject = null;
                    }
                }
                else
                {
                    result.message      = selectedUserResult.message;
                    result.isSuccess    = selectedUserResult.isSuccess;
                    result.resultObject = null;
                }
            }
            catch (Exception e)
            {
                result.isSuccess    = false;
                result.message      = e.Message;
                result.resultObject = null;
            }

            return(result);
        }
Ejemplo n.º 3
0
        public Result <OlescUser> Register(OlescUser newUser, UserProfile newUserProfile, List <OlescRole> roles)
        {
            int NumOfRecords = 0;

            /* Create the result object ; which will be returned at the end
             * of the method */
            Result <OlescUser> result = new Result <OlescUser>();
            /* Database Connection */
            OlescEntities dbCon = null;

            try
            {
                /* Database Connection */
                dbCon = new OlescEntities();

                /* Adding a newUser to User table,
                 * and returns the object with user ID */
                newUser.isActive = "A";

                /* Take the user password and turn in into MD5 hash,
                 * then save the hash in the database */
                newUser.Password = StringUtility.CreateMD5Hash(newUser.Password);

                newUser = dbCon.OlescUsers.Add(newUser);

                /* assign ID to UserProfile table; because it's PF */
                //newUserProfile.UserID = newUser.ID;
                newUserProfile.user = newUser;

                /* Adding a newUserProfile to UserProfile table,
                 * and returns the object */
                newUserProfile = dbCon.UserProfiles.Add(newUserProfile);

                foreach (OlescRole role in roles)
                {
                    /* creating an object for userrole, using userrole table */
                    OlescUserRole newUserRole = new OlescUserRole();

                    /* What I need to assign a role is to have RoleID and UserID
                     * "Check database table UserRole"*/
                    //newUserRole.UserID = newUser.ID;
                    newUserRole.User   = newUser;
                    newUserRole.RoleID = role.ID;

                    /*Adding the role assigned tp userRole table*/
                    newUserRole = dbCon.OlescUserRoles.Add(newUserRole);
                }

                NumOfRecords = dbCon.SaveChanges();
                /* if there is at least 1 record saved -> true, if not -> false */
                if (NumOfRecords >= 1)
                {
                    result.isSuccess = true;
                    result.message   = "Thank you " + newUser.UserProfile.FirstName + " for regstering in OLESC!";


                    NotificationManagementService nms = new NotificationManagementService();

                    /* Email notification service */
                    /* Conent */
                    String emailContent;
                    emailContent  = "Thank you for registering in OLESC";
                    emailContent += "\nYour Username is your email: " + newUser.Email;
                    emailContent += "\nEnjoy our Online Learning Srvices!";
                    emailContent += "\n\nRegards,\nOLESC Team";

                    /* Subject*/
                    String emailSubject;
                    emailSubject = "OLESC Registration";

                    /* Sending the email */
                    nms.Notify(newUser.Email, null, null, emailSubject, emailContent);
                }
                else
                {
                    result.isSuccess = false;
                    result.message   = "Error in registration, please check you information";
                }
            }
            catch (Exception e)
            {
                result.isSuccess    = false;
                result.message      = e.Message;
                result.resultObject = null;
            }
            /* Whatever you want to clean up, close after error to delete from memory*/
            finally
            {
                if (dbCon != null)
                {
                    /* Same as in Java dbCon.Close() */
                    dbCon.Dispose();
                }
            }

            return(result);
        }