Exemple #1
0
 /// <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);
 }
Exemple #2
0
 /// <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);
 }
Exemple #3
0
 /// <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);
 }
Exemple #4
0
 /// <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));
 }
Exemple #6
0
 /// <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));
 }
Exemple #7
0
 /// <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);
 }
Exemple #8
0
 /// <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);
 }
Exemple #9
0
 /// <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);
 }