示例#1
0
 public UserContents GetUser(Credentials c)
 {
     if (LoginExists(c.Login))
     {
         if (Authenticate(c))
         {
             using (filesyncEntities context = new filesyncEntities()) {
                 int  id = LoginToId(c.Login);
                 User u1 = (from o in context.Users
                            where o.user_id == id
                            select o).Single();
                 UserContents u = new UserContents(u1.user_login, u1.user_pass, u1.user_fullname, u1.user_email);
                 u.LastLogin = (DateTime)u1.user_lastlogin;
                 u.Id        = u1.user_id;
                 return(u);
             }
         }
         else
         {
             throw new Exception("wrong password");
         }
     }
     else
     {
         throw new Exception("no such user");
     }
 }
示例#2
0
        public void AddFile(Credentials c, MachineContents m, DirectoryContents d,
                            FileContents f)
        {
            GetDirList(c, m);
            f.Dir = (from o in m.Directories where o.Name == d.Name select o.Id).Single();
            if (!CheckFileExistence(c, m, d, f))
            {
                AddFileContent(f);
                //TypeManipulator.TypeToId(f);
                File f1 = File.CreateFile(1, f.Dir, 1, f.Content, f.Name, f.Size, f.Hash,
                                          f.Uploaded, f.Modified);
                using (filesyncEntities context = new filesyncEntities()) {
                    context.Files.AddObject(f1);
                    context.SaveChanges();
                }
            }
            else
            {
                GetFileId(c, m, d, f);
                GetFileContentId(c, m, d, f);
                UpdateFileContent(f);
                //TypeManipulator.TypeToId(f);

                using (filesyncEntities context = new filesyncEntities()) {
                    File f1 = (from o in context.Files where o.file_id == f.Id select o).Single();
                    f1.file_hash     = f.Hash;
                    f1.file_modified = f.Modified;
                    f1.file_size     = f.Size;
                    f1.file_uploaded = f.Uploaded;

                    context.SaveChanges();
                }
            }
        }
示例#3
0
        private static void AddMachDir(MachineContents m, DirectoryContents d)
        {
            MachineDir md1 = MachineDir.CreateMachineDir(m.Id, d.Id, d.LocalPath);

            using (filesyncEntities context = new filesyncEntities()) {
                context.MachineDirs.AddObject(md1);
                context.SaveChanges();
            }
        }
示例#4
0
 private static void UpdateFileContent(FileContents f)
 {
     using (filesyncEntities context = new filesyncEntities()) {
         Content c1 = (from o in context.Contents
                       where o.content_id == f.Content
                       select o).Single();
         c1.content_data = f.Data;
         context.SaveChanges();
     }
 }
示例#5
0
        private static void AddMachDir(MachineModel m, DirModel d)
        {
            MachineDir md1 = MachineDir.CreateMachineDir(m.Id, d.Id, d.Path);

            using (filesyncEntities context = new filesyncEntities())
            {
                context.MachineDirs.AddObject(md1);
                context.SaveChanges();
            }
        }
示例#6
0
        public static void Add(MachdirModel md)
        {
            MachineDir md1 = MachineDir.CreateMachineDir(1, md.Dir, md.Path);

            using (filesyncEntities context = new filesyncEntities())
            {
                context.MachineDirs.AddObject(md1);
                context.SaveChanges();
            }
        }
示例#7
0
        public static List <string> GetTypeList()
        {
            List <string> typelist;

            using (filesyncEntities context = new filesyncEntities())
            {
                typelist = (from o in context.Types select o.type_name).ToList();
            }
            return(typelist);
        }
示例#8
0
 public static void GetFileContent(CredentialsLib c, MachineModel m, DirModel d, FileModel f)
 {
     GetFileContentId(m, d, f);
     using (filesyncEntities context = new filesyncEntities())
     {
         Content c1 = (from o in context.Contents
                       where o.content_id == f.Content
                       select o).Single();
         f.Data = c1.content_data;
     }
 }
示例#9
0
 public void GetFileContent(Credentials c, MachineContents m, DirectoryContents d,
                            FileContents f)
 {
     GetFileContentId(c, m, d, f);
     using (filesyncEntities context = new filesyncEntities()) {
         Content c1 = (from o in context.Contents
                       where o.content_id == f.Content
                       select o).Single();
         f.Data = c1.content_data;
     }
 }
示例#10
0
 private void GetFileId(Credentials c, MachineContents m, DirectoryContents d,
                        FileContents f)
 {
     GetDirList(c, m);
     d.Id = (from o in m.Directories where o.Name == d.Name select o.Id).Single();
     using (filesyncEntities context = new filesyncEntities()) {
         int file_id = (from o in context.Files
                        where (o.file_name == f.Name) && (o.dir_id == d.Id)
                        select o.file_id).Single();
         f.Id = file_id;
     }
 }
示例#11
0
        private static void GetFileId(MachineModel m, DirModel d, FileModel f)
        {
            DirManipulator.GetDirList(m);
            d.Id = (from o in m.Directories where o.Name == d.Name select o.Id).Single();
            using (filesyncEntities context = new filesyncEntities())
            {
                int file_id = (from o in context.Files where (o.file_name == f.Name) && (o.dir_id == d.Id)
                               select o.file_id).Single();

                f.Id = file_id;
            }
        }
示例#12
0
        private void AddFileContent(FileContents f)
        {
            int     AddedContentId;
            Content f1 = Content.CreateContent(1, f.Data);

            using (filesyncEntities context = new filesyncEntities()) {
                context.Contents.AddObject(f1);
                context.SaveChanges();
                AddedContentId = (from c in context.Contents select c).ToList().Last().content_id;
            }
            f.Content = AddedContentId;
        }
示例#13
0
 public void ChangeMachineDetails(Credentials c, MachineContents newM,
                                  MachineContents oldM)
 {
     oldM.Id = MachineNameToId(oldM.Name);
     using (filesyncEntities context = new filesyncEntities()) {
         Machine m1 = (from o in context.Machines
                       where o.machine_id == oldM.Id
                       select o).Single();
         m1.machine_name        = newM.Name;
         m1.machine_description = newM.Description;
         context.SaveChanges();
     }
 }
示例#14
0
 private bool LoginExists(string login)
 {
     using (filesyncEntities context = new filesyncEntities()) {
         User u1;
         try {
             u1 = (from o in context.Users
                   where o.user_login == login
                   select o).Single();
         } catch {
             return(false);
         }
         return(true);
     }
 }
示例#15
0
 private void UpdateLastLogin(int id)
 {
     using (filesyncEntities context = new filesyncEntities()) {
         try {
             var u1 = (from o in context.Users
                       where o.user_id == id
                       select o).Single();
             u1.user_lastlogin = DateTime.Now;
             context.SaveChanges();
         } catch {
             throw new Exception("no such user");
         }
     }
 }
示例#16
0
 public void Login(Credentials c)
 {
     using (filesyncEntities context = new filesyncEntities()) {
         User u1;
         try {
             u1 = (from u in context.Users
                   where c.Equals(u.user_login, u.user_pass)
                   select u).Single();
             UpdateLastLogin(LoginToId(c.Login));
         } catch {
             throw new Exception("Authorization error.");
         }
     }
 }
示例#17
0
 private bool Authenticate(Credentials c)
 {
     using (filesyncEntities context = new filesyncEntities()) {
         User u1;
         try {
             u1 = (from u in context.Users
                   where c.Equals(u.user_login, u.user_pass)
                   select u).Single();
         } catch {
             return(false);
         }
         return(true);
     }
 }
示例#18
0
        public static void ChangeMachineDetails(CredentialsLib c, MachineModel newMachine, MachineModel oldMachine)
        {
            oldMachine.Id = MachineNameToId(oldMachine.Name);

            using (filesyncEntities context = new filesyncEntities())
            {
                Machine m1 = (from o in context.Machines
                              where o.machine_id == oldMachine.Id
                              select o).Single();
                m1.machine_name        = newMachine.Name;
                m1.machine_description = newMachine.Description;
                context.SaveChanges();
            }
        }
示例#19
0
        private int MachineNameToId(string name)
        {
            if (MachineNameExists(name))
            {
                using (filesyncEntities context = new filesyncEntities()) {
                    Machine m1 = (from o in context.Machines
                                  where o.machine_name == name
                                  select o).Single();

                    return(m1.machine_id);
                }
            }

            throw new Exception("no machine with given name found" + name.ToString());
        }
示例#20
0
        private static void AddDir(DirectoryContents d)
        {
            int AddedDirId;
            Dir d1 = Dir.CreateDir(1, d.Name, d.Owner);

            d1.dir_description = d.Description;

            using (filesyncEntities context = new filesyncEntities()) {
                context.Dirs.AddObject(d1);
                context.SaveChanges();
                AddedDirId = (from z in context.Dirs select z).ToList().Last().dir_id;
            }

            d.Id = AddedDirId;
        }
示例#21
0
 internal static void TypeToId(FileModel f)
 {
     if (!TypeNameExists(f.Typename))
     {
         throw new Exception("no such type exists");
     }
     else
     {
         using (filesyncEntities context = new filesyncEntities())
         {
             int type_id = (from o in context.Types where o.type_name == f.Typename select o.type_id).Single();
             f.Type = type_id;
         }
     }
 }
示例#22
0
 private int LoginToId(string login)
 {
     if (LoginExists(login))
     {
         using (filesyncEntities context = new filesyncEntities()) {
             User u1 = (from o in context.Users
                        where o.user_login == login
                        select o).Single();
             return(u1.user_id);
         }
     }
     else
     {
         throw new Exception("no such user");
     }
 }
示例#23
0
 private bool CheckFileExistence(Credentials c, MachineContents m, DirectoryContents d,
                                 FileContents f)
 {
     GetDirList(c, m);
     d.Id = (from o in m.Directories where o.Name == d.Name select o.Id).Single();
     try {
         using (filesyncEntities context = new filesyncEntities()) {
             (from o in context.Files
              where (o.file_name == f.Name) && (o.dir_id == d.Id)
              select o.file_id).Single();
         }
     } catch {
         return(false);
     }
     return(true);
 }
示例#24
0
        private static bool MachineNameExists(string name)
        {
            bool result = true;

            using (filesyncEntities context = new filesyncEntities()) {
                Machine m1;
                try {
                    m1 = (from o in context.Machines
                          where o.machine_name == name
                          select o).Single();
                } catch {
                    result = false;
                }
            }
            return(result);
        }
示例#25
0
        public static void AddType(FileModel f)
        {
            if (TypeNameExists(f.Typename))
            {
                throw new Exception("type with given name already exists");
            }
            else
            {
                Type t = Type.CreateType(1, f.Typename);

                using (filesyncEntities context = new filesyncEntities())
                {
                    context.Types.AddObject(t);
                    context.SaveChanges();
                }
            }
        }
示例#26
0
        public void DelUser(Credentials c)
        {
            UserContents u = GetUser(c);

            using (filesyncEntities context = new filesyncEntities()) {
                try {
                    int id = LoginToId(u.Login);
                    var u1 = (from o in context.Users
                              where o.user_id == id
                              select o).Single();
                    context.Users.DeleteObject(u1);
                    context.SaveChanges();
                } catch {
                    throw new Exception("no such user");
                }
            }
        }
示例#27
0
        public void AddMachine(Credentials c, MachineContents m)
        {
            if (MachineNameExists(m.Name))
            {
                throw new Exception("machine with given name already exists");
            }
            else
            {
                int     user_id = LoginToId(c.Login);
                Machine m1      = Machine.CreateMachine(1, user_id, m.Name);
                m1.machine_description = m.Description;

                using (filesyncEntities context = new filesyncEntities()) {
                    context.Machines.AddObject(m1);
                    context.SaveChanges();
                }
            }
        }
示例#28
0
 private static bool CheckFileExistence(MachineModel m, DirModel d, FileModel f)
 {
     DirManipulator.GetDirList(m);
     d.Id = (from o in m.Directories where o.Name == d.Name select o.Id).Single();
     try
     {
         using (filesyncEntities context = new filesyncEntities())
         {
             (from o in context.Files
              where (o.file_name == f.Name) && (o.dir_id == d.Id)
              select o.file_id).Single();
         }
     }
     catch
     {
         return(false);
     }
     return(true);
 }
示例#29
0
        public static bool Authenticate(CredentialsLib c)
        {
            using (filesyncEntities context = new filesyncEntities())
            {
                User u1;
                try
                {
                    u1 = (from u in context.Users
                          where u.user_login == c.Login && u.user_pass == c.Pass
                          select u).Single();
                }
                catch
                {
                    return(false);
                }

                return(true);
            }
        }
示例#30
0
        public void GetMachineList(Credentials c, UserContents u)
        {
            List <MachineContents> machinelist = new List <MachineContents>();

            u.Id = LoginToId(u.Login);
            using (filesyncEntities context = new filesyncEntities()) {
                List <Machine> ml = (from o in context.Machines
                                     where o.user_id == u.Id
                                     select o).ToList();
                foreach (Machine m in ml)
                {
                    MachineContents m1 = new MachineContents(m.machine_name, m.machine_description);
                    m1.Id   = m.machine_id;
                    m1.User = m.user_id;
                    machinelist.Add(m1);
                }
                u.Machines = machinelist;
            }
        }