/// <summary> /// Saves a new tenant to the database. /// </summary> /// <param name="name">Tenants full name, "First Last"</param> /// <returns>True if operation was successful and changes were saved.</returns> public static bool AddTenant(string id, string name) { using (var context = new LogsContext()) { context.Database.BeginTransaction(); try { context.Add( new Tenant() { Id = id, Name = name }); context.SaveChanges(); context.Database.CommitTransaction(); } catch (Exception) { context.Database.RollbackTransaction(); return(false); } } return(true); }
private void LogsContextSeeding() { LogsContext.Seeding.Add(new Logs.SeedModel { IsSeed = true }); LogsContext.SaveChanges(); }
/// <summary> /// Saves a log entry to the database. /// </summary> /// <param name="when">Date and time when this occured, using the format "YY-MM-DD HH:MM:SS"</param> /// <param name="doorId">Door id involved.</param> /// <param name="eventId">Event id, what happened</param> /// <param name="tagId">Tag id used.</param> /// <returns>True if operation was successful and changes were saved.</returns> public static bool LogEntry(string when, string doorId, string eventId, string tagId) { using (var context = new LogsContext()) { context.Database.BeginTransaction(); try { context.Add( new LogEntry() { When = DateTime.ParseExact(when, "yy-MM-dd HH:mm:ss", null), DoorId = doorId, EventId = eventId, TagId = tagId } ); context.SaveChanges(); context.Database.CommitTransaction(); } catch (Exception) { context.Database.RollbackTransaction(); return(false); } } return(true); }
public static void Log(Logs log) { LogsContext db = new LogsContext(); db.Logs.Add(log); db.SaveChanges(); db.Dispose(); }
public void UpdateSeedLogs() { LogsContext.ExecuteTransaction(() => { LogsContext.Seeding.Add(new Logs.SeedModel { IsSeed = true }); LogsContext.SaveChanges(); }); }
/// <summary> /// Looks for the names and tags of all tenants living at the apartment. /// </summary> /// <param name="apartmentId">Apartment id code.</param> /// <returns>Names of all tenants, listed alpabethically in ascending order.</returns> public static List <Tag> ListTenantsAt(string apartmentId) { using (var context = new LogsContext()) { return(context.Tags .Include(t => t.Tenant) .Where(t => t.Tenant.ApartmentId == apartmentId) .OrderBy(t => t.Tenant.Name) .ToList()); } }
private void ButtonStartScript_Click(object sender, EventArgs e) { string errMsg = ReadView(scriptHardware.Id); if (scriptHardware.Name != ScriptName.Text) { errMsg += $"{GetString(Resource.String.saving_is_required)}"; } if (!string.IsNullOrWhiteSpace(errMsg)) { errMsg += $"ButtonStartScript_Click - {errMsg}"; Log.Error(TAG, errMsg); using (LogsContext logs = new LogsContext()) { logs.AddLogRow(LogStatusesEnum.Error, errMsg, TAG); } CardSubtitle.Text = errMsg; CardSubtitle.SetTextColor(Color.Red); Toast.MakeText(this, errMsg, ToastLength.Short).Show(); return; } TaskModel task; lock (DatabaseContext.DbLocker) { using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase)) { task = new TaskModel() { Name = "http trigger", TaskInitiatorType = TaskInitiatorsTypes.Manual, TaskInitiatorId = (sender as AppCompatButton).Id, ScriptId = scriptHardware.Id }; task.FinishedAt = task.CreatedAt; db.Tasks.Add(task); db.SaveChanges(); } } task.Script = scriptHardware; BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += new DoWorkEventHandler(aForegroundService.RunScriptAction); bw.ProgressChanged += Bw_ProgressChanged; bw.RunWorkerCompleted += Bw_RunWorkerCompleted; bw.RunWorkerAsync(task); //Thread RunScriptThread = new Thread(aForegroundService.RunScriptAction) { IsBackground = false }; //RunScriptThread.Start(task); }
/// <summary> /// Looks for log entries containing the tag. /// </summary> /// <param name="tag">Tag code.</param> /// <returns>Log entries, listed in descending order based on date and time, latest entry first.</returns> public static List <LogEntry> FindEntriesByTag(string tagId) { using (var context = new LogsContext()) { var entries = context.LogEntries .Include(le => le.Tag) .ThenInclude(ta => ta.Tenant) .Where(le => le.TagId == tagId) .OrderByDescending(le => le.When); // Limit entries returned according to MaxEntries. return(MaxEntries > 0 ? entries.Take(MaxEntries).ToList() : entries.ToList()); } }
/// <summary> /// Looks through currently in use tag ids for specified apartment and finds the next first alphabethically available. /// E.g. if tags 0301A, 0301B, and 0301D are in use, 0301C will be returned. /// </summary> /// <param name="apartmentId">Apartment id for which to get a tag id.</param> /// <returns>Returns an available tag id, or an empty string if none is available.</returns> public static string GetNextApartmentTag(string apartmentId) { // Get all currently assigned tag letters for apartment. var tagLettersInUse = new List <string>(); using (var context = new LogsContext()) { var tags = context.Tags .Include(t => t.Tenant) .Where(t => t.Tenant.ApartmentId == apartmentId) .ToList(); foreach (Tag tag in tags) { tagLettersInUse.Add(tag.Id.Substring(apartmentId.Length)); } } // Make sure they are sorted or trouble when assuming letter is available. tagLettersInUse.Sort(); // Find first letter in the alphabet that is not currently in use by a tenant. foreach (char letter in AllowedTagLetters.ToCharArray()) { // Assume its available until proven it's not. var isLetterAvailable = true; foreach (string tagLetter in tagLettersInUse) { // Is letter in use by tag? if (tagLetter.IndexOf(letter) >= 0) // index of 'A' in "A"? => 0 => true { isLetterAvailable = false; // It's in use, no reason looking at the other tags for this letter. break; } } if (isLetterAvailable) { return($"{apartmentId}{letter}"); } } // Return empty string if all allowed letters are in use. return(""); }
public DbBaseOperations() { dbContext = new BookstoreEntities(); logContext = new LogsContext(); }
public RegistroViewModel(LogsContext context) { _context = context; }
public static void ExecureQuery(string filePath) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(filePath); string pathQuery = "/review-queries/query"; XmlNodeList xmlQuery = xmlDocument.SelectNodes(pathQuery); string fileName = "../../search-results.xml"; using (var writer = new XmlTextWriter(fileName, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.IndentChar = '\t'; writer.Indentation = 1; writer.WriteStartDocument(); writer.WriteStartElement("search-results"); writer.WriteStartElement("result-set"); BookstoreEntities context = new BookstoreEntities(); foreach (XmlNode query in xmlQuery) { if (query.Attributes["type"].Value == "by-period") { string startDateStr = query["start-date"].InnerText; string endDateStr = query["end-date"].InnerText; DateTime startDate = DateTime.ParseExact(startDateStr, "d-MMM-yyyy", CultureInfo.InvariantCulture); DateTime endDate = DateTime.ParseExact(endDateStr, "d-MMM-yyyy", CultureInfo.InvariantCulture); var searchQuery = from r in context.Reviews where r.CreationDate >= startDate && r.CreationDate <= endDate select r; searchQuery = searchQuery.OrderByDescending(x => x.CreationDate); searchQuery = searchQuery.OrderByDescending(x => x.ReviewText); WriteBookmarks(writer, searchQuery.ToList()); } else { string authorName = query["author-name"].InnerText; var searchQuery = from r in context.Reviews join a in context.Authors on r.AuthorId equals a.AuthorId where a.Name == authorName select r; searchQuery = searchQuery.OrderByDescending(x => x.CreationDate); searchQuery = searchQuery.OrderByDescending(x => x.ReviewText); WriteBookmarks(writer, searchQuery.ToList()); } //Create log var logsContext = new LogsContext(); Log log = new Log { Date = DateTime.Now, QueryXml = CreateQueryXml(query) }; logsContext.Logs.Add(log); logsContext.SaveChanges(); } writer.WriteEndElement(); writer.WriteEndDocument(); } }
public LogsController(LogsContext context) { _context = context; }
public EfRepository(LogsContext context) { _context = context ?? throw new NullReferenceException(nameof(context)); _dbSet = context.Set <TEntity>(); }
/// <summary> /// Moves a tenant from an apartment and updates the tenants tag. /// </summary> /// <param name="tenantOrTagId">Full name of tenant or tenants tag id. </param> /// <param name="apartmentId">Id of apartment to move in to, /// or an empty string to simply move out and not into another apartment.</param> /// <returns>True if operation was successful and changes were saved.</returns> public static bool MoveTenant(string tenantOrTagId, string apartmentId) { using (var context = new LogsContext()) { try { var tenant = context.Tenants .Where(t => t.Id == tenantOrTagId) .FirstOrDefault(); var tag = context.Tags .Include(t => t.Tenant) .Where(t => t.Id == tenantOrTagId || t.Tenant.Id == tenantOrTagId) .FirstOrDefault(); if (tenant == null && tag != null) { tenant = tag.Tenant; } else if (tenant == null && tag == null) { // Tenant not found by tenant id or tag id. return(false); } context.Database.BeginTransaction(); try { if (apartmentId == "") { // Tenant moved out. Remove tenant and tag. context.Tenants.Remove(tenant); if (tag != null) { context.Tags.Remove(tag); } } else { // Tenant moved to another apartment. // Set tenants new apartment id. tenant.ApartmentId = apartmentId; if (tag != null) { // Remove old tag if there was one. context.Tags.Remove(tag); } // Set tenants new tag. context.Add( new Tag() { Tenant = tenant, TenantId = tenant.Id, Id = TagHelper.GetNextApartmentTag(apartmentId), } ); } context.SaveChanges(); context.Database.CommitTransaction(); } catch (Exception) { context.Database.RollbackTransaction(); return(false); } } catch (Exception) { return(false); } } return(true); }
async void SimulateSplash() { LogsContext logsDB = new LogsContext(); await logsDB.Database.EnsureCreatedAsync(); string log_msg = GetText(Resource.String.logs_database_ensure_created) + System.Environment.NewLine + LogsContext.DatabasePathLogs; RunOnUiThread(() => { Toast.MakeText(this, log_msg, ToastLength.Short).Show(); }); //await logsDB.Database.EnsureCreatedAsync(); try { logsDB.AddLogRow(LogStatusesEnum.Info, GetText(Resource.String.start_app_msg), TAG); } catch (Exception ex) { string err_message = ex.Message; if (ex.InnerException != null) { err_message += System.Environment.NewLine + ex.InnerException.Message + System.Environment.NewLine + System.Environment.NewLine + GetText(Resource.String.delete_the_log_database_file) + System.Environment.NewLine + LogsContext.DatabasePathLogs; } if (File.Exists(LogsContext.DatabasePathLogs)) { File.Delete(LogsContext.DatabasePathLogs); } await logsDB.Database.EnsureCreatedAsync(); logsDB.AddLogRow(LogStatusesEnum.Error, err_message, TAG); logsDB.AddLogRow(LogStatusesEnum.Trac, GetText(Resource.String.start_app_msg), TAG); RunOnUiThread(() => { Toast.MakeText(this, err_message, ToastLength.Long).Show(); }); } DatabaseContext db = new DatabaseContext(gs.DatabasePathBase); db.Database.EnsureCreated(); AddSplashText($"db patch: {gs.DatabasePathBase}"); #if DEBUG log_msg = GetText(Resource.String.deleting_outdated_logs); AddSplashText(log_msg); logsDB.Logs.RemoveRange(logsDB.Logs.Where(x => x.CreatedAt < DateTime.Now.AddDays(-7)).ToArray()); if (reWriteDataBase) { log_msg = GetText(Resource.String.deleting_main_database_file); logsDB.AddLogRow(LogStatusesEnum.Warn, log_msg, TAG); AddSplashText(log_msg); File.Delete(gs.DatabasePathBase); } log_msg = GetText(Resource.String.initializing_db_demo_data); AddSplashText(log_msg); logsDB.AddLogRow(LogStatusesEnum.Trac, log_msg, TAG); await db.Database.EnsureCreatedAsync(); try { _ = db.TelegramMessages.FirstOrDefault(); _ = db.Users.FirstOrDefault(); _ = db.Hardwares.FirstOrDefault(); _ = db.CloudMessages.FirstOrDefault(); _ = db.TelegramUsers.FirstOrDefault(); _ = db.Ports.FirstOrDefault(); _ = db.Scripts.FirstOrDefault(); _ = db.Commands.FirstOrDefault(); _ = db.Tasks.FirstOrDefault(); _ = db.Reports.FirstOrDefault(); } catch (Exception ex) { string err_message = ex.Message; if (ex.InnerException != null) { err_message += System.Environment.NewLine + ex.InnerException.Message + System.Environment.NewLine + System.Environment.NewLine + GetText(Resource.String.delete_the_context_database_file) + System.Environment.NewLine + gs.DatabasePathBase; } File.Delete(gs.DatabasePathBase); await db.Database.EnsureCreatedAsync(); RunOnUiThread(() => { Toast.MakeText(this, err_message, ToastLength.Long).Show(); }); } if (await db.Users.CountAsync() == 0) { log_msg = GetText(Resource.String.load_demo_users); logsDB.AddLogRow(LogStatusesEnum.Info, log_msg, TAG); AddSplashText(log_msg); await db.Users.AddAsync(new UserModel { Name = "Tom", Email = "*****@*****.**", Phone = "+79995554422", AlarmSubscriber = true, CommandsAllowed = true }); await db.Users.AddAsync(new UserModel { Name = "Alice", Email = "*****@*****.**", Phone = "+75556664411", AlarmSubscriber = false, CommandsAllowed = true }); await db.SaveChangesAsync(); } if (await db.Hardwares.CountAsync() == 0) { log_msg = GetText(Resource.String.load_demo_hardwares); logsDB.AddLogRow(LogStatusesEnum.Info, log_msg, TAG); AddSplashText(log_msg); await db.Hardwares.AddAsync(new HardwareModel { Name = "DEMO 2", Address = "192.168.2.114", Password = "******", AlarmSubscriber = true, CommandsAllowed = true }); await db.Hardwares.AddAsync(new HardwareModel { Name = "DEMO 1", Address = "192.168.0.14", Password = "******", AlarmSubscriber = false, CommandsAllowed = true }); await db.SaveChangesAsync(); for (int i = 0; i < 38; i++) { await db.Ports.AddRangeAsync(new PortModel() { HardwareId = 2, PortNumb = i }, new PortModel() { HardwareId = 1, PortNumb = i }); await db.SaveChangesAsync(); } } if (await db.Scripts.CountAsync() == 0) { await db.Scripts.AddAsync(new ScriptModel { Name = "Утро", TriggerPortState = true, TriggerPortId = 1 }); await db.Scripts.AddAsync(new ScriptModel { Name = "Ушёл из дома", TriggerPortState = null }); await db.SaveChangesAsync(); } if (await db.Commands.CountAsync() == 0) { int scriptHardwareId = (await db.Scripts.FirstAsync()).Id; await db.Commands.AddAsync(new CommandModel { Name = "Выключить уличный свет", Ordering = 1, TypeCommand = TypesCommands.Controller, ScriptId = scriptHardwareId, Execution = 2, ExecutionParametr = "15:0;10:0" }); await db.Commands.AddAsync(new CommandModel { Name = "Включить полив", Ordering = 2, TypeCommand = TypesCommands.Port, ScriptId = scriptHardwareId, Execution = 30, ExecutionParametr = "on" }); await db.SaveChangesAsync(); } #endif using (StreamReader sr = new StreamReader(Assets.Open("bootstrap.min.css"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.bootstrap_min_css, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("jquery.slim.min.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.jquery_slim_min_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("popper.min.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.popper_min_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("bootstrap.min.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.bootstrap_min_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("onload.cf1.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.onload_cf1_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("onload.cf2.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.onload_cf2_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("onload.cf3.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.onload_cf3_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("onload.cf4.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.onload_cf4_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("onload.cf7.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.onload_cf7_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("onload.cf9.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.onload_cf9_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("onload.cf10.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.onload_cf10_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("onload.pt.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.onload_pt_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } using (StreamReader sr = new StreamReader(Assets.Open("onload.root.js"))) { using (StreamWriter sw = new StreamWriter(MyWebViewClient.onload_root_js, false)) { await sw.WriteAsync(await sr.ReadToEndAsync()); } } log_msg = GetText(Resource.String.finish_initializing_application); logsDB.AddLogRow(LogStatusesEnum.Info, log_msg, TAG); AddSplashText(log_msg); isCompleted = true; StartActivity(new Intent(Application.Context, typeof(HardwaresListActivity))); await db.DisposeAsync(); await logsDB.DisposeAsync(); LoadingTracert = null; }
/// <summary> /// Sets up seed data in DBContext LogsContext. /// </summary> public static void Seed() { // Open database connection. using (var context = new LogsContext()) { // Start transaction. context.Database.BeginTransaction(); try { #region Add Locations var locations = new List <Location> { new Location() { Id = "UT" }, new Location() { Id = "SOPRUM" }, new Location() { Id = "TVÄTT" }, new Location() { Id = "VAKT" }, new Location() { Id = "0101" }, new Location() { Id = "0102" }, new Location() { Id = "0103" }, new Location() { Id = "0201" }, new Location() { Id = "0202" }, new Location() { Id = "0301" }, new Location() { Id = "0302" }, }; context.AddRange(locations); #endregion #region Add Doors // Add doors var doors = new List <Door> { new Door() { Id = "UT01", LocationId = "UT", Description = "Dörr ut mot gatan." }, new Door() { Id = "SOPRUM01", LocationId = "SOPRUM", Description = "Dörr mot soprummet." }, new Door() { Id = "TVÄTT01", LocationId = "TVÄTT", Description = "Dörr mot tvättstugan." }, new Door() { Id = "VAKT01", LocationId = "VAKT", Description = "Dörr mot vaktmästarens rum." }, // doors for apartments 0101, 0102, 0103 new Door() { Id = "LGH0101", LocationId = "0101", Description = "Dörr till lägenhet." }, new Door() { Id = "BLK0101", LocationId = "0101", Description = "Dörr till balkong/altan." }, new Door() { Id = "LGH0102", LocationId = "0102", Description = "Dörr till lägenhet." }, new Door() { Id = "BLK0102", LocationId = "0102", Description = "Dörr till balkong/altan." }, new Door() { Id = "LGH0103", LocationId = "0103", Description = "Dörr till lägenhet." }, new Door() { Id = "BLK0103", LocationId = "0103", Description = "Dörr till balkong/altan." }, // ... 0201, 0202 new Door() { Id = "LGH0201", LocationId = "0201", Description = "Dörr till lägenhet." }, new Door() { Id = "BLK0201", LocationId = "0201", Description = "Dörr till balkong/altan." }, new Door() { Id = "LGH0202", LocationId = "0202", Description = "Dörr till lägenhet." }, new Door() { Id = "BLK0202", LocationId = "0202", Description = "Dörr till balkong/altan." }, // ... 0301, 0302 new Door() { Id = "LGH0301", LocationId = "0301", Description = "Dörr till lägenhet." }, new Door() { Id = "BLK0301", LocationId = "0301", Description = "Dörr till balkong/altan." }, new Door() { Id = "LGH0302", LocationId = "0302", Description = "Dörr till lägenhet." }, new Door() { Id = "BLK0302", LocationId = "0302", Description = "Dörr till balkong/altan." }, }; context.AddRange(doors); #endregion #region Add Events var events = new List <Event> { new Event() { Id = "DÖUT", Description = "Dörr öppnad - utifrån." }, new Event() { Id = "DÖIN", Description = "Dörr öppnad - inifrån" }, new Event() { Id = "DS", Description = "Dörr stängd." }, new Event() { Id = "FDUT", Description = "Fel dörr - Otillåtet försök att öppna en dörr utifrån." }, new Event() { Id = "FDIN", Description = "Fel dörr - Otillåtet försök att öppna en dörr inifrån." } }; context.AddRange(events); #endregion #region Add Tenants var tenants = new List <Tenant> { new Tenant() { Id = "00010101-0001", Name = "Liam Jönsson", ApartmentId = "0101" }, new Tenant() { Id = "00010101-0002", Name = "Elias Petterson", ApartmentId = "0102" }, new Tenant() { Id = "00010101-0003", Name = "Wilma Johansson", ApartmentId = "0102" }, new Tenant() { Id = "00010101-0004", Name = "Alicia Sanchez", ApartmentId = "0103" }, new Tenant() { Id = "00010101-0005", Name = "Aaron Sanchez", ApartmentId = "0103" }, new Tenant() { Id = "00010101-0006", Name = "Olivia Erlander", ApartmentId = "0201" }, new Tenant() { Id = "00010101-0007", Name = "William Erlander", ApartmentId = "0201" }, new Tenant() { Id = "00010101-0008", Name = "Alexander Erlander", ApartmentId = "0201" }, new Tenant() { Id = "00010101-0009", Name = "Astrid Erlander", ApartmentId = "0201" }, new Tenant() { Id = "00010101-0010", Name = "Lucas Adolfsson", ApartmentId = "0202" }, new Tenant() { Id = "00010101-0011", Name = "Ebba Adolfsson", ApartmentId = "0202" }, new Tenant() { Id = "00010101-0012", Name = "Lilly Adolfsson", ApartmentId = "0202" }, new Tenant() { Id = "00010101-0013", Name = "Ella Ahlström", ApartmentId = "0301" }, new Tenant() { Id = "00010101-0014", Name = "Alma Alfredsson", ApartmentId = "0301" }, new Tenant() { Id = "00010101-0015", Name = "Elsa Ahlström", ApartmentId = "0301" }, new Tenant() { Id = "00010101-0016", Name = "Maja Ahlström", ApartmentId = "0301" }, new Tenant() { Id = "00010101-0017", Name = "Noah Almgren", ApartmentId = "0302" }, new Tenant() { Id = "00010101-0018", Name = "Adam Andersen", ApartmentId = "0302" }, new Tenant() { Id = "00010101-0019", Name = "Kattis Backman", ApartmentId = "0302" }, new Tenant() { Id = "00010101-0020", Name = "Oscar Chen", ApartmentId = "0302" }, new Tenant() { Id = "00010101-0021", Name = "Vaktmästare", ApartmentId = "VAKT" }, }; context.AddRange(tenants); #endregion #region Add Tags var tags = new List <Tag> { new Tag() { Id = "0101A", TenantId = "00010101-0001" }, new Tag() { Id = "0102A", TenantId = "00010101-0002" }, new Tag() { Id = "0102B", TenantId = "00010101-0003" }, new Tag() { Id = "0103A", TenantId = "00010101-0004" }, new Tag() { Id = "0103B", TenantId = "00010101-0005" }, new Tag() { Id = "0201A", TenantId = "00010101-0006" }, new Tag() { Id = "0201B", TenantId = "00010101-0007" }, new Tag() { Id = "0201C", TenantId = "00010101-0008" }, new Tag() { Id = "0201D", TenantId = "00010101-0009" }, new Tag() { Id = "0202A", TenantId = "00010101-0010" }, new Tag() { Id = "0202B", TenantId = "00010101-0011" }, new Tag() { Id = "0202C", TenantId = "00010101-0012" }, new Tag() { Id = "0301A", TenantId = "00010101-0013" }, new Tag() { Id = "0301B", TenantId = "00010101-0014" }, new Tag() { Id = "0301C", TenantId = "00010101-0015" }, new Tag() { Id = "0301D", TenantId = "00010101-0016" }, new Tag() { Id = "0302A", TenantId = "00010101-0017" }, new Tag() { Id = "0302B", TenantId = "00010101-0018" }, new Tag() { Id = "0302C", TenantId = "00010101-0019" }, new Tag() { Id = "0302D", TenantId = "00010101-0020" }, new Tag() { Id = "VAKT01", TenantId = "00010101-0021" }, }; context.AddRange(tags); #endregion #region Add Access var accesses = new List <Access> { new Access() { TagId = "VAKT01", DoorId = "VAKT01" }, // TODO add more... }; #endregion #region Add Logs var logs = new List <LogEntry> { new LogEntry() { When = DateTime.ParseExact("23-10-20 10:07:00", "dd-MM-yy HH:mm:ss", null), TagId = "0201C", DoorId = "LGH0201", EventId = "DÖIN" }, // william erlander tar in tidningen new LogEntry() { When = DateTime.ParseExact("23-10-20 10:08:00", "dd-MM-yy HH:mm:ss", null), TagId = "0201C", DoorId = "LGH0201", EventId = "DÖUT" }, new LogEntry() { When = DateTime.ParseExact("23-10-20 10:19:00", "dd-MM-yy HH:mm:ss", null), TagId = "0302A", DoorId = "LGH0302", EventId = "DÖIN" }, // noah almgren slänger soporna new LogEntry() { When = DateTime.ParseExact("23-10-20 10:19:00", "dd-MM-yy HH:mm:ss", null), TagId = "0201A", DoorId = "LGH0201", EventId = "DÖIN" }, // olivia erlander går till jobbet new LogEntry() { When = DateTime.ParseExact("23-10-20 10:20:00", "dd-MM-yy HH:mm:ss", null), TagId = "0302A", DoorId = "SOPRUM01", EventId = "DÖUT" }, new LogEntry() { When = DateTime.ParseExact("23-10-20 10:20:33", "dd-MM-yy HH:mm:ss", null), TagId = "0201A", DoorId = "UT01", EventId = "DÖIN" }, new LogEntry() { When = DateTime.ParseExact("23-10-20 10:21:00", "dd-MM-yy HH:mm:ss", null), TagId = "0302A", DoorId = "SOPRUM01", EventId = "DÖIN" }, new LogEntry() { When = DateTime.ParseExact("23-10-20 10:22:00", "dd-MM-yy HH:mm:ss", null), TagId = "0302A", DoorId = "LGH0302", EventId = "DÖUT" }, new LogEntry() { When = DateTime.ParseExact("23-10-20 10:55:00", "dd-MM-yy HH:mm:ss", null), TagId = "0202A", DoorId = "LGH0202", EventId = "DÖIN" }, // lucas adolfson hämtar posten new LogEntry() { When = DateTime.ParseExact("23-10-20 10:56:00", "dd-MM-yy HH:mm:ss", null), TagId = "0202A", DoorId = "LGH0202", EventId = "DÖUT" }, new LogEntry() { When = DateTime.ParseExact("23-10-20 11:03:00", "dd-MM-yy HH:mm:ss", null), TagId = "0301D", DoorId = "LGH0301", EventId = "DÖIN" }, // maja ahlström hämtar posten new LogEntry() { When = DateTime.ParseExact("23-10-20 11:04:00", "dd-MM-yy HH:mm:ss", null), TagId = "0301D", DoorId = "LGH0301", EventId = "DÖUT" }, new LogEntry() { When = DateTime.ParseExact("23-10-19 08:19:12", "dd-MM-yy HH:mm:ss", null), TagId = "0101A", DoorId = "BLK0101", EventId = "DÖIN" }, // liam går ut på altanen new LogEntry() { When = DateTime.ParseExact("23-10-19 08:22:45", "dd-MM-yy HH:mm:ss", null), TagId = "0201D", DoorId = "BLK0201", EventId = "DÖIN" }, // astrid går ut på balkongen new LogEntry() { When = DateTime.ParseExact("23-10-19 08:25:09", "dd-MM-yy HH:mm:ss", null), TagId = "0201D", DoorId = "BLK0201", EventId = "DÖUT" }, new LogEntry() { When = DateTime.ParseExact("23-10-19 08:27:10", "dd-MM-yy HH:mm:ss", null), TagId = "0101A", DoorId = "BLK0101", EventId = "DÖUT" }, }; context.AddRange(logs); #endregion context.SaveChanges(); context.Database.CommitTransaction(); } catch (Exception) { // Roll back transaction if there's any exception inserting data. context.Database.RollbackTransaction(); return; } } }