コード例 #1
0
        private static void DaemonProcess(datatableEntities1 _dbcontext, String _path)
        {
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .WriteTo.Console()
                         .WriteTo.File("logs\\DBSync.txt", rollingInterval: RollingInterval.Day)
                         .CreateLogger();

            try
            {
                DownstreamSync.DSync(_dbcontext, _path);
                UpstreamSync.USync(_dbcontext, _path);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error during Daemon run");
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                    Log.Error(ex, "Error during Daemon run");
                }
            }
            finally
            {
                Log.Information("Sync daemon is down");
                Log.CloseAndFlush();
            }
        }
コード例 #2
0
ファイル: Start.cs プロジェクト: OESmartMirror/ORM_CORE
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.ReadKey();
            datatableEntities1 datatableEntities1 = new datatableEntities1();

            datatableEntities1.users.
        }
コード例 #3
0
 public static void Run(datatableEntities1 _dbcontext, String _path)
 {
     var timer = new System.Threading.Timer(
         e => DaemonProcess(_dbcontext, _path),
         null,
         TimeSpan.Zero,
         TimeSpan.FromMinutes(5));
 }
コード例 #4
0
        public static user GetUserByLable(this datatableEntities1 _dbContext, String _label)
        {
            user temp = null;

            foreach (user usr in _dbContext.users)
            {
                if (usr.label.Equals(_label))
                {
                    temp = usr;
                }
            }
            return(temp);
        }
コード例 #5
0
        public static void DSync(this datatableEntities1 _dbcontext, String _path)
        {
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .WriteTo.Console()
                         .WriteTo.File("logs\\DBSync.txt", rollingInterval: RollingInterval.Day)
                         .CreateLogger();
            Log.Information("Starting downstream sync:");


            try
            {
                Log.Information("Found {NumOfUsers} in the database", _dbcontext.users.Count());
                foreach (user _user in _dbcontext.users)
                {
                    String correspondingUserPath = _path + Path.DirectorySeparatorChar;
                    if (!Directory.Exists(correspondingUserPath))
                    {
                        // Try to create the directory.
                        DirectoryInfo di = Directory.CreateDirectory(correspondingUserPath);
                    }

                    _user.ExportUserImages(correspondingUserPath);
                    //_user.ExportUserParametersAsJson(correspondingUserPath);
                    //_user.ExportProgramParametersAsJson(correspondingUserPath);
                    _user.ExportUserAsJson(correspondingUserPath);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error during upstream sync");
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                    Log.Error(ex, "Error during upstream sync");
                }
            }
            finally
            {
                Log.Information("Finished downstream sync process");
                Log.CloseAndFlush();
            }
        }
コード例 #6
0
        public static void USync(this datatableEntities1 _dbcontext, String _path)
        {
            Log.Information("Starting upstream sync:");
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .WriteTo.Console()
                         .WriteTo.File("logs\\DBSync.txt", rollingInterval: RollingInterval.Day)
                         .CreateLogger();
            List <user> lUserToUpdate = new List <user>();
            List <user> lUserToInsert = new List <user>();

            try
            {
                String[] directories = Directory.GetDirectories(_path);
                Log.Information("Located {LocalUserCount} user profile", directories.Length);
                foreach (String dirLabel in directories)
                {
                    String   correspondingPath = _path + Path.DirectorySeparatorChar + dirLabel;
                    String[] pics  = Directory.GetFiles(correspondingPath, "*.jpg");
                    String[] jsons = Directory.GetFiles(correspondingPath, dirLabel + ".json");
                    String   json  = "";

                    foreach (String str in jsons)
                    {
                        if (str.Equals(dirLabel))
                        {
                            json = str;
                        }
                    }

                    if (pics.Length > 0 && json.Length > 0)
                    {
                        if (_dbcontext.GetUserByLable(dirLabel) != null)
                        {
                            user temp         = _dbcontext.GetUserByLable(dirLabel);
                            user tempFromJson = LoadUserFromJson(json);
                            if (!temp.Equals(tempFromJson))
                            {
                                lUserToUpdate.Add(tempFromJson);
                                if (!pics.Length.Equals(tempFromJson.pictures.Count))
                                {
                                    lUserToUpdate.Add(tempFromJson);
                                }
                            }
                            else
                            {
                                lUserToUpdate.Add(temp);
                                if (!pics.Length.Equals(temp.pictures.Count))
                                {
                                    lUserToUpdate.Add(temp);
                                }
                            }
                        }
                        else
                        {
                            user tempFromJson = LoadUserFromJson(json);
                            if (tempFromJson != null)
                            {
                                tempFromJson.AddPictures(correspondingPath);
                                lUserToInsert.Add(tempFromJson);
                            }
                        }
                    }
                }

                Log.Information("Found {usersToUpdate} to update", lUserToUpdate.Count);
                foreach (user utu in lUserToUpdate)
                {
                    _dbcontext.Entry(utu).State = System.Data.Entity.EntityState.Modified;
                }
                _dbcontext.SaveChanges();
                Log.Information("Finished updating users");
                Log.Information("Found {usersToInsert} to insert", lUserToInsert);
                foreach (user uti in lUserToInsert)
                {
                    _dbcontext.Entry(uti).State = System.Data.Entity.EntityState.Added;
                }
                _dbcontext.SaveChanges();
                Log.Information("Finished inserting users");
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error during upstream sync");
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                    Log.Error(ex, "Error during upstream sync");
                }
            }
            finally
            {
                Log.Information("Finished upstream sync process");
                Log.CloseAndFlush();
            }
        }
コード例 #7
0
        static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .WriteTo.Console()
                         .WriteTo.File("logs\\DBSync.txt", rollingInterval: RollingInterval.Day)
                         .CreateLogger();

            datatableEntities1 _datatableEntities1 = new datatableEntities1();

            try
            {
                Log.Information("Trying");
                String path = "C:" + Path.DirectorySeparatorChar + "Face";

                if (true == true)
                {
                    //Console.WriteLine("Hello World!");
                    //Console.ReadKey();

                    //datatableEntities1.users.


                    user user = new user();
                    user.Init("Tóth András");
                    //if(datatableEntities1.users.Where(u => u.Equals(user)).ToList().LongCount() > 1)
                    //{
                    //    datatableEntities1.users.Remove(user);
                    //}

                    //datatableEntities1.users.Add(user);


                    //datatableEntities1.SaveChangesAsync();

                    user.AddParameter("Birthday", "1991.06.18");
                    user.AddProgram("Weather");
                    user.GetProgramByName("Weather").AddParameters("Location", "Székesfehérvár");



                    System.Data.Entity.Infrastructure.DbEntityEntry <user>               userEntry          = _datatableEntities1.Entry(user);
                    System.Data.Entity.Infrastructure.DbEntityEntry <program>            programEntry       = _datatableEntities1.Entry(user.programs.FirstOrDefault());
                    System.Data.Entity.Infrastructure.DbEntityEntry <program_parameters> programParamsEntry = _datatableEntities1.Entry(user.programs.FirstOrDefault().program_parameters.FirstOrDefault());
                    Debug.WriteLine(userEntry.State);
                    Debug.WriteLine(programEntry.State);
                    Debug.WriteLine(programParamsEntry.State);

                    _datatableEntities1.SaveChanges();

                    _datatableEntities1.Entry(user).State = System.Data.Entity.EntityState.Added;

                    Debug.WriteLine(userEntry.State);
                    Debug.WriteLine(programEntry.State);
                    Debug.WriteLine(programParamsEntry.State);

                    _datatableEntities1.SaveChanges();



                    //var u_param = new users_parameters
                    //{
                    //    parameter_name = "Birthday",
                    //    parameter_value = "1991.06.18"
                    //};

                    //datatableEntities1.users_parameters.Add(u_param);

                    //datatableEntities1.SaveChanges();

                    //var p_param = new program_parameters
                    //{
                    //    parameter_name = "ProgramName",
                    //    parameter_value = "Weather"
                    //};

                    //datatableEntities1.program_parameters.Add(p_param);

                    //datatableEntities1.SaveChanges();

                    //var prog = new program();

                    //datatableEntities1.programs.Add(prog);

                    //datatableEntities1.SaveChanges();

                    //prog.AddParameters(p_param);

                    //datatableEntities1.SaveChanges();
                }

                Log.Information("Calling downstream sync");
                _datatableEntities1.DSync(path);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Something went wrong");
                while (ex.InnerException != null)
                {
                    Debug.Write(ex.StackTrace);
                    ex = ex.InnerException;
                    Log.Error(ex, "Something went wrong");
                }
            }
            finally
            {
                Log.Information("Done trying");
                Log.CloseAndFlush();
            }
        }