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); }
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); }
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); }