private void SaveCustomerInfo(IEnumerable <UserCustomerInfo> customerInfos, Trex.Server.Core.Model.User user, IUserRepository userRepository) { if (customerInfos == null) { return; } var customerInfoFactory = ObjectFactory.GetInstance <IUserCustomerInfoFactory>(); var customerRepository = ObjectFactory.GetInstance <ICustomerRepository>(); var newCustomerInfos = new List <Trex.Server.Core.Model.UserCustomerInfo>(); foreach (var customerInfo in customerInfos) { var customer = customerRepository.GetByID(customerInfo.CustomerId); newCustomerInfos.Add(customerInfoFactory.Create(user, customer, customerInfo.PricePrHour)); } var oldCustomerInfos = new List <Trex.Server.Core.Model.UserCustomerInfo>(); foreach (var userCustomerInfo in user.CustomerInfo) { oldCustomerInfos.Add(userCustomerInfo); } //remove any old customerinfo, not in the new list foreach (var oldInfo in oldCustomerInfos) { if (newCustomerInfos.SingleOrDefault(nci => nci.Equals(oldInfo)) == null) { user.RemoveCustomerInfo(oldInfo); userRepository.DeleteCustomerInfo(oldInfo); } } foreach (var userCustomerInfo in newCustomerInfos) { user.AddCustomerInfo(userCustomerInfo); } }
public UserCreationResponse CreateUser(UserCreationParameters userData) { var userManagementService = ObjectFactory.GetInstance <IUserManagementService>(); var newUser = new Trex.Server.Core.Model.User() { UserName = userData.User.UserName, Name = userData.User.FullName, Email = userData.User.Email, Price = userData.User.Price }; var userCreationResponse = userManagementService.CreateUser(newUser, userData.Password, userData.PasswordQuestion, userData.PasswordAnswer); if (userCreationResponse.Success) { UpdateUserRoles(userData.User.UserName, userData.User.Roles); } return(userCreationResponse.ToDtoObject()); }
public static User ToDtoObject(this Trex.Server.Core.Model.User user, bool includeProjects) { var dtoUser = new User(); dtoUser.UserName = user.UserName; dtoUser.UserId = user.Id; dtoUser.FullName = user.Name; dtoUser.Inactive = user.Inactive; dtoUser.Price = user.Price; dtoUser.Email = user.Email; dtoUser.CustomerInfo = user.CustomerInfo.ToDtoObjects(); dtoUser.NumOfTimeEntries = user.NumOfTimeEntries; dtoUser.TotalTime = user.TotalTime; dtoUser.TotalBillableTime = user.TotalBillableTime; if (includeProjects) { dtoUser.Projects = user.Projects.ToDtoObjects(false, false, false); } return(dtoUser); }