// Adds provided instance of the LiveSheet into the live range factory production index. internal void AddSpecificSheet(LiveSheet sheet) { // Add live sheet into the live range factory production index. this[sheet.SpreadsheetId][sheet.SheetTitleId].Item1 = sheet; // Add live range into the live range factory production index. this.AddSpecificRange(sheet); }
public void Dispose() { this._dashboardSpreadsheet?.Dispose(); this._dashboardSpreadsheet = null; this._movementSheet = null; this._dataRepository = null; }
public void Dispose() { if (!(this._dataRepository?.UsersDB is null)) { this._dataRepository.UsersDB.UserSpreadsheetLoaded -= OnUserSpreadsheetLoaded; this._dataRepository.UsersDB.UserSpreadsheetAdded -= OnUserSpreadsheetAdded; this._dataRepository.UsersDB.UserSpreadsheetReplaced -= OnUserSpreadsheetReplaced; //this._dataRepository.UsersDB.UserSpreadsheetArchived -= OnUserSpreadsheetArchived; //this._dataRepository.UsersDB.UserSpreadsheetUnarchived -= OnUserSpreadsheetUnarchived; this._dataRepository.UsersDB.UserSpreadsheetRemoved -= OnUserSpreadsheetRemoved; } this._dashboardSpreadsheet?.Dispose(); this._dashboardSpreadsheet = null; this._dashboardSheet = null; this._dataRepository = null; }
private void OnUserSpreadsheetReplaced(object sender, UserSpreadsheetReplacedEventArgs e) { LiveSpreadsheet userSpreadsheet = e.Spreadsheet; LiveSheet metadataSheet = userSpreadsheet[UserRepository.UserLog_Metadata_SheetTitle]; LiveCell usernameMetadataCell = metadataSheet[UserRepository.UserLog_Metadata_UsernameValue_RowIndex][UserRepository.UserLog_Metadata_UsernameValue_ColumnIndex]; LiveCell firstNameMetadataCell = metadataSheet[UserRepository.UserLog_Metadata_FirstNameValue_RowIndex][UserRepository.UserLog_Metadata_FirstNameValue_ColumnIndex]; LiveCell surnameMetadataCell = metadataSheet[UserRepository.UserLog_Metadata_SurnameValue_RowIndex][UserRepository.UserLog_Metadata_SurnameValue_ColumnIndex]; string username = usernameMetadataCell.GetDataAsString(); string firstName = firstNameMetadataCell.GetDataAsString(); string surname = firstNameMetadataCell.GetDataAsString(); string userSpreadsheetId = this._dataRepository.UserRepository.GetUserLogSpreadsheetId(username); string userSpreadsheetURL = this.GetUrlFromSpreadsheetId(userSpreadsheetId); // Get all the dashboard rows associated with currently looped through user IList <LiveRow> userAssociateRows = this._dashboardSheet.SheetRows.Where((row) => { LiveCell usernameCell = row[Saturns5DashboardRepository.Saturns5Dashboard_LastSeenUserUsername]; return(usernameCell.GetDataAsString() == username); }).ToList(); // Loop through each user associated rows, compare their user-related content, and update if changes are required. foreach (LiveRow userAssociatedRow in userAssociateRows) { if (userAssociatedRow[Saturns5DashboardRepository.Saturns5Dashboard_LastSeenUserFirstName].GetDataAsString() != firstName || userAssociatedRow[Saturns5DashboardRepository.Saturns5Dashboard_LastSeenUserSurname].GetDataAsString() != surname || userAssociatedRow[Saturns5DashboardRepository.Saturns5Dashboard_LastSeenUserSpreadsheetURL].GetDataAsString() != userSpreadsheetURL) { userAssociatedRow[Saturns5DashboardRepository.Saturns5Dashboard_LastSeenUserFirstName].SetData(firstName); userAssociatedRow[Saturns5DashboardRepository.Saturns5Dashboard_LastSeenUserSurname].SetData(surname); userAssociatedRow[Saturns5DashboardRepository.Saturns5Dashboard_LastSeenUserSpreadsheetURL].SetData(userSpreadsheetURL); userAssociatedRow.Upload(this._dataRepository.GoogleService.SpreadsheetsDb); } } }