public static bool NHibernateStaleObjectStateExceptionHandler(Exception exception, IApplicationInfo application, UserBase user, IInteractiveMessage interactiveMessage) { var staleObjectStateException = ExceptionHelper.FindExceptionTypeInInner <NHibernate.StaleObjectStateException>(exception); if (staleObjectStateException != null) { var type = OrmConfig.FindMappingByFullClassName(staleObjectStateException.EntityName).MappedClass; var objectName = DomainHelper.GetSubjectNames(type); string message; switch (objectName?.Gender) { case GrammaticalGender.Feminine: message = "Сохраняемая <b>{0}</b> c номером <b>{1}</b> была кем то изменена."; break; case GrammaticalGender.Neuter: message = "Сохраняемое <b>{0}</b> c номером <b>{1}</b> было кем то изменено."; break; case GrammaticalGender.Masculine: default: message = "Сохраняемый <b>{0}</b> c номером <b>{1}</b> был кем то изменен."; break; } message = String.Format(message + "\nВаши изменения не будут записаны, чтобы не потерять чужие изменения. \nПереоткройте вкладку.", objectName?.Nominative ?? type.Name, staleObjectStateException.Identifier); interactiveMessage.ShowMessage(QS.Dialog.ImportanceLevel.Warning, message); return(true); } return(false); }
public static void ShowExceptionMessage(Exception ex) { if (ex is StaleObjectStateException staleObjectStateException) { var type = OrmConfig.FindMappingByFullClassName(staleObjectStateException.EntityName).MappedClass; var objectName = DomainHelper.GetSubjectNames(type); string message; switch (objectName.Gender) { case GrammaticalGender.Feminine: message = "Сохраняемая <b>{0}</b> c номером <b>{1}</b> была кем то изменена."; break; case GrammaticalGender.Neuter: message = "Сохраняемое <b>{0}</b> c номером <b>{1}</b> было кем то изменено."; break; case GrammaticalGender.Masculine: default: message = "Сохраняемый <b>{0}</b> c номером <b>{1}</b> был кем то изменен."; break; } message = String.Format(message + "\nВаши изменения не будут записаны, чтобы не потерять чужие изменения. \nПереоткройте вкладку.", objectName?.Nominative ?? type.Name, staleObjectStateException.Identifier); MessageDialogHelper.RunErrorDialog(message); } }