public void SaveUserConfiguration(UserConfigurationEntity entity) { _dbContext.Set <UserConfigurationEntity>().Update(entity); _dbContext.SaveChanges(); DetachedEntityOrNull(entity); }
public async Task <IActionResult> SaveTimeZoneAsync([FromBody] UserConfigurationEntity configuration) { if (configuration == null) { return(this.BadRequest(new { message = "Configuration details parameter is null." })); } try { var claims = this.GetUserClaims(); this.telemetryClient.TrackTrace($"User {claims.UserObjectIdentifer} submitted settings. Time zone- {configuration.IanaTimezone}"); configuration.UserAdObjectId = claims.UserObjectIdentifer; configuration.WindowsTimezone = TZConvert.IanaToWindows(configuration.IanaTimezone); var isAddOperationSuccess = await this.userConfigurationStorageProvider.AddAsync(configuration).ConfigureAwait(false); if (isAddOperationSuccess) { return(this.Ok("Configuration saved")); } return(this.StatusCode(StatusCodes.Status500InternalServerError, "Unable to save user configuration/time zone")); } catch (Exception ex) { this.telemetryClient.TrackException(ex); return(this.StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
// TODO: This probably won't be necessary public UserConfiguration GetUserConfiguration(long id) { // TODO: Implement a UserController (REST endpoint), user creation, and a proper user system. //UserConfigurationEntity entity = _lifeManagerRepository.LoadUserConfiguration(id); UserConfigurationEntity entity = _lifeManagerRepository.LoadUserConfiguration(1); return(new UserConfigurationMapper().ToDomain(entity)); }
public UserConfigurationEntity LoadUserConfiguration(long userConfigurationId) { UserConfigurationEntity userConfigurationEntity = _dbContext.UserConfiguration .Include(userConfiguration => userConfiguration.SortedColumns) .FirstOrDefault(userConfiguration => userConfiguration.Id == userConfigurationId); return(DetachedEntityOrNull(userConfigurationEntity)); }
public User ToDomain(UserEntity entity) { // TODO: OneToMany User -> Configuration UserConfigurationEntity configEntity = entity.UserConfigurationEntity.IsNullOrEmpty() ? null : entity.UserConfigurationEntity[0]; return(new User { Id = entity.Id, DisplayName = entity.DisplayName, DateTimeCreated = entity.DateTimeCreated, DateTimeLastModified = entity.DateTimeLastModified, Configuration = configEntity == null ? null : new UserConfigurationMapper().ToDomain(configEntity) }); }
/// <summary> /// Add or update user configuration. /// </summary> /// <param name="userConfiguration">User configuration entity.</param> /// <returns>A task that represents the work queued to execute.</returns> public async Task <bool> AddAsync(UserConfigurationEntity userConfiguration) { try { await this.EnsureInitializedAsync().ConfigureAwait(false); TableOperation insertOrMergeOperation = TableOperation.InsertOrReplace(userConfiguration); TableResult result = await this.cloudTable.ExecuteAsync(insertOrMergeOperation).ConfigureAwait(false); return(result.Result != null); } catch (Exception ex) { this.telemetryClient.TrackException(ex); throw; } }
public void SaveTableViewConfiguration(UserConfiguration.ITableViewConfiguration tableViewConfiguration) { UserConfigurationEntity userConfigurationEntity = _lifeManagerRepository.LoadUserConfigurationAttached(tableViewConfiguration.UserConfigurationId); // Remove existing column configuration for this table. List <ColumnSortOrderEntity> otherTableColumns = userConfigurationEntity.SortedColumns .Where(sortedColumn => !tableViewConfiguration.GetTableName().Equals(sortedColumn.TableName)) .ToList(); userConfigurationEntity.SortedColumns.Clear(); foreach (var columnSortOrderEntity in otherTableColumns) { userConfigurationEntity.SortedColumns.Add(columnSortOrderEntity); } // TODO: SortedColumns should be a List, so AddRange should be used. // Add the new/updated column configuration for this table. tableViewConfiguration.ColumnSortOrderConfig .Select(columnSortOrderConfig => new ColumnSortOrderEntity { UserConfigurationId = columnSortOrderConfig.UserConfigurationId, TableName = tableViewConfiguration.GetTableName(), ColumnName = columnSortOrderConfig.ColumnName, IsSortedAscending = columnSortOrderConfig.IsSortedAscending, Precedence = columnSortOrderConfig.Precedence }) .ToList().ForEach(entity => userConfigurationEntity.SortedColumns.Add(entity)); switch (tableViewConfiguration) { case UserConfiguration.ToDoTaskTableViewConfiguration config: userConfigurationEntity.ToDoTaskHideCompletedAndCancelled = config.HideCompletedAndCancelled; break; default: throw new InvalidOperationException($"Can't save table configuration for type {tableViewConfiguration.GetType()}"); } _lifeManagerRepository.SaveUserConfiguration(userConfigurationEntity); }