/// <summary> /// Loads the channels collection of the user. /// </summary> /// <param name="user">The user.</param> /// <returns>The same user with an initialized channel collection.</returns> public static Entites.User LoadChannels(Entites.User user) { using (TerministratorContext context = new TerministratorContext(true)) { context.User.Attach(user); context.Entry(user).Collection(p => p.Channels).Load(); } return(user); }
/// <summary> /// Updates the specified user. /// </summary> /// <param name="iUser">The iuser.</param> /// <param name="user">The user.</param> /// <returns>The same user reference, but updated.</returns> public static Entites.User Update(IUser iUser, Entites.User user) { DAL.User.LoadUserNames(user); Entites.UserName userName = UserName.ExtractUserName(iUser, user); if (user.UserNames.All(x => x.ToString() != userName.ToString())) { UserName.UpdateUserName(userName); } return(user); }
/// <summary> /// Creates the specified user. /// </summary> /// <param name="iUser">The iuser.</param> /// <returns>The newly created user.</returns> public static Entites.User Create(IUser iUser) { Entites.User user = DAL.User.Create(new Entites.User(Application.GetOrCreate(iUser.Application), iUser.ApplicationId)); user.UserNames = new List <Entites.UserName> { DAL.UserName.Create(UserName.ExtractUserName(iUser, user)) }; return(user); }
/// <summary> /// Creates the specified user. /// </summary> /// <param name="user">The user.</param> /// <returns>The same user with an updated id.</returns> public static Entites.User Create(Entites.User user) { Entites.User reference = ClearReferences(user); using (TerministratorContext context = new TerministratorContext(true)) { user.NamableId = context.User.Add(user).NamableId; context.SaveChanges(); } return(AddReferences(user, reference)); }
/// <summary> /// Creates an user name from a iUser's infos and a user's reference. /// </summary> /// <param name="iUser">The iuser.</param> /// <param name="user">The user.</param> /// <returns>The newly created user name.</returns> public static Entites.UserName ExtractUserName(IUser iUser, Entites.User user) { return(new Entites.UserName(iUser.FirstName, iUser.LastName, iUser.Username, true, DateTime.UtcNow, user)); }
/// <summary> /// Updates or create an user. /// </summary> /// <param name="iUser">The iuser.</param> /// <returns>The requested user.</returns> public static Entites.User UpdateOrCreate(IUser iUser) { Entites.User user = Get(iUser); return(user == null?Create(iUser) : Update(iUser, user)); }
/// <summary> /// Gets the private channel with a user. /// </summary> /// <param name="user">The user.</param> /// <returns>The requested channel.</returns> public static Entites.Channel GetPrivateChannel(Entites.User user) { return (DAL.User.LoadChannels(user) .Channels.FirstOrDefault(x => DAL.UserToChannel.LoadChannel(x).Channel.Private)?.Channel); }
/// <summary> /// Adds the references of the second arguement in the first one. /// </summary> /// <param name="user">The user to add the references in.</param> /// <param name="reference">The references.</param> /// <returns>The first arguement.</returns> private static Entites.User AddReferences(Entites.User user, Entites.User reference) { user.Application = reference.Application; return(user); }
/// <summary> /// Clears the references of the user. /// </summary> /// <param name="user">The user.</param> /// <returns>A copy of the user given in entry with only the references.</returns> private static Entites.User ClearReferences(Entites.User user) { Entites.User reference = new Entites.User(user.Application, null); user.Application = null; return(reference); }