private void DeleteImpl() { var formatter = FormattersLocator.Get(SelectedItem.Guid); FormattersLocator.Remove(formatter); UpdateConverters(); }
private void UpdateConverters() { var converters = FormattersLocator.GetFormatters().Select(ConverterViewModel.FromModel); Converters = new ObservableCollection <ConverterViewModel>( converters.OrderBy(c => c.IsFixed).ThenBy(c => c.Name)); }
public static void Init() { ToCleanString = BuildToCleanStringFormatter(); ToInteger = BuildToIntegerFormatter(); ToFloat = BuildToFloatFormatter(); ToCleanStringArray = BuildToCleanStringArrayFormatter(); FormattersLocator.Set(ToCleanString); FormattersLocator.Set(ToInteger); FormattersLocator.Set(ToFloat); FormattersLocator.Set(ToCleanStringArray); }
private static void FillFieldViewModel(RuleFieldViewModel viewModel, ExcelImportRule.Column model) { if (model == null) { return; } viewModel.UpdateCompatableFormatters(); viewModel.Formatter = FormattersLocator.Get(model.Formatter.Guid); viewModel.Active = model.Active; viewModel.Required = model.Required; viewModel.Index = model.Index; }
private void SaveImpl() { var model = Model as JavaScriptValueFormatter; if (model == null) { model = new JavaScriptValueFormatter(); } model.Guid = Guid == Guid.Empty ? Guid.NewGuid() : Guid; model.Name = Name; model.Description = Description; model.Script = UserScript; model.Type = GeneralizedTypes.GetConcreteType(GeneralizedType); FormattersLocator.Add(model); App.Window.NavigateModal(null); }
private IEnumerable <ExcelImportRuleCellPoco> BuildProperties() { if (!IsNew) { var ex = new Exception(@"Попытка создания пустых полей для записанного правила импорта"); Log.Exception(ex); #if DEBUG throw ex; #endif } return(( from property in CatalogItemSchema.Properties select new ExcelImportRuleCellPoco() { RowIndex = 0, Property = property, FormatterGuid = FormattersLocator.Search(CatalogItemSchema.GetPropertyConcreteType(property)).First().Guid }).ToArray()); }
protected override ExcelImportRule GetModel(ExcelImportRulePoco entity) { return(new ExcelImportRule() { Name = entity.Name, Description = entity.Description, Identificator = entity.Identificator, CsvMode = entity.UseCsvFile, RowOffset = entity.RowOffset, ColumnOffset = entity.ColumnOffset, WorksheetIndex = entity.WorksheetIndex, Columns = entity.Properties.Select(p => new ExcelImportRule.Column() { Index = p.RowIndex, Name = p.Property.ToString(), Formatter = FormattersLocator.Get(p.FormatterGuid), Active = p.Active, Required = p.Required }) }); }
public void UpdateCompatableFormatters() { if (CompatableFormatters == null) { CompatableFormatters = new ObservableCollection <IFormatter>(); } var formatters = FormattersLocator.Search(GeneralizedTypes.GetConcreteType(GeneralizedType)).ToArray(); if (CompatableFormatters.Count == 0) { foreach (var formatter in formatters) { CompatableFormatters.Add(formatter); } return; } CollectionUtils.UpdateObservableCollection(CompatableFormatters, formatters); }
public static ExcelImportRule BuildMasumaRules() { return(new ExcelImportRule() { ColumnOffset = 0, RowOffset = 7, WorksheetIndex = 1, CsvMode = true, Identificator = "masumaexcel", Name = "Masuma Excel", Description = @"Файл прайс-листов Excel поставщика Masuma", Columns = new[] { new ExcelImportRule.Column() { Name = @"Brand", Formatter = FormattersLocator.Search <string>().First(), Index = 1, Active = true, Required = true }, new ExcelImportRule.Column() { Name = @"PartNumber", Formatter = FormattersLocator.Search <string>().First(), Index = 3, Active = true, Required = true }, new ExcelImportRule.Column() { Name = @"Name", Formatter = FormattersLocator.Search <string>().First(), Index = 5, Active = true, Required = true }, new ExcelImportRule.Column() { Name = @"Analogs", Formatter = FormattersLocator.Search <string[]>().First(), Index = 4, Active = true }, new ExcelImportRule.Column() { Name = @"Balance", Formatter = FormattersLocator.Search <double>().First(), Index = 8, Active = true, Required = true }, new ExcelImportRule.Column() { Name = @"Price", Formatter = FormattersLocator.Search <double>().First(), Index = 9, Active = true, Required = true } } }); }
private void Defaults() { var fields = new List <RuleFieldViewModel>(); NameField = new RuleFieldViewModel { Name = "Name", GeneralizedType = GeneralizedType.String, Active = true, Required = true, BaseField = true, //Index = 0, Formatter = FormattersLocator.Search <string>().First() }; fields.Add(NameField); BrandField = new RuleFieldViewModel { Name = "Brand", GeneralizedType = GeneralizedType.String, Active = true, Required = true, BaseField = false, //Index = 0, Formatter = FormattersLocator.Search <string>().First() }; fields.Add(BrandField); PartNumberField = new RuleFieldViewModel { Name = "PartNumber", GeneralizedType = GeneralizedType.String, Active = true, Required = true, BaseField = true, //Index = 0, Formatter = FormattersLocator.Search <string>().First() }; fields.Add(PartNumberField); PriceField = new RuleFieldViewModel { Name = "Price", GeneralizedType = GeneralizedType.Float, Active = true, Required = true, BaseField = true, //Index = 0, Formatter = FormattersLocator.Search <double>().First() }; fields.Add(PriceField); BalanceField = new RuleFieldViewModel { Name = "Balance", GeneralizedType = GeneralizedType.Float, Active = true, Required = true, BaseField = false, //Index = 0, Formatter = FormattersLocator.Search <double>().First() }; fields.Add(BalanceField); AnalogsField = new RuleFieldViewModel { Name = "Analogs", GeneralizedType = GeneralizedType.ArrayOfString, Active = true, Required = false, BaseField = false, //Index = 0, Formatter = FormattersLocator.Search <string[]>().First() }; fields.Add(AnalogsField); Fields = fields; SubscrubeFieldsChanges(); }
protected override IFormatter GetModel(FixedFormatterReference entity) { return(FormattersLocator.Get(entity.Guid)); }