Пример #1
0
        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);
        }
Пример #2
0
        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);
                }
            }
        }