public bool CreateOrUpdateClassRoomTeacher(UpdateForeignKeyRequest request) { Logger.Debug($"Add teacher {request.ForeignKeyId} to class room {request.PrimaryKeyId}"); var result = this.UnitOfWork.ClassRoomRepository.UpdateHomeroomTeacher(request.PrimaryKeyId, request.ForeignKeyId); this.UnitOfWork.SaveChanges(); return(result); }
public UpdateForeignKeyResponse UpdateForeignKey(UpdateForeignKeyRequest request, bool singleUserMode) { try { var options = new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.Serializable, Timeout = new TimeSpan(0, TransactionTimeout, 0) }; using (var trScope = new TransactionScope(TransactionScopeOption.Required, options)) { if (singleUserMode) { SetSingleMode(DatabaseName); } ForeignKeyDbo dbo = null; string logMsg = null; switch (request.Operation) { case UpdateColumnOperation.Rename: dbo = RenameTheForeignKey(request.Table, request.OldForeignKeyName, request.ForeignKeyName); logMsg = String.Format("Table '{0}': foreign key '{1}' was renamed to '{2}'.", request.Table, request.OldForeignKeyName, request.ForeignKeyName); break; case UpdateColumnOperation.Insert: dbo = CreateForeignKey(request.Table, request.Dbo); logMsg = String.Format("Table '{0}': foreign key '{1}' was created.", request.Table, request.Dbo.Name); break; case UpdateColumnOperation.Delete: DeleteTheForeignKey(request.Table, request.OldForeignKeyName); dbo = new ForeignKeyDbo() { Name = request.OldForeignKeyName }; logMsg = String.Format("Table '{0}': foreign key '{1}' was deleted.", request.Table, request.OldForeignKeyName); break; case UpdateColumnOperation.Modify: DeleteTheForeignKey(request.Table, request.OldForeignKeyName); dbo = CreateForeignKey(request.Table, request.Dbo); logMsg = String.Format("Table '{0}': foreign key '{1}' was modified.", request.Table, request.Dbo.Name); break; } int recordCount = CountRecords(request.Table); Guid historyRecordId = LogTableOperation(request.Table, logMsg, request.CFC_DB_Major_Version, request.CFC_DB_Minor_Version); trScope.Complete(); return(new UpdateForeignKeyResponse() { IsSuccess = true, Dbo = dbo, RecordCount = recordCount }); } } catch (Exception ex) { return(new UpdateForeignKeyResponse() { IsSuccess = false, ErrorMessage = ParseErrorMessage(ex) }); } finally { if (singleUserMode) { SetMultiUserMode(DatabaseName); } } }