コード例 #1
0
 protected static void AddLink(string link)
 {
     using (UserDBContext db = new UserDBContext())
     {
         db.Add(new Links(link));
         db.SaveChanges();
     }
 }
コード例 #2
0
 public static void Register
     (string nickname, string email, string password)
 {
     using (UserDBContext db = new UserDBContext())
     {
         db.Add(new UserInfo(email, nickname, password));
         db.SaveChanges();
     }
 }
コード例 #3
0
 public static List <string> Links(string name)
 {
     using (UserDBContext db = new UserDBContext())
     {
         return(db
                .LinkLibrary
                .ToList()
                .Where(a => a.NickName == name)
                .Select(a => a.Link)
                .ToList());
     }
 }
コード例 #4
0
 public static void LogOut(string nickname)
 {
     using (UserDBContext db = new UserDBContext())
     {
         var check = db.Users
                     .ToList()
                     .FirstOrDefault(a => a.NickName == nickname);
         check.IsLoggedIn =
             check == default(UserInfo) ?
             throw new ArgumentException("No such nickname") :
                   false;
     }
 }
コード例 #5
0
 public static void CheckLinks()
 {
     using (UserDBContext db = new UserDBContext())
     {
         var unusedLinks = db
                           .LinkLibrary
                           .ToList()
                           .Where(a => a.NickName == "");
         if (unusedLinks.Count() == 0 || db.Users.Count() == 0)
         {
             return;
         }
         var minLinks = db
                        .Users
                        .ToList()
                        .Select(a => Links(a.NickName).Count)
                        .Min();
         var minUsers = db.Users.ToList().Where(a => Links(a.NickName).Count == minLinks);
         foreach (var u in minUsers)
         {
             foreach (var l in unusedLinks)
             {
                 if (l.NickName != string.Empty)
                 {
                     continue;
                 }
                 l.NickName = u.NickName;
                 break;
             }
         }
         unusedLinks = db
                       .LinkLibrary
                       .ToList()
                       .Where(a => a.NickName == "");
         while (unusedLinks.Count() != 0)
         {
             foreach (var u in db.Users.ToList())
             {
                 foreach (var l in unusedLinks)
                 {
                     if (l.NickName != string.Empty)
                     {
                         continue;
                     }
                     l.NickName = u.NickName;
                     break;
                 }
             }
         }
     }
 }
コード例 #6
0
 public static bool IsValidAuthorization(string nickname, string pass)
 {
     using (UserDBContext db = new UserDBContext())
     {
         var check = db.Users
                     .ToList()
                     .FirstOrDefault
                         (a => a.NickName == nickname);
         if (check == default(UserInfo))
         {
             return(false);
         }
         if (check.Password == pass)
         {
             check.IsLoggedIn = true;
         }
         db.SaveChanges();
         return(check.IsLoggedIn);
     }
 }
コード例 #7
0
 public UserInfo(string mail, string nick, string pass)
 {
     EMail    = mail;
     NickName = nick;
     Password = pass;
     using (UserDBContext db = new UserDBContext())
     {
         var links = db.LinkLibrary.ToList();
         var users = db.Users.ToList();
         if (users.Count == 0)
         {
             foreach (var link in links)
             {
                 link.NickName = NickName;
             }
         }
         else
         {
             int linksPerUser = links.Count / users.Count;
             int userCount    = 0;
             while (linksPerUser > 0)
             {
                 links
                 .Where(a => a.NickName == users[userCount].NickName)
                 .FirstOrDefault()
                 .NickName = NickName;
                 userCount++;
                 linksPerUser--;
                 if (userCount == users.Count)
                 {
                     userCount = 0;
                 }
             }
         }
         db.SaveChanges();
     }
 }