private BusyMessage <Style> MapperOnMessage(object o, MapperEventArgs args) { try { var isOnBusy = args.MessageTarget.HasFlag(StatusMessageTarget.BusyIndicator); var isOnPane = args.Status == MapperStatus.Started && args.MessageTarget.HasFlag(StatusMessageTarget.LogPane); if (args.Status != MapperStatus.Started) { Status.HideBusy(Dispatcher, BusyIndicator); } else { if (isOnPane) { if (args.Exception == null) { Status.Update($"[Generator] " + $"{Regex.Replace(args.Message, "^>> ", "[DONE] ")}"); } else { Status.Update($"!! [Generator] ![ERROR]!\r\n{args.Exception.BuildExceptionMessage()}"); return(null); } } if (isOnBusy) { return(Status.ShowBusy(Dispatcher, BusyIndicator, args.Message, args.Progress)); } } } catch { // ignored } return(null); }
private void MapperOnStatusUpdate(object o, MapperEventArgs args) { try { switch (args.Status) { case MapperStatus.Cancelled: UnregisterMapperEvents(); Status.Update("[Generator] [DONE] Cancelled generator!"); Status.HideBusy(Dispatcher, BusyIndicator); StillOpen = false; Dispatcher.Invoke(Close, DispatcherPriority.Send); break; case MapperStatus.Error: UnregisterMapperEvents(); Status.Update("[Generator] [ERROR] Generator failed!"); var message = args.Exception.Message; var inner = args.Exception?.InnerException; if (inner?.Message.IsFilled() == true) { message += $" | {inner.Message}"; } if (args.Exception is NullReferenceException) { message = $"Generator failed. Clear the cache and try again."; } Status.PopException(Dispatcher, message); Status.HideBusy(Dispatcher, BusyIndicator); break; case MapperStatus.Finished: UnregisterMapperEvents(); Context = Mapper.Context; Context.SplitFiles = settings.SplitFiles; Context.SplitContractFiles = settings.SplitContractFiles; Context.UseDisplayNames = settings.UseDisplayNames == true; Context.IsUseCustomDictionary = settings.IsUseCustomDictionary; Context.IsUseCustomEntityReference = settings.IsUseCustomEntityReference; Context.IsAddEntityAnnotations = settings.IsAddEntityAnnotations; Context.IsAddContractAnnotations = settings.IsAddContractAnnotations; Context.IsGenerateLoadPerRelation = settings.IsGenerateLoadPerRelation; Context.IsGenerateEnumNames = settings.IsGenerateEnumNames; Context.IsGenerateEnumLabels = settings.IsGenerateEnumLabels; Context.IsGenerateFieldSchemaNames = settings.IsGenerateFieldSchemaNames; Context.IsGenerateFieldLabels = settings.IsGenerateFieldLabels; Context.IsGenerateRelationNames = settings.IsGenerateRelationNames; Context.IsImplementINotifyProperty = settings.IsImplementINotifyProperty; Context.GenerateGlobalActions = settings.GenerateGlobalActions; Context.PluginMetadataEntities = settings.PluginMetadataEntitiesSelected.ToList(); Context.OptionsetLabelsEntities = settings.OptionsetLabelsEntitiesSelected.ToList(); Context.LookupLabelsEntities = settings.LookupLabelsEntitiesSelected.ToList(); Context.JsEarlyBoundEntities = settings.JsEarlyBoundEntitiesSelected.ToList(); Context.EarlyBoundFilteredSelected = settings.EarlyBoundFilteredSelected.ToList(); Context.SelectedActions = settings.SelectedActions; Context.ClearMode = settings.ClearMode; Context.SelectedEntities = settings.EntitiesSelected.ToArray(); Context.IsGenerateAlternateKeys = settings.IsGenerateAlternateKeys; Context.IsUseCustomTypeForAltKeys = settings.IsUseCustomTypeForAltKeys; Context.IsMakeCrmEntitiesJsonFriendly = settings.IsMakeCrmEntitiesJsonFriendly; Context.CrmEntityProfiles = settings.CrmEntityProfiles; Context.EntityProfilesHeaderSelector = settings.EntityProfilesHeaderSelector; if (settings.LockNamesOnGenerate) { LockNames(Context); } MetadataCache.Context = Context; Configuration.SaveSettings(settings); Status.HideBusy(Dispatcher, BusyIndicator); StillOpen = false; Dispatcher.Invoke(Close, DispatcherPriority.Send); break; } } catch (Exception ex) { Status.PopException(Dispatcher, ex); Status.HideBusy(Dispatcher, BusyIndicator); } }