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(); } }
static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.ReadKey(); datatableEntities1 datatableEntities1 = new datatableEntities1(); datatableEntities1.users. }
public static void Run(datatableEntities1 _dbcontext, String _path) { var timer = new System.Threading.Timer( e => DaemonProcess(_dbcontext, _path), null, TimeSpan.Zero, TimeSpan.FromMinutes(5)); }
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); }
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(); } }
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(); } }
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(); } }