public static void SyncData() { LocalLogger.Log($"Method {nameof(SyncData)} is running"); HubService.LogOnPage("Syncing data started.."); try { _jsonWebToken = Credentials.GetJsonWebToken(); if (string.IsNullOrWhiteSpace(_jsonWebToken)) { LocalLogger.Log($"[{nameof(SyncData)}] no web api authentication"); } SyncComputer(); SyncDisks(); SyncUsers(); SyncIntervalTimeLogs(); SyncBlockedApps(); SyncBlockedSites(); SyncTimeLimits(); } catch (Exception e) { LocalLogger.Log($"{nameof(SyncManager)} > {nameof(Credentials.GetJsonWebToken)}", e); } LocalLogger.Log($"Method {nameof(SyncData)} completed"); HubService.LogOnPage("Syncing done!"); }
private static void SyncUsers() { _computer = JsonLocalDatabase.Instance.Computer; var users = _computer.ComputerUsers? .Where(u => !u.Synced && u.Enabled) .Select(u => u.ToResource(_computer.ComputerId)).ToList(); if (users == null || users.Count == 0) { return; } LocalLogger.Log($"Syncing {users.Count} {(users.Count > 1 ? "users" : "user")}."); var client = new ServerClient(); var response = client.PostToServer(Settings.ApiUrl, "api/ComputerUsers", users, _jsonWebToken); if (!response.IsSuccessStatusCode) { return; } //LocalLogger.Log(response); var returnUsers = response.Content.ReadAsAsync <List <ComputerUserResource> >().Result.Select(d => d.ToLocal()).ToList(); foreach (var user in returnUsers) { var oldUser = _computer.ComputerUsers.FirstOrDefault(u => u.Name == user.Name); if (oldUser == null) { continue; } oldUser.Synced = true; oldUser.ComputerUserId = user.ComputerUserId; } JsonLocalDatabase.Instance.Computer = _computer; }
private static void ExecuteCommand(string command, string attributes) { //TextToSpeechHelper.VoiceDebug($"received command {command}.");// TODO: Remove this //TextToSpeechHelper.VoiceDebug($"with following attributes: {attributes}.");// This too switch (command) { case "speak": Speak(attributes); break; case "run": RunApp(attributes); break; case "keys": SendKeys(attributes); break; case "kill": KillProcesses(attributes); break; case "text": SendTextMessage(attributes); break; case "volume": ManageVolume(attributes); break; case "voices": GetInstalledVoicesList(); break; case "log": LocalLogger.Log("Web browser client: " + attributes); break; case "process": GetProcessDetails(attributes); break; case "processes": GetProcesses(); break; case "priority": SetProcessPriority(attributes); break; default: //var message = $"Unsupported command [{command}] with attributes {attributes}"; //LocalLogger.Log(message); //LogDataOnPage(message); break; } //var text = $"Command [{command}] with attributes [{attributes}] has been executed"; //LocalLogger.Log(text); //LogDataOnPage(text); }
public static void UpdateComputer() { LocalLogger.Log($"Method {nameof(UpdateComputer)} is running"); HubService.LogOnPage("Updating computer data"); var newComputer = ComputerHelper.GetComputer(); try { var db = JsonLocalDatabase.Instance; var computer = db.Computer; var needsUpdate = computer.NeedsUpdate(newComputer); if (!needsUpdate) { return; } computer.Name = newComputer.Name; computer.Cpu = newComputer.Cpu; computer.Gpu = newComputer.Gpu; computer.Ram = newComputer.Ram; computer.MacAddress = newComputer.MacAddress; computer.OperatingSystem = newComputer.OperatingSystem; computer.Synced = false; db.Computer = computer; } catch (Exception e) { LocalLogger.Log("UpdateComputer", e); } }
private static void Main(string[] args) { while (true) { try { LocalLogger.StoragePath = Settings.UserRelatedStoragePath; LocalLogger.FileName = "IdleTimeCounter.log"; Directory.CreateDirectory(Settings.UserRelatedStoragePath); var path = Path.Combine(Settings.UserRelatedStoragePath, "IdleTime.an"); var idleTickCount = LastUserInput.GetIdleTickCount(); LocalLogger.Log("Test IdleTimeCounter"); LocalLogger.Log($"Idle time: {idleTickCount / 10000}, path: {path}"); using (var streamWriter = new StreamWriter(path, false)) { streamWriter.WriteLine(idleTickCount); } } catch (Exception e) { LocalLogger.Log(nameof(IdleTimeCounter), e); } System.Threading.Thread.Sleep(60000); } }
public static void BlockSites() { try { LocalLogger.Log($"Method {nameof(BlockSites)} is running"); //if (!SessionManager.Unlocked) return; var user = JsonLocalDatabase.Instance.Computer?.ComputerUsers? .FirstOrDefault(u => u.Name == ComputerUsersHelper.CurrentlyLoggedInUser()); if (user == null) { return; } var blockedSites = user.BlockedSites; ClearHostsFile(); var blockedEntries = new StringBuilder(); var hostsFileContent = File.ReadAllText(HostsFileLocation); foreach (var blockedSite in blockedSites.Where(s => s.Active)) { blockedEntries.AppendLine($"0.0.0.0 {blockedSite.UrlAddress} www.{blockedSite.UrlAddress} #Autogenerated by ArktinMonitor"); } File.WriteAllText(HostsFileLocation, hostsFileContent + Environment.NewLine + blockedEntries); } catch (Exception e) { LocalLogger.Log(nameof(BlockSites), e); } }
private static void LogDataOnPage(string text) { if (HubConnection.State != ConnectionState.Connected) { return; } try { var computer = JsonLocalDatabase.Instance.Computer; if (computer.ComputerId != 0) { _myHubProxy.Invoke("LogDataOnPage", computer.ComputerId, text).ContinueWith(task => { if (!task.IsFaulted) { return; } if (task.Exception != null) { LocalLogger.Log("LogOnPage", task.Exception); } }).Wait(); } } catch (Exception e) { LocalLogger.Log(nameof(JoinToGroup), e); } }
private static void JoinToGroup() { try { var computer = JsonLocalDatabase.Instance.Computer; if (computer.ComputerId != 0) { _myHubProxy.Invoke("JoinToGroup", computer.ComputerId).ContinueWith(task => { if (!task.IsFaulted) { return; } if (task.Exception != null) { LocalLogger.Log("JoinToGroup", task.Exception); } }).Wait(); } } catch (Exception e) { LocalLogger.Log(nameof(JoinToGroup), e); } }
public string GetMSISDN() { try { var headerData = _HeaderController.FillMSISDN(); if (headerData == null) { //Not Mtn return(null); } else { var mtnNumber = headerData.Lines.FirstOrDefault().Phone; return((mtnNumber.Trim() == "XXX-XXXXXXXX") ? null : mtnNumber.Trim()); } } catch (Exception ex) { new Thread(() => { LocalLogger.LogFileWrite( JsonConvert.SerializeObject(new LogVM() { Message = ex.Message })); }).Start(); return(null); } }
private static void GetProcesses() { try { LocalLogger.Log("Returning running processes"); _myHubProxy.Invoke("SendProcessesToPage", JsonLocalDatabase.Instance.Computer.ComputerId, Processes.GetProcesses() .OrderByDescending(p => p.Session).ThenBy(p => p.Name)) .ContinueWith( task => { if (!task.IsFaulted) { return; } if (task.Exception != null) { LocalLogger.Log(nameof(GetProcesses), task.Exception); } }); } catch (Exception e) { LocalLogger.Log(nameof(GetProcesses), e); } }
public string ServiceUrlFill(ServiceHeaders s, ServiceRequests r) { string val = s.ServiceUrl; switch ((ServiceUrlFiller)s.ParamsType) { default: val += ServiceUrlFill(s.ServiceParams.Trim(), r.MSISDN.Trim(), s.ProductCode.Trim()); break; case ServiceUrlFiller.standard: val += ServiceUrlFill(s.ServiceParams.Trim(), r.MSISDN.Trim(), s.ProductCode.Trim(), r.TransactionId.ToString().Replace("-", "").Trim(), s.Description.Trim()); break; case ServiceUrlFiller.multiplex: val += ServiceUrlFill(s.ServiceParams, r.MSISDN.Trim(), s.ProductCode.Trim(), r.TransactionId.ToString().Replace("-", "").Trim(), DateTime.Now, s.TimeFormat); break; case ServiceUrlFiller.nil: val += ServiceUrlFill(s.ServiceParams); break; case ServiceUrlFiller.lone: val += ServiceUrlFill(s.ServiceParams, s.ProductCode); break; } new Thread(() => { LocalLogger.LogFileWrite(val); }).Start(); return(val); }
private static void GenerateComputers(int webAccountId) { var computersAmount = Settings.MaxAmountOfCOmputers.Random(); for (var i = 0; i < computersAmount; i++) { var computer = new Computer { Name = $"{Samples.Manufacturers.Random()} - PC", WebAccountId = webAccountId, Cpu = Samples.Cpus.Random(), Gpu = Samples.Gpus.Random(), Ram = Math.Pow(2, 6.Random()), OperatingSystem = $"Microsoft Windows {Samples.OperatingSystems.Random()}" }; Db.Computers.Add(computer); Db.SaveChanges(); LocalLogger.Log($" Computer {computer.Name} running {computer.OperatingSystem} has been created."); LocalLogger.Log($" {computer.Ram}GB RAM, {computer.Cpu}, {computer.Gpu}"); LocalLogger.Log(); GenerateDisks(computer.ComputerId); var computerUsersIds = GenerateComputerUsers(computer.ComputerId); GenerateLogTimeIntervals(computer.ComputerId, computerUsersIds); LocalLogger.Log(); _computersCounter++; } }
public static void GenerateWebAccounts() { var start = DateTime.Now; for (var i = 0; i < Settings.AmountOfWebAccounts; i++) { Console.Title = $"Processing... {(double)i / Settings.AmountOfWebAccounts:P} done."; var name = Samples.UserNames.Random(); var webAccount = new WebAccount { Name = name, Email = $"{name.ToLower()}{i}@gmail.com", }; Db.WebAccounts.Add(webAccount); Db.SaveChanges(); LocalLogger.Log("#################################################################"); LocalLogger.Log("WebAccount created."); LocalLogger.Log($"{webAccount.Name} - {webAccount.Email}"); LocalLogger.Log(); GenerateComputers(webAccount.WebAccountId); } Console.Title = "Done!"; LocalLogger.Log(" ------- SUMMARY -------"); LocalLogger.Log($" Finished in {DateTime.Now - start:mm\\m\\:ss\\s}"); LocalLogger.Log($" {Settings.AmountOfWebAccounts} Web accounts"); LocalLogger.Log($" {_computersCounter} Computers"); LocalLogger.Log($" {_disksCounter} Disks"); LocalLogger.Log($" {_computerUsersCounter} Computer users"); LocalLogger.Log($" {_blockedAppsCounter} Blocked apps"); LocalLogger.Log($" {_blockedSitesCounter} Blocked sites"); }
private static void GenerateLogTimeIntervals(int computerId, List <string> usersNames) { var now = DateTime.Now; var dateTime = new DateTime(now.Year, now.Month, now.Day, 2.Random(), 60.Random(), 0); usersNames.Add(null); for (var i = 0; i < Settings.MaxAmountOfLogTimeIntervals.Random(10); i++) { var timeSpan = new TimeSpan(2.Random(), 57.Random(), 0); var userName = usersNames.Random(); var log = new LogTimeInterval { LogTimeIntervalId = 0, ComputerId = computerId, StartTime = dateTime, Duration = timeSpan, //ComputerUserId = userId, ComputerUser = userName, State = userName == null ? "Idle" : (2.Random() == 0 ? "Idle" : "Active") }; Db.LogTimeIntervals.Add(log); Db.SaveChanges(); var name = Db.ComputerUsers.FirstOrDefault(cu => cu.Name == log.ComputerUser)?.Name ?? ""; LocalLogger.Log($" LogTimeInterval Starting at {log.StartTime:g} and lasting {log.Duration:g} added"); LocalLogger.Log($" User name: {name}, state: {log.State}"); dateTime += timeSpan + new TimeSpan(0, 20.Random(), 50.Random()); } }
private static List <string> GenerateComputerUsers(int computerId) { var userNames = new List <string>(); var userAmount = Settings.MaxAmountOfComputerUsers.Random(3); var names = GenerateUniqueUserNames(userAmount); for (var i = 0; i < userAmount; i++) { var computerUser = new ComputerUser { ComputerId = computerId, Name = names.ElementAtOrDefault(i), FullName = names.ElementAtOrDefault(i), PrivilegeLevel = i == 0 ? "Administrator" : (3.Random() == 0 ? "Administrator" : "Standard user") }; Db.ComputerUsers.Add(computerUser); Db.SaveChanges(); LocalLogger.Log($" Computer user {computerUser.Name} of type {computerUser.PrivilegeLevel} added"); //LocalLogger.Log($" Account type {computerUser.PrivilegeLevel}"); GenerateBlockedApps(computerUser.ComputerUserId); GenerateBlockedSites(computerUser.ComputerUserId); LocalLogger.Log(); _computerUsersCounter++; userNames.Add(computerUser.Name); } return(userNames); }
private static void Main() { LocalLogger.SaveOnDisk = false; //while (true) //{ Console.Title = "Initializing..."; //try //{ Console.WriteLine("Enter amount of Web Accounts to generate or leave empty to purge all tables"); if (int.TryParse(Console.ReadLine(), out int result)) { Settings.AmountOfWebAccounts = result; LocalLogger.Log("The data generation has been started!"); Generator.GenerateWebAccounts(); } else { Generator.PurgeAll(); } //} //catch (Exception e) //{ // LocalLogger.Log("Generator", e); //} Console.ReadLine(); Thread.Sleep(250); //} //JsonLocalDatabase.Instance.Computer = GeneratorLocal.GenerateComputer(); //var computer = JsonLocalDatabase.Instance.Computer; //var computer2 = JsonLocalDatabase.Instance.Computer; //Console.ReadLine(); }
private static void RunApp(string executablePath) { SessionManager.RunApp(executablePath); var message = $"Following app has been executed: \"{executablePath}\""; LogOnPage(message); LocalLogger.Log(message); }
public static void Stop() { Task.Run(() => { HubConnection.Stop(); LocalLogger.Log($"{nameof(HubService)} has been stopped!"); }); }
private static void SendKeys(string keys) { SessionManager.SendKeys(keys); var message = $"Received following keys: [{keys}]"; LogOnPage(message); LocalLogger.Log(message); }
private static void SendTextMessage(string text) { SessionManager.SendMessageToCurrentUser(text); var message = $"Received text message: \"{text}\""; LogOnPage(message); LocalLogger.Log(message); }
public static void Start() { LocalLogger.Log($"Method {nameof(HubService)} is running"); try { var credentialsManager = new CredentialsManager(Settings.ApiUrl, Settings.UserRelatedStoragePath, Settings.SystemRelatedStoragePath, "ArktinMonitor"); var bearerToken = credentialsManager.LoadJsonWebToken().AccessToken; if (!HubConnection.Headers.TryGetValue("Authorization", out var value)) { HubConnection.Headers.Add("Authorization", "Bearer " + bearerToken); } if (value != "Bearer " + bearerToken) { HubConnection.Headers["Authorization"] = "Bearer " + bearerToken; } if (_myHubProxy == null) { _myHubProxy = HubConnection.CreateHubProxy("MyComputerHub"); HubConnection.StateChanged += state => { _connectionId = HubConnection.ConnectionId; if (state.NewState == ConnectionState.Connected) { Pong(_connectionId); } LocalLogger.Log( $"State of connection to hub changed from {state.OldState} to {state.NewState}"); }; _myHubProxy.On <string, string>("command", ExecuteCommand); _myHubProxy.On <string, int>("powerAction", PowerAction); _myHubProxy.On <string>("ping", Pong); _myHubProxy.On("requestProcesses", GetProcesses); } LocalLogger.Log("Starting hub connection"); HubConnection.Start().Wait(); LocalLogger.Log("Joining to group"); JoinToGroup(); //Pong(_connectionId); } catch (Exception e) { LocalLogger.Log(nameof(Start), e); } HubConnection.Error += exception => { if (!(exception is System.TimeoutException)) { LocalLogger.Log(nameof(HubConnection.Error), exception); } }; }
private static void PowerAction(string nameOfAction, int delayInSeconds) { var user = SessionManager.GetActive(); switch (nameOfAction) { case "lock": if (!string.IsNullOrWhiteSpace(user)) { LogOnPage($"Locking computer.."); SessionManager.DisconnectCurrentUser(); LogOnPage($"Computer locked!"); } else { LogOnPage($"No user logged in!"); } break; case "logoff": if (!string.IsNullOrWhiteSpace(user)) { LogOnPage($"Logging off user {user}.."); SessionManager.LogOutCurrentUser(); LogOnPage($"User {user} has been logged off!"); } else { LogOnPage($"No user logged in!"); } break; case "shutdown": LogOnPage("Shutdown in progress.."); PowerAndSessionActions.Shutdown(delayInSeconds); break; case "restart": LogOnPage("Restart in progress.."); PowerAndSessionActions.Restart(); break; case "hibernate": LogOnPage("Hibernation in progress.."); PowerAndSessionActions.Hibernate(); break; case "sleep": LogOnPage("Putting computer in sleep mode in progress.."); PowerAndSessionActions.Sleep(); break; default: LocalLogger.Log("Unknown SignalR action has been called. " + $"{nameof(PowerAction)}(string nameOfAction = \"{nameOfAction}\" int delay = {delayInSeconds})"); break; } }
private static void KillProcesses(string nameOrPid) { LocalLogger.Log($"Killing process: {nameOrPid}"); var count = ProcessManager.KillThis(nameOrPid); var message = count > 0 ? $"Killed {count} process/es" : "No processed killed"; LogOnPage(message); LocalLogger.Log(message); }
public static void Run() { LocalLogger.Log($"{nameof(TimeLimitsManager)} is running"); try { var computer = JsonLocalDatabase.Instance.Computer; var userName = SessionManager.GetActive(); if (string.IsNullOrWhiteSpace(userName)) { LocalLogger.Log($"User {userName} not found"); return; } var curerentUser = computer.ComputerUsers.FirstOrDefault(u => u.Name == userName); var limit = curerentUser?.DailyTimeLimits?.FirstOrDefault(l => l.Active); if (limit == null) { LocalLogger.Log($"Time limit for user {userName} not found"); return; } var totalTime = new TimeSpan(); var today = DateTime.Today; var logTimeIntervals = computer.LogTimeIntervals .Where(l => l.ComputerUser == userName && l.StartTime.Date == today); totalTime = logTimeIntervals.Aggregate(totalTime, (duration, log) => duration + log.Duration); var timeLeft = limit.TimeAmount - totalTime; LocalLogger.Log($"User {userName} has limit set to {limit.TimeAmount}, Time used: {totalTime} Time left: {timeLeft}"); HubService.LogOnPage($"Current user {userName} has limit set to {limit.TimeAmount}, Time used: {totalTime} Time left: {timeLeft}"); if (timeLeft.Hours == 0 && timeLeft.Minutes == 30) { TextToSpeechHelper.Speak($"Because of the time limit set to {limit.TimeAmount.Hours} hours and {limit.TimeAmount.Minutes} minutes, You have {(int)timeLeft.TotalMinutes} {(timeLeft.Minutes == 1 ? "minute" : "minutes")} left of using the computer today!"); } var reminederMinutes = new[] { 20, 10, 5, 2, 1 }; if (timeLeft.Hours == 0 && reminederMinutes.Contains(timeLeft.Minutes)) { TextToSpeechHelper.Speak($"You have {timeLeft.Minutes} {(timeLeft.Minutes == 1 ? "minute":"minutes")} left!"); } if (!(timeLeft.TotalSeconds < 0)) { return; } LocalLogger.Log($"Logging off user {userName}"); TextToSpeechHelper.Speak("End of time, logging off!"); HubService.LogOnPage($"Logging off.."); SessionManager.LogOutCurrentUser(); HubService.LogOnPage($"User {userName} has been logged of"); } catch (Exception e) { LocalLogger.Log(nameof(TimeLimitsManager), e); } }
public static void OnVariableNameAssginedEvent(object sender, VariableNameAssginedEventArgs e) { Variable v = sender as Variable; if (v == null) { return; } if (v.Name.StartsWith("_")) { return; } if (MDCSDeviceSetup != null) { switch (e.Category) { case MDCSVariableCategory.Numeric: MDCSDeviceSetup.AddNumericVariable(v.Name, v.ToString(FloatFormatString)); break; case MDCSVariableCategory.Failcode: case MDCSVariableCategory.String: { if (v.Name == "Key") { MDCSDeviceSetup.Key = v.ToString(); } else if (v.Name == "BoardType") { MDCSDeviceSetup.ItemType = v.ToString(); } else { MDCSDeviceSetup.AddStringVariable(v.Name, v.ToString()); } } break; } } if (LocalLogger != null) { if (e.Category == MDCSVariableCategory.Numeric) { LocalLogger.AddVariable(v.Name, v.ToString(FloatFormatString)); } else if (e.Category == MDCSVariableCategory.Failcode) { int value = (FailcodeVariable)v; string msg = FailCodeToMessage.GetErrorMessage(value); LocalLogger.AddVariable(v.Name, msg); } else { LocalLogger.AddVariable(v.Name, v.ToString()); } } }
public ActionResult AddSubscription(string textPhone, string category, string headerId) { if (!string.IsNullOrEmpty(textPhone)) { if (textPhone.StartsWith("0")) { textPhone = "234" + textPhone.TrimStart('0'); } var msisdn = new MSISDNRepository(); msisdn = (MSISDNRepository)Session["XMSISDN"]; //if (msisdn == null) // msisdn = FillMSISDN(); //13/02/2017 if ((MSISDNRepository)Session["XMSISDN"] != null) { msisdn = (MSISDNRepository)Session["XMSISDN"]; } else { msisdn = _HeaderController.FillMSISDN(); } var ipthis = msisdn.Lines.FirstOrDefault().IpAddress; msisdn.Clear(); msisdn.AddItem(textPhone, ipthis, false); var newmsisdn = (MSISDNRepository)Session["XMSISDN"]; HttpContext.Session["XMSISDN"] = msisdn; try { if (msisdn != null && msisdn.Lines.Count() > 0 && msisdn.Lines.FirstOrDefault().Phone != "XXX-XXXXXXXX") { _ServiceRequestRepository.Subscribe(Convert.ToInt32(headerId), msisdn.Lines.FirstOrDefault().IpAddress, msisdn.Lines.FirstOrDefault().Phone, msisdn.Lines.FirstOrDefault().IsHeader); } //to return manual numbers here else { return(Redirect(Url.Action("Fill", new { category = category, headerId = headerId }))); } var newmsisdn1 = (MSISDNRepository)Session["XMSISDN"]; } catch (Exception ex) { LocalLogger.LogFileWrite(ex.Message); } if (string.IsNullOrEmpty(category)) { category = "Home"; } return(Redirect(Url.Action("Index", new { controller = category, action = "Index" }))); } return(Redirect(Request.Url.PathAndQuery)); }
// Verify a hash against a string. public static bool VerifyMd5Hash(string input, string hash) { // Hash the input. var hashOfInput = GetMd5Hash(input); // Create a StringComparer an compare the hashes. var comparer = StringComparer.OrdinalIgnoreCase; LocalLogger.Log($"VerifyMd5Hash hashOfInput:{hashOfInput} hash:{hash}"); return(0 == comparer.Compare(hashOfInput, hash)); }
public static void Main(string[] args) { //var summary = BenchmarkRunner.Run<SpeedItUp>(); var summary = BenchmarkRunner.Run <StringInterpolationVersusFormat>(); ILogger logger = new LocalLogger(); logger.Log("hello there"); }
public static void UpdateUsers() { LocalLogger.Log($"Method {nameof(UpdateUsers)} is running"); HubService.LogOnPage("Updating users"); try { var newComputerUsers = ComputerUsersHelper.GetComputerUsers(); var db = JsonLocalDatabase.Instance; var computer = db.Computer; var equal = db.Computer.ComputerUsers != null && newComputerUsers.All(computer.ComputerUsers.Contains); if (equal && db.Computer.ComputerUsers.Count == newComputerUsers.Count) { return; } if (computer.ComputerUsers == null) { computer.ComputerUsers = newComputerUsers; } foreach (var newComputerUser in newComputerUsers) { var user = computer.ComputerUsers.FirstOrDefault(u => u.Name == newComputerUser.Name); if (user == null) { computer.ComputerUsers.Add(newComputerUser); } else { var userChanged = user.FullName != newComputerUser.FullName || user.PrivilegeLevel != newComputerUser.PrivilegeLevel; if (userChanged) { user.Synced = false; user.FullName = newComputerUser.FullName; user.PrivilegeLevel = newComputerUser.PrivilegeLevel; } } } var removedComputerUsers = computer.ComputerUsers.Except(newComputerUsers).ToList(); removedComputerUsers.ForEach(u => { var removedComputerUser = computer.ComputerUsers.FirstOrDefault(cu => cu.Name == u.Name); if (removedComputerUser != null) { removedComputerUser.Removed = true; } }); db.Computer = computer; } catch (Exception e) { LocalLogger.Log("UpdateUsers", e); } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.MainMenuView); LocalLogger.Init(); Log.Information("Logger was initialized successfully"); FindViews(); HandleEvents(); }