/// <summary> /// Create new user /// </summary> /// <param name="newUser"></param> /// <returns></returns> public MembershipCreateStatus CreateUser(MembershipUser newUser) { newUser = SanitizeUser(newUser); var settings = _settingsRepository.GetSettings(true); var status = MembershipCreateStatus.Success; var e = new RegisterUserEventArgs { User = newUser }; EventManager.Instance.FireBeforeRegisterUser(this, e); if (e.Cancel) { status = e.CreateStatus; } else { if (string.IsNullOrEmpty(newUser.UserName)) { status = MembershipCreateStatus.InvalidUserName; } // get by username if (_membershipRepository.GetUser(newUser.UserName) != null) { status = MembershipCreateStatus.DuplicateUserName; } // Add get by email address if (_membershipRepository.GetUserByEmail(newUser.Email) != null) { status = MembershipCreateStatus.DuplicateEmail; } if (string.IsNullOrEmpty(newUser.Password)) { status = MembershipCreateStatus.InvalidPassword; } if (status == MembershipCreateStatus.Success) { // Hash the password var salt = StringUtils.CreateSalt(AppConstants.SaltSize); var hash = StringUtils.GenerateSaltedHash(newUser.Password, salt); newUser.Password = hash; newUser.PasswordSalt = salt; newUser.Roles = new List <MembershipRole> { settings.NewMemberStartingRole }; // Set dates newUser.CreateDate = newUser.LastPasswordChangedDate = DateTime.UtcNow; newUser.LastLockoutDate = (DateTime)SqlDateTime.MinValue; newUser.LastLoginDate = DateTime.UtcNow; newUser.IsApproved = !settings.ManuallyAuthoriseNewMembers; newUser.IsLockedOut = false; // url generator newUser.Slug = ServiceHelpers.GenerateSlug(newUser.UserName, _membershipRepository.GetUserBySlugLike(ServiceHelpers.CreateUrl(newUser.UserName)), null); try { _membershipRepository.Add(newUser); if (settings.EmailAdminOnNewMemberSignUp) { var sb = new StringBuilder(); sb.AppendFormat("<p>{0}</p>", string.Format(_localizationService.GetResourceString("Members.NewMemberRegistered"), settings.ForumName, settings.ForumUrl)); sb.AppendFormat("<p>{0} - {1}</p>", newUser.UserName, newUser.Email); var email = new Email { EmailTo = settings.AdminEmailAddress, NameTo = _localizationService.GetResourceString("Members.Admin"), Subject = _localizationService.GetResourceString("Members.NewMemberSubject") }; email.Body = _emailService.EmailTemplate(email.NameTo, sb.ToString()); _emailService.SendMail(email); } _activityService.MemberJoined(newUser); EventManager.Instance.FireAfterRegisterUser(this, new RegisterUserEventArgs { User = newUser }); } catch (Exception) { status = MembershipCreateStatus.UserRejected; } } } return(status); }
/// <summary> /// Create a new topic and also the topic starter post /// </summary> /// <param name="topic"></param> /// <returns></returns> public Topic Add(Topic topic) { topic = SanitizeTopic(topic); topic.CreateDate = DateTime.Now; // url slug generator topic.Slug = ServiceHelpers.GenerateSlug(topic.Name.Replace("/", "-"), GetTopicBySlugLike(ServiceHelpers.CreateUrl(topic.Name)), null); return(_context.Topic.Add(topic)); }
/// <summary> /// Add a new category /// </summary> /// <param name="category"></param> public void Add(Category category) { // Sanitize category = SanitizeCategory(category); // Set the create date category.DateCreated = DateTime.UtcNow; // url slug generator category.Slug = ServiceHelpers.GenerateSlug(category.Name, _categoryRepository.GetBySlugLike(ServiceHelpers.CreateUrl(category.Name)), null); // Add the category _categoryRepository.Add(category); }
public Education Add(Education entity) { entity.Slug = ServiceHelpers.CreateUrl(entity.Name.Trim()); return(_context.Education.Add(entity)); }
/// <summary> /// Extract users from CSV format and import them /// </summary> /// <returns></returns> public CsvReport FromCsv(List <string> allLines) { var usersProcessed = new List <string>(); var commaSeparator = new[] { ',' }; var report = new CsvReport(); if (allLines == null || allLines.Count == 0) { report.Errors.Add(new CsvErrorWarning { ErrorWarningType = CsvErrorWarningType.BadDataFormat, Message = "No users found." }); return(report); } var lineCounter = 0; foreach (var line in allLines) { try { lineCounter++; // Each line is made up of n items in a predefined order var values = line.Split(commaSeparator); if (values.Length < 2) { report.Errors.Add(new CsvErrorWarning { ErrorWarningType = CsvErrorWarningType.MissingKeyOrValue, Message = string.Format("Line {0}: insufficient values supplied.", lineCounter) }); continue; } var userName = values[0]; if (userName.IsNullEmpty()) { report.Errors.Add(new CsvErrorWarning { ErrorWarningType = CsvErrorWarningType.MissingKeyOrValue, Message = string.Format("Line {0}: no username supplied.", lineCounter) }); continue; } var email = values[1]; if (email.IsNullEmpty()) { report.Errors.Add(new CsvErrorWarning { ErrorWarningType = CsvErrorWarningType.MissingKeyOrValue, Message = string.Format("Line {0}: no email supplied.", lineCounter) }); continue; } // get the user var userToImport = _membershipRepository.GetUser(userName); if (userToImport != null) { report.Errors.Add(new CsvErrorWarning { ErrorWarningType = CsvErrorWarningType.AlreadyExists, Message = string.Format("Line {0}: user already exists in forum.", lineCounter) }); continue; } if (usersProcessed.Contains(userName)) { report.Errors.Add(new CsvErrorWarning { ErrorWarningType = CsvErrorWarningType.AlreadyExists, Message = string.Format("Line {0}: user already exists in import file.", lineCounter) }); continue; } usersProcessed.Add(userName); userToImport = CreateEmptyUser(); userToImport.UserName = userName; userToImport.Slug = ServiceHelpers.GenerateSlug(userToImport.UserName, _membershipRepository.GetUserBySlugLike(ServiceHelpers.CreateUrl(userToImport.UserName)), userToImport.Slug); userToImport.Email = email; userToImport.IsApproved = true; userToImport.PasswordSalt = CreateSalt(SaltSize); string createDateStr = null; if (values.Length >= 3) { createDateStr = values[2]; } userToImport.CreateDate = createDateStr.IsNullEmpty() ? DateTime.UtcNow : DateTime.Parse(createDateStr); if (values.Length >= 4) { userToImport.Age = Int32.Parse(values[3]); } if (values.Length >= 5) { userToImport.Location = values[4]; } if (values.Length >= 6) { userToImport.Website = values[5]; } if (values.Length >= 7) { userToImport.Facebook = values[6]; } if (values.Length >= 8) { userToImport.Signature = values[7]; } _membershipRepository.Add(userToImport); } catch (Exception ex) { report.Errors.Add(new CsvErrorWarning { ErrorWarningType = CsvErrorWarningType.GeneralError, Message = ex.Message }); } } return(report); }
public void Update(Doctor updatedoctor) { if (string.IsNullOrEmpty(updatedoctor.Slug)) { updatedoctor.Slug = ServiceHelpers.GenerateSlug(updatedoctor.Name, GetDoctorBySlugLike(ServiceHelpers.CreateUrl(updatedoctor.Name)), null); } _context.Entry(updatedoctor).State = System.Data.Entity.EntityState.Modified; }
public Department InsertDepartment(Department entity) { // Sanitize entity = SanitizeDepartment(entity); // url slug generator entity.Slug = ServiceHelpers.GenerateSlug(entity.Name, GetDepartmentBySlugLike(ServiceHelpers.CreateUrl(entity.Name)), null); // Add the department return(_context.Department.Add(entity)); }
public List <Department> GetListDepartmentBySlug(string search) { var convertToSlug = ServiceHelpers.CreateUrl(search); return(_context.Department.Where(x => x.Slug.Contains(convertToSlug)).ToList()); }
public Doctor Add(Doctor doctor) { doctor.Status = "A"; doctor.Slug = ServiceHelpers.GenerateSlug(doctor.Name, GetDoctorBySlugLike(ServiceHelpers.CreateUrl(doctor.Name)), null); return(_context.Doctor.Add(doctor)); }
/// <summary> /// Create a new topic and also the topic starter post /// </summary> /// <param name="topic"></param> /// <returns></returns> public Topic Add(Topic topic) { topic = SanitizeTopic(topic); topic.CreateDate = DateTime.UtcNow; // url slug generator topic.Slug = ServiceHelpers.GenerateSlug(topic.Name, _topicRepository.GetTopicBySlugLike(ServiceHelpers.CreateUrl(topic.Name)), null); return(_topicRepository.Add(topic)); }