예제 #1
0
            // 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;
        }
예제 #3
0
        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;
        }
예제 #4
0
        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);
                }
            }
        }