public static string DeleteTask(int TaskId, string DefaultConnection, string strCurrentUser) { var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(DefaultConnection); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var objTask = context.AdefHelpDeskTasks.SingleOrDefault(x => x.TaskId == TaskId); #region Validate if (objTask == null) { return("Task Not found"); } if (context.AdefHelpDeskTaskDetails.FirstOrDefault(x => x.TaskId == objTask.TaskId) != null) { return("Must delete all Comments and Work items first."); } #endregion // Delete associated records var colTaskAssociations = from TaskAssociations in context.AdefHelpDeskTaskAssociations where TaskAssociations.TaskId == objTask.TaskId select TaskAssociations; context.AdefHelpDeskTaskAssociations.RemoveRange(colTaskAssociations); var colTaskCategories = from TaskCategories in context.AdefHelpDeskTaskCategories where TaskCategories.TaskId == objTask.TaskId select TaskCategories; context.AdefHelpDeskTaskCategories.RemoveRange(colTaskCategories); var colAdefHelpDeskLog = from AdefHelpDeskLog in context.AdefHelpDeskLog where AdefHelpDeskLog.TaskId == objTask.TaskId select AdefHelpDeskLog; context.AdefHelpDeskLog.RemoveRange(colAdefHelpDeskLog); context.SaveChanges(); // Log it Log.InsertSystemLog(DefaultConnection, Constants.TaskDetailDeletion, strCurrentUser, $"({strCurrentUser}) Deleted Task # {objTask.TaskId} ({objTask.Description})"); // Delete Task context.AdefHelpDeskTasks.Remove(objTask); context.SaveChanges(); } return(""); }
public static string DeleteUser(int id, UserManager <ApplicationUser> _userManager, string ConnectionString, string strCurrentUser) { try { var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { // Get User var objDTOUser = (from objuser in context.AdefHelpDeskUsers .Include(role => role.AdefHelpDeskUserRoles) where objuser.UserId == id select objuser).FirstOrDefault(); if (objDTOUser == null) { return("NotFound"); } // Cannot delete yourself if (objDTOUser.Username == strCurrentUser) { return("You cannot delete your own account"); } // Get user in UserManager var objUser = _userManager.FindByNameAsync(objDTOUser.Username).Result; // Delete all roles foreach (var itemRole in objDTOUser.AdefHelpDeskUserRoles) { var objUserRole = context.AdefHelpDeskUserRoles.SingleOrDefaultAsync(x => x.UserRoleId == itemRole.UserRoleId).Result; context.AdefHelpDeskUserRoles.Remove(objUserRole); } context.SaveChanges(); // Delete User in AdefHelpDeskUsers context.AdefHelpDeskUsers.Remove(objDTOUser); context.SaveChanges(); // Delete the User in UserManager _userManager.DeleteAsync(objUser); } } catch (Exception ex) { throw ex; } return(""); }
public void UpdateAzureStorageConnection(string DefaultConnection, string AzureStorageConnection) { // Ensure there is a AdefHelpDesk Container // Retrieve the connection string for use with the application. string storageConnectionString = AzureStorageConnection; // Check whether the connection string can be parsed. CloudStorageAccount storageAccount = null; CloudBlobContainer cloudBlobContainer = null; if (CloudStorageAccount.TryParse(storageConnectionString, out storageAccount)) { CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient(); cloudBlobContainer = cloudBlobClient.GetContainerReference("adefhelpdesk-files"); cloudBlobContainer.CreateIfNotExistsAsync().Wait(); } else { throw new Exception("Cannot create Azure Storage folder using this connection!"); } var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(DefaultConnection); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var resuts = from Settings in context.AdefHelpDeskSettings where Settings.SettingName == "AzureStorageConnection" select Settings; resuts.FirstOrDefault().SettingValue = Convert.ToString(AzureStorageConnection); context.SaveChanges(); } }
public static DTOStatus DeleteRole(int id, string ConnectionString) { // Status to return DTOStatus objDTOStatus = new DTOStatus(); objDTOStatus.Success = true; var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { try { var objRole = context.AdefHelpDeskRoles.SingleOrDefaultAsync(x => x.Id == id).Result; if (objRole == null) { objDTOStatus.StatusMessage = $"id #{id} Not Found"; objDTOStatus.Success = false; } context.AdefHelpDeskRoles.Remove(objRole); context.SaveChanges(); } catch (Exception ex) { objDTOStatus.StatusMessage = ex.GetBaseException().Message; objDTOStatus.Success = false; } } return(objDTOStatus); }
public static CategoryNode CreateCategory(CategoryNode categoryNode, string ConnectionString) { var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var newCategoryNode = new AdefHelpDeskCategories(); newCategoryNode.CategoryName = categoryNode.NodeName; if (categoryNode.ParentId > 0) { newCategoryNode.ParentCategoryId = categoryNode.ParentId; } else { newCategoryNode.ParentCategoryId = null; } newCategoryNode.Selectable = categoryNode.Selectable; newCategoryNode.RequestorVisible = categoryNode.RequestorVisible; context.AdefHelpDeskCategories.Add(newCategoryNode); context.SaveChanges(); categoryNode.Id = newCategoryNode.CategoryId; } return(categoryNode); }
public IActionResult Index([FromBody] DTOVerification Verification) { // LoginStatus to return LoginStatus objLoginStatus = new LoginStatus(); if ((Verification.userName != null) && (Verification.password != null) && (Verification.verificationCode != null)) { // Get values passed var paramUserName = Verification.userName.Trim(); var paramPassword = Verification.password.Trim(); var paramVerificationCode = Verification.verificationCode; var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(GetConnectionString()); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { // Test the Verification Code var objAdefHelpDeskUser = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers where AdefHelpDeskUsers.Username == paramUserName where AdefHelpDeskUsers.VerificationCode == paramVerificationCode select AdefHelpDeskUsers).FirstOrDefault(); if (objAdefHelpDeskUser == null) { // Bad verification code objLoginStatus.isLoggedIn = false; objLoginStatus.status = "Incorrrect Verification Code."; return(Ok(objLoginStatus)); } // Sign the User in var SignInResult = _signInManager.PasswordSignInAsync( paramUserName, paramPassword, false, lockoutOnFailure: false).Result; if (!SignInResult.Succeeded) { // Return the error objLoginStatus.status = $"Could not sign user {paramUserName} in."; objLoginStatus.isLoggedIn = false; return(Ok(objLoginStatus)); } else { // Clear the verification code objAdefHelpDeskUser.VerificationCode = null; context.SaveChanges(); // Return Success objLoginStatus.status = $"User {paramUserName} signed in."; objLoginStatus.isLoggedIn = true; return(Ok(objLoginStatus)); } } } objLoginStatus.isLoggedIn = false; objLoginStatus.status = "Authentication Failure"; return(Ok(objLoginStatus)); }
private DTOStatus ResetVersionTable() { DTOStatus objDTOStatus = new DTOStatus(); objDTOStatus.Success = true; objDTOStatus.StatusMessage = ""; var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(GetConnectionString()); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { try { // Get all version records var versions = (from version in context.AdefHelpDeskVersion select version).ToList(); // Delete them foreach (var version in versions) { context.AdefHelpDeskVersion.Remove(version); context.SaveChanges(); } } catch (Exception ex) { objDTOStatus.Success = false; objDTOStatus.StatusMessage = ex.GetBaseException().Message; } } return(objDTOStatus); }
public static string DeleteTaskDetail(int TaskDetailId, string DefaultConnection, string strCurrentUser) { var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(DefaultConnection); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var objTaskDetail = context.AdefHelpDeskTaskDetails.SingleOrDefault(x => x.DetailId == TaskDetailId); if (objTaskDetail == null) { return("Task Detail Not Found"); } // Get the Attachments of the current item var colAttachments = from Attachment in context.AdefHelpDeskAttachments where Attachment.DetailId == objTaskDetail.DetailId select Attachment; // Loop thru each Attachment foreach (var objAttachment in colAttachments) { // Delete the file DeleteExistingFile(objAttachment, DefaultConnection, strCurrentUser); } context.AdefHelpDeskAttachments.RemoveRange(colAttachments); context.SaveChanges(); // Log it Log.InsertSystemLog(DefaultConnection, Constants.TaskDetailDeletion, strCurrentUser, $"({strCurrentUser}) Deleted TaskDetail # {objTaskDetail.DetailId} ({objTaskDetail.Description}) of Task # {objTaskDetail.TaskId}."); // Delete TaskDetail context.AdefHelpDeskTaskDetails.Remove(objTaskDetail); context.SaveChanges(); } return(""); }
// Methods #region public static DTOStatus UpdateCategory(int id, CategoryNode categoryNode, string ConnectionString) public static DTOStatus UpdateCategory(int id, CategoryNode categoryNode, string ConnectionString) { // Status to return DTOStatus objDTOStatus = new DTOStatus(); objDTOStatus.Success = true; var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var existingCategoryNode = context.AdefHelpDeskCategories.SingleOrDefault(x => x.CategoryId == id); if (existingCategoryNode == null) { objDTOStatus.StatusMessage = $"id #{id} Not Found"; objDTOStatus.Success = false; return(objDTOStatus); } // Update the Node existingCategoryNode.CategoryName = categoryNode.NodeName; if (categoryNode.ParentId > 0) { existingCategoryNode.ParentCategoryId = categoryNode.ParentId; } else { existingCategoryNode.ParentCategoryId = null; } existingCategoryNode.Selectable = categoryNode.Selectable; existingCategoryNode.RequestorVisible = categoryNode.RequestorVisible; context.Entry(existingCategoryNode).State = EntityState.Modified; try { context.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { objDTOStatus.StatusMessage = ex.GetBaseException().Message; objDTOStatus.Success = false; return(objDTOStatus); } } return(objDTOStatus); }
public void UpdateApplicationGUID(string DefaultConnection, string ApplicationGUID) { var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(DefaultConnection); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var resuts = from Settings in context.AdefHelpDeskSettings where Settings.SettingName == "ApplicationGUID" select Settings; resuts.FirstOrDefault().SettingValue = Convert.ToString(ApplicationGUID); context.SaveChanges(); } }
public static void InsertSystemLog(string DefaultConnection, string LogType, string UserName, string LogMessage) { var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(DefaultConnection); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { AdefHelpDeskSystemLog objAdefHelpDeskSystemLog = new AdefHelpDeskSystemLog(); objAdefHelpDeskSystemLog.CreatedDate = DateTime.Now; objAdefHelpDeskSystemLog.LogMessage = Extensions.Left(LogMessage, 4000); objAdefHelpDeskSystemLog.LogType = LogType; objAdefHelpDeskSystemLog.UserName = UserName; context.AdefHelpDeskSystemLog.Add(objAdefHelpDeskSystemLog); context.SaveChanges(); } }
public static void InsertLog(string DefaultConnection, int TaskID, int UserID, string LogDescription) { var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(DefaultConnection); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { AdefHelpDeskLog objAdefHelpDeskLog = new AdefHelpDeskLog(); objAdefHelpDeskLog.DateCreated = DateTime.Now; objAdefHelpDeskLog.LogDescription = Extensions.Left(LogDescription, 499); objAdefHelpDeskLog.TaskId = TaskID; objAdefHelpDeskLog.UserId = UserID; context.AdefHelpDeskLog.Add(objAdefHelpDeskLog); context.SaveChanges(); } }
private DTOStatus MakeUserASuperUser(string UserName) { DTOStatus objDTOStatus = new DTOStatus(); objDTOStatus.Success = true; objDTOStatus.StatusMessage = ""; var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(GetConnectionString()); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { try { // Get the user var objUser = (from user in context.AdefHelpDeskUsers where user.Username == UserName select user).FirstOrDefault(); if (objUser != null) { // Update them objUser.IsSuperUser = true; context.SaveChanges(); } else { objDTOStatus.Success = false; objDTOStatus.StatusMessage = $"Cound not find {UserName} in database"; } } catch (Exception ex) { objDTOStatus.Success = false; objDTOStatus.StatusMessage = ex.GetBaseException().Message; } } return(objDTOStatus); }
public static RoleDTO CreateRole(RoleDTO RoleDTO, string ConnectionString) { var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var newRoleDTO = new AdefHelpDeskRoles(); newRoleDTO.RoleName = RoleDTO.roleName; newRoleDTO.PortalId = -1; context.AdefHelpDeskRoles.Add(newRoleDTO); context.SaveChanges(); RoleDTO.iD = newRoleDTO.Id; } return(RoleDTO); }
public static DTOStatus UpdateRole(int id, RoleDTO RoleDTO, string ConnectionString) { // Status to return DTOStatus objDTOStatus = new DTOStatus(); objDTOStatus.Success = true; var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var existingRole = context.AdefHelpDeskRoles.SingleOrDefaultAsync(x => x.Id == id).Result; if (existingRole == null) { objDTOStatus.StatusMessage = $"id #{id} Not Found"; objDTOStatus.Success = false; return(objDTOStatus); } // Update the Role existingRole.RoleName = RoleDTO.roleName; context.Entry(existingRole).State = EntityState.Modified; try { context.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { objDTOStatus.StatusMessage = ex.GetBaseException().Message; objDTOStatus.Success = false; } } return(objDTOStatus); }
public static DTOStatus CreateUserMethod(DTOUser DTOUser, IHostingEnvironment _hostEnvironment, UserManager <ApplicationUser> _userManager, SignInManager <ApplicationUser> _signInManager, string ConnectionString, string CurrentHostLocation, string strCurrentUser) { // Status to return DTOStatus objDTOStatus = new DTOStatus(); objDTOStatus.StatusMessage = "Failure"; objDTOStatus.Success = false; try { RegisterDTO objRegisterDTO = new RegisterDTO(); objRegisterDTO.userName = DTOUser.userName; objRegisterDTO.email = DTOUser.email; objRegisterDTO.firstName = DTOUser.firstName; objRegisterDTO.lastName = DTOUser.lastName; objRegisterDTO.password = DTOUser.password; var objRegisterStatus = RegisterController.RegisterUser(objRegisterDTO, ConnectionString, _hostEnvironment, _userManager, _signInManager, CurrentHostLocation, true, false); if (!objRegisterStatus.isSuccessful) { // Registration was not successful objDTOStatus.StatusMessage = objRegisterStatus.status; return(objDTOStatus); } var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { // Get User var objDTOUser = (from objuser in context.AdefHelpDeskUsers where objuser.Username == DTOUser.userName select objuser).FirstOrDefault(); if (objDTOUser != null) { // Update remaining fields objDTOUser.IsSuperUser = DTOUser.isSuperUser; } // Add the Roles for the user int UserId = objDTOUser.UserId; foreach (var itemRole in DTOUser.userRoles) { AdefHelpDeskUserRoles objRoleDTO = new AdefHelpDeskUserRoles(); objRoleDTO.RoleId = itemRole.iD; objRoleDTO.UserId = UserId; context.AdefHelpDeskUserRoles.Add(objRoleDTO); } context.SaveChanges(); } } catch (Exception ex) { objDTOStatus.StatusMessage = ex.GetBaseException().Message; objDTOStatus.Success = false; return(objDTOStatus); } objDTOStatus.StatusMessage = ""; objDTOStatus.Success = true; return(objDTOStatus); }
public static DTOStatus UpdateUser(int id, DTOUser DTOUser, UserManager <ApplicationUser> _userManager, string ConnectionString, string strCurrentUser) { // Status to return DTOStatus objDTOStatus = new DTOStatus(); objDTOStatus.StatusMessage = "Failure"; objDTOStatus.Success = false; #region Validation **************************** EmailValidation objEmailValidation = new EmailValidation(); if (!objEmailValidation.IsValidEmail(DTOUser.email)) { objDTOStatus.StatusMessage = "This Email is not valid."; objDTOStatus.Success = false; return(objDTOStatus); } if ((DTOUser.firstName == null) || (DTOUser.firstName.Length < 1)) { objDTOStatus.StatusMessage = "This First Name is not long enough."; objDTOStatus.Success = false; return(objDTOStatus); } if ((DTOUser.lastName == null) || (DTOUser.lastName.Length < 1)) { objDTOStatus.StatusMessage = "This Last Name is not long enough."; objDTOStatus.Success = false; return(objDTOStatus); } #endregion var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { // Get User var objDTOUser = (from objuser in context.AdefHelpDeskUsers .Include(role => role.AdefHelpDeskUserRoles) where objuser.UserId == id select objuser).FirstOrDefault(); if (objDTOUser == null) { objDTOStatus.StatusMessage = "Not Found"; objDTOStatus.Success = false; return(objDTOStatus); } // Check the Email var objAdefHelpDeskEmail = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers where AdefHelpDeskUsers.Email.ToLower() == DTOUser.email.ToLower() where AdefHelpDeskUsers.Username != DTOUser.userName select AdefHelpDeskUsers).FirstOrDefault(); if (objAdefHelpDeskEmail != null) { // User is already taken objDTOStatus.StatusMessage = "This Email address is already taken."; objDTOStatus.Success = false; return(objDTOStatus); } try { // Update the user objDTOUser.FirstName = DTOUser.firstName; objDTOUser.LastName = DTOUser.lastName; objDTOUser.Email = DTOUser.email; objDTOUser.VerificationCode = null; // Admin updating user always clears verification code // Cannot change your own IsSuperUser status if (objDTOUser.Username != strCurrentUser) { objDTOUser.IsSuperUser = DTOUser.isSuperUser; } context.SaveChanges(); } catch (Exception ex) { objDTOStatus.Success = false; objDTOStatus.StatusMessage = ex.GetBaseException().Message; return(objDTOStatus); } // Delete all roles -- so we can add the new ones foreach (var itemRole in objDTOUser.AdefHelpDeskUserRoles) { var objUserRole = context.AdefHelpDeskUserRoles.SingleOrDefault(x => x.UserRoleId == itemRole.UserRoleId); context.AdefHelpDeskUserRoles.Remove(objUserRole); } context.SaveChanges(); // Add the Roles for the user foreach (var itemRole in DTOUser.userRoles) { AdefHelpDeskUserRoles objRoleDTO = new AdefHelpDeskUserRoles(); objRoleDTO.RoleId = itemRole.iD; objRoleDTO.UserId = DTOUser.userId; context.AdefHelpDeskUserRoles.Add(objRoleDTO); } context.SaveChanges(); } #region Migrate User (if needed) // Get user in UserManager var user = _userManager.FindByNameAsync(DTOUser.userName).Result; if (user == null) { // The user is in the old memebership API // Migrate them if ((DTOUser.password != null) && (DTOUser.password.Trim().Length < 1)) { objDTOStatus.Success = false; objDTOStatus.StatusMessage = "Account must be migrated to the new membership system -- Must supply a new password"; return(objDTOStatus); } RegisterDTO objRegisterDTO = new RegisterDTO(); objRegisterDTO.email = DTOUser.email; objRegisterDTO.firstName = DTOUser.firstName; objRegisterDTO.lastName = DTOUser.lastName; objRegisterDTO.password = DTOUser.password; objRegisterDTO.userName = DTOUser.userName; try { // Membership API user = new ApplicationUser { UserName = DTOUser.userName, Email = DTOUser.email }; var RegisterStatus = _userManager.CreateAsync(user, DTOUser.password).Result; if (!RegisterStatus.Succeeded) { // Registration was not successful if (RegisterStatus.Errors.FirstOrDefault() != null) { objDTOStatus.StatusMessage = RegisterStatus.Errors.FirstOrDefault().Description; } else { objDTOStatus.StatusMessage = "Registration error"; } objDTOStatus.Success = false; return(objDTOStatus); } } catch (Exception ex) { objDTOStatus.Success = false; objDTOStatus.StatusMessage = ex.Message; return(objDTOStatus); } } #endregion // Update Email var result = _userManager.SetEmailAsync(user, DTOUser.email).Result; // Only update password if it is passed if ((DTOUser.password != null) && (DTOUser.password.Trim().Length > 1)) { try { var resetToken = _userManager.GeneratePasswordResetTokenAsync(user).Result; var passwordResult = _userManager.ResetPasswordAsync(user, resetToken, DTOUser.password).Result; if (!passwordResult.Succeeded) { if (passwordResult.Errors.FirstOrDefault() != null) { objDTOStatus.StatusMessage = passwordResult.Errors.FirstOrDefault().Description; } else { objDTOStatus.StatusMessage = "Pasword error"; } objDTOStatus.Success = false; return(objDTOStatus); } } catch (Exception ex) { objDTOStatus.Success = false; objDTOStatus.StatusMessage = ex.Message; return(objDTOStatus); } } objDTOStatus.StatusMessage = ""; objDTOStatus.Success = true; return(objDTOStatus); }
public IActionResult Index([FromBody] DTOMigration Migration) { // LoginStatus to return LoginStatus objLoginStatus = new LoginStatus(); objLoginStatus.isLoggedIn = false; if ((Migration.userName != null) && (Migration.password != null) && (Migration.passwordNew != null)) { // Get values passed var paramUserName = Migration.userName; var paramPassword = ComputeHash.GetSwcMD5(paramUserName.Trim().ToLower() + Migration.password.Trim()); var paramPasswordNew = Migration.passwordNew; var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(GetConnectionString()); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { // Must be in legacy User table var objAdefHelpDeskUser = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers where AdefHelpDeskUsers.Username == paramUserName where AdefHelpDeskUsers.Password == paramPassword select AdefHelpDeskUsers).FirstOrDefault(); if (objAdefHelpDeskUser != null) { // Email Validation **************************** if (objAdefHelpDeskUser.Email == null) { objLoginStatus.status = "The Email for this account is not valid. It cannot be migrated."; objLoginStatus.isLoggedIn = false; return(Ok(objLoginStatus)); } EmailValidation objEmailValidation = new EmailValidation(); if (!objEmailValidation.IsValidEmail(objAdefHelpDeskUser.Email)) { objLoginStatus.status = "The Email for this account is not valid. It cannot be migrated."; objLoginStatus.isLoggedIn = false; return(Ok(objLoginStatus)); } // Migrate Account var user = new ApplicationUser { UserName = paramUserName, Email = objAdefHelpDeskUser.Email }; var result = _userManager.CreateAsync(user, paramPasswordNew).Result; if (result.Succeeded) { // Sign the User in var SignInResult = _signInManager.PasswordSignInAsync( paramUserName, paramPasswordNew, false, lockoutOnFailure: false).Result; if (!SignInResult.Succeeded) { // Return the error objLoginStatus.status = $"Could not sign user {paramUserName} in."; objLoginStatus.isLoggedIn = false; return(Ok(objLoginStatus)); } else { try { // Everything worked // Update the users password in the legacy table objAdefHelpDeskUser.Password = ComputeHash.GetSwcMD5(paramUserName.Trim().ToLower() + paramPasswordNew.Trim()); context.SaveChanges(); } catch { // Do nothing if this does not work // This password is only needed if connecting from the older // Non Angular version of ADefHelpDesk } // Success objLoginStatus.status = $"Logged {paramUserName} in."; objLoginStatus.isLoggedIn = true; return(Ok(objLoginStatus)); } } else { // Return the errors from the Memberhip API Creation string strErrors = ""; foreach (var Error in result.Errors) { strErrors = strErrors + "\n" + Error.Description; } // Return the error objLoginStatus.status = strErrors; objLoginStatus.isLoggedIn = false; return(Ok(objLoginStatus)); } } else { objLoginStatus.status = "Orginal password does not match."; return(Ok(objLoginStatus)); } } } objLoginStatus.status = "Authentication Failure"; return(Ok(objLoginStatus)); }
public IActionResult Index([FromBody] ProfileDTO Profile) { ProfileStatus objProfileStatus = new ProfileStatus(); objProfileStatus.isSuccessful = true; objProfileStatus.status = ""; #region Validation **************************** EmailValidation objEmailValidation = new EmailValidation(); if (!objEmailValidation.IsValidEmail(Profile.email)) { objProfileStatus.status = "This Email is not valid."; objProfileStatus.isSuccessful = false; return(Ok(objProfileStatus)); } if ((Profile.firstName == null) || (Profile.firstName.Length < 1)) { objProfileStatus.status = "This First Name is not long enough."; objProfileStatus.isSuccessful = false; return(Ok(objProfileStatus)); } if ((Profile.lastName == null) || (Profile.lastName.Length < 1)) { objProfileStatus.status = "This Last Name is not long enough."; objProfileStatus.isSuccessful = false; return(Ok(objProfileStatus)); } #endregion // Update User **************************** string CurrentUser = this.User.Identity.Name; var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(GetConnectionString()); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { try { // Check the Email string strEmailToCheck = Profile.email.Trim().ToLower(); var objAdefHelpDeskEmail = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers where AdefHelpDeskUsers.Email.ToLower() == strEmailToCheck where AdefHelpDeskUsers.Username != CurrentUser select AdefHelpDeskUsers).FirstOrDefault(); if (objAdefHelpDeskEmail != null) { // User is already taken objProfileStatus.status = "This Email address is already taken."; objProfileStatus.isSuccessful = false; return(Ok(objProfileStatus)); } // Get the user var objUser = (from user in context.AdefHelpDeskUsers where user.Username == CurrentUser select user).FirstOrDefault(); if (objUser != null) { // Update them objUser.FirstName = Profile.firstName.Trim(); objUser.LastName = Profile.lastName.Trim(); objUser.Email = Profile.email.Trim(); #region See if the password will be updated if ( (Profile.orginalpassword != null) && (Profile.orginalpassword.Trim().Length > 1) && (Profile.password != null) && (Profile.password.Trim().Length > 1) ) { // The original password must be correct var user = _userManager.Users.Where(x => x.UserName == CurrentUser).FirstOrDefault(); var SignInResult = _userManager.CheckPasswordAsync(user, Profile.orginalpassword.Trim()).Result; if (!SignInResult) { objProfileStatus.status = "The original password must be correct to set the new password."; objProfileStatus.isSuccessful = false; return(Ok(objProfileStatus)); } // First try to update the password in the ASP.NET Membership provider var result = _userManager.ChangePasswordAsync( user, Profile.orginalpassword.Trim(), Profile.password.Trim()).Result; if (!result.Succeeded) { // Return the errors string strErrors = ""; foreach (var Error in result.Errors) { strErrors = strErrors + "\n" + Error.Description; } objProfileStatus.status = strErrors; objProfileStatus.isSuccessful = false; return(Ok(objProfileStatus)); } } #endregion // Save changes context.SaveChanges(); } else { objProfileStatus.isSuccessful = false; objProfileStatus.status = $"Could not find {CurrentUser} in database"; } } catch (Exception ex) { objProfileStatus.isSuccessful = false; objProfileStatus.status = ex.GetBaseException().Message; } } return(Ok(objProfileStatus)); }
public static DTOStatus DeleteCategory(int id, string ConnectionString) { // Status to return DTOStatus objDTOStatus = new DTOStatus(); objDTOStatus.Success = true; var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var categoryNode = context.AdefHelpDeskCategories.SingleOrDefaultAsync(x => x.CategoryId == id).Result; if (categoryNode == null) { objDTOStatus.StatusMessage = $"id #{id} Not Found"; objDTOStatus.Success = false; return(objDTOStatus); } try { // Get all Task Categories of the current item var ColExistingTaskCategories = from objTaskCategory in context.AdefHelpDeskTaskCategories where objTaskCategory.CategoryId == categoryNode.CategoryId select objTaskCategory; if (ColExistingTaskCategories.Count() > 0) { context.AdefHelpDeskTaskCategories.RemoveRange(ColExistingTaskCategories); context.SaveChanges(); } int?ParentNodeID = null; // Possibly update Child Nodes if (categoryNode.ParentCategoryId.HasValue) { // Get the Parent Node of the ExistingNode ParentNodeID = categoryNode.ParentCategoryId.Value; } // Get the children of the current item var ChildResults = from objNode in context.AdefHelpDeskCategories where objNode.ParentCategoryId.Value == categoryNode.CategoryId where objNode.ParentCategoryId.HasValue == true select objNode; // Loop thru each Child of the current Node foreach (var objChild in ChildResults) { // Update the Parent Node // for the Child Node objChild.ParentCategoryId = ParentNodeID; } context.AdefHelpDeskCategories.Remove(categoryNode); context.SaveChanges(); } catch (Exception ex) { objDTOStatus.StatusMessage = ex.GetBaseException().Message; objDTOStatus.Success = false; } } return(objDTOStatus); }
public IActionResult SaveSearchParameters([FromBody] SearchTaskParameters paramSearchTaskParameters) { // See if the user is logged in try { if (this.User.Identity.IsAuthenticated) { // Get UserId int UserId = UtilitySecurity.UserIdFromUserName(this.User.Identity.Name, GetConnectionString()); var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(GetConnectionString()); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { // First remove any existing records for the user context.AdefHelpDeskLastSearch.RemoveRange(context.AdefHelpDeskLastSearch.Where(x => x.UserId == UserId)); context.SaveChanges(); AdefHelpDeskLastSearch objNewLastSearch = new AdefHelpDeskLastSearch(); objNewLastSearch.UserId = UserId; objNewLastSearch.SearchText = (paramSearchTaskParameters.searchText != null) ? paramSearchTaskParameters.searchText.Trim() : ""; objNewLastSearch.Status = (paramSearchTaskParameters.status != null) ? paramSearchTaskParameters.status.Trim() : ""; objNewLastSearch.Priority = (paramSearchTaskParameters.priority != null) ? paramSearchTaskParameters.priority.Trim() : ""; objNewLastSearch.CurrentPage = paramSearchTaskParameters.pageNumber; objNewLastSearch.PageSize = paramSearchTaskParameters.rowsPerPage; if (paramSearchTaskParameters.userId != null) { objNewLastSearch.UserId = Convert.ToInt32(paramSearchTaskParameters.userId); } if (paramSearchTaskParameters.assignedRoleId != null) { objNewLastSearch.AssignedRoleId = Convert.ToInt32(paramSearchTaskParameters.assignedRoleId); } if (paramSearchTaskParameters.createdDate != null) { objNewLastSearch.CreatedDate = Utility.CastToDate(paramSearchTaskParameters.createdDate); } if (paramSearchTaskParameters.dueDate != null) { objNewLastSearch.DueDate = Utility.CastToDate(paramSearchTaskParameters.dueDate); } objNewLastSearch.Categories = string.Join(",", paramSearchTaskParameters.selectedTreeNodes); // Save changes context.AdefHelpDeskLastSearch.Add(objNewLastSearch); context.SaveChanges(); } } } catch { // Do nothing if search paramaters cannot be saved } return(NoContent()); }
public static RegisterStatus RegisterUser(RegisterDTO Register, string _DefaultConnection, IWebHostEnvironment _hostEnvironment, UserManager <ApplicationUser> _userManager, SignInManager <ApplicationUser> _signInManager, string CurrentHostLocation, bool BypassVerify, bool SignUserIn) { // RegisterStatus to return RegisterStatus objRegisterStatus = new RegisterStatus(); objRegisterStatus.status = "Registration Failure"; objRegisterStatus.isSuccessful = false; objRegisterStatus.requiresVerification = false; // Get values passed var paramUserName = Register.userName.Trim(); var paramPassword = Register.password.Trim(); var paramFirstName = Register.firstName.Trim(); var paramLastName = Register.lastName.Trim(); var paramEmail = Register.email.Trim(); // Validation **************************** EmailValidation objEmailValidation = new EmailValidation(); if (!objEmailValidation.IsValidEmail(paramEmail)) { objRegisterStatus.status = "This Email is not valid."; objRegisterStatus.isSuccessful = false; return(objRegisterStatus); } if ((paramUserName == null) || (paramUserName.Length < 1)) { objRegisterStatus.status = "This Username is not long enough."; objRegisterStatus.isSuccessful = false; return(objRegisterStatus); } var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>(); optionsBuilder.UseSqlServer(_DefaultConnection); using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { // Check the Username var objAdefHelpDeskUserName = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers where AdefHelpDeskUsers.Username == paramUserName select AdefHelpDeskUsers).FirstOrDefault(); if (objAdefHelpDeskUserName != null) { // User is already taken objRegisterStatus.status = "This Username is already taken."; objRegisterStatus.isSuccessful = false; return(objRegisterStatus); } // Check the Email var objAdefHelpDeskEmail = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers where AdefHelpDeskUsers.Email == paramEmail select AdefHelpDeskUsers).FirstOrDefault(); if (objAdefHelpDeskEmail != null) { // User is already taken objRegisterStatus.status = "This Email address is already taken."; objRegisterStatus.isSuccessful = false; return(objRegisterStatus); } } // Create Account **************************** // User Table try { using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { AdefHelpDeskUsers objAdefHelpDeskUsers = new AdefHelpDeskUsers(); objAdefHelpDeskUsers.Username = paramUserName; objAdefHelpDeskUsers.Email = paramEmail; objAdefHelpDeskUsers.FirstName = paramFirstName; objAdefHelpDeskUsers.LastName = paramLastName; objAdefHelpDeskUsers.Password = ""; // No longer store the password here context.AdefHelpDeskUsers.Add(objAdefHelpDeskUsers); context.SaveChanges(); } } catch (Exception ex) { // Return the error objRegisterStatus.status = ex.GetBaseException().Message; objRegisterStatus.isSuccessful = false; return(objRegisterStatus); } // Membership API var user = new ApplicationUser { UserName = paramUserName, Email = paramEmail }; var result = _userManager.CreateAsync(user, paramPassword).Result; if (!result.Succeeded) { // Create user failed try { // Delete user from the User table using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var objAdefHelpDeskUser = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers where AdefHelpDeskUsers.Username == paramUserName select AdefHelpDeskUsers).FirstOrDefault(); if (objAdefHelpDeskUser != null) { context.AdefHelpDeskUsers.Remove(objAdefHelpDeskUser); context.SaveChanges(); } } } catch { // Do nothing if this fails } // Return the errors from the Memberhip API Creation string strErrors = ""; foreach (var Error in result.Errors) { strErrors = strErrors + "\n" + Error.Description; } objRegisterStatus.status = strErrors; objRegisterStatus.isSuccessful = false; return(objRegisterStatus); } objRegisterStatus.status = "Success"; objRegisterStatus.isSuccessful = true; // *** Verified Accounts // Determine if verified registration is turned on // and BypassVerify is also on GeneralSettings objGeneralSettings = new GeneralSettings(_DefaultConnection); if ((!BypassVerify) && (objGeneralSettings.VerifiedRegistration)) { // Get a random verify code string strVerifyCode = CreateVerificationKey(5); // Write it to the users record using (var context = new ADefHelpDeskContext(optionsBuilder.Options)) { var objAdefHelpDeskUser = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers where AdefHelpDeskUsers.Username == paramUserName select AdefHelpDeskUsers).FirstOrDefault(); if (objAdefHelpDeskUser != null) { objAdefHelpDeskUser.VerificationCode = strVerifyCode; context.AdefHelpDeskUsers.Update(objAdefHelpDeskUser); context.SaveChanges(); } } // Send the user the verification email string strFullName = $"{paramFirstName} {paramLastName}"; // Get file and make replacements string strEmailContents = System.IO.File.ReadAllText(System.IO.Path.Combine(_hostEnvironment.ContentRootPath, "SystemFiles", "Email-UserVerification.txt").Replace(@"\", @"/")); strEmailContents = strEmailContents.Replace("[strFullName]", strFullName); strEmailContents = strEmailContents.Replace("[CurrentHostLocation]", CurrentHostLocation); strEmailContents = strEmailContents.Replace("[paramUserName]", paramUserName); strEmailContents = strEmailContents.Replace("[strVerifyCode]", strVerifyCode); // Send Email // Async is turned off because we may have verified registration but the email server may not be working // The user needs to know this because their registration cannot proceed string smtpStatus = Email.SendMail( false, _DefaultConnection, paramEmail, strFullName, "", "", objGeneralSettings.SMTPFromEmail, "Verification Email", "ADefHelpDesk Registration Verification Email", $"{strEmailContents} <br><br> This Email was sent from: {CurrentHostLocation}."); if (smtpStatus != "") { // There was some sort of error - return it objRegisterStatus.status = smtpStatus; objRegisterStatus.isSuccessful = false; objRegisterStatus.requiresVerification = true; return(objRegisterStatus); } // Tell user they need to use the code that was just sent objRegisterStatus.requiresVerification = true; objRegisterStatus.status = $"Your registration was successful. "; objRegisterStatus.status = objRegisterStatus.status + $"However, registration is verified. "; objRegisterStatus.status = objRegisterStatus.status + $"You have been emailed a verification code that must be used to complete your registration."; } else { if (SignUserIn) { // Sign the User in var SignInResult = _signInManager.PasswordSignInAsync( paramUserName, paramPassword, false, lockoutOnFailure: false).Result; if (!SignInResult.Succeeded) { // Return the error objRegisterStatus.status = $"Could not sign user {paramUserName} in."; objRegisterStatus.isSuccessful = false; return(objRegisterStatus); } } } return(objRegisterStatus); }