コード例 #1
0
ファイル: CodePrinter.cs プロジェクト: taoqn/BarCodeQNU
        public CodePrinter(PrinterSet set)
        {
            PrintDoc   = new PrintDocument();
            printerSet = set;

            InitializeComponent();
        }
コード例 #2
0
ファイル: Context.cs プロジェクト: roman34rus/Print-Stat
        protected override DbEntityValidationResult ValidateEntity(DbEntityEntry entityEntry, IDictionary <object, object> items)
        {
            var result = base.ValidateEntity(entityEntry, items);

            if (entityEntry.Entity is PrinterModel)
            {
                var printerModel = (PrinterModel)entityEntry.Entity;

                if (entityEntry.State == EntityState.Added || entityEntry.State == EntityState.Modified)
                {
                    if (PrinterModelSet.Any(x => x.Id != printerModel.Id && x.Name.ToLower() == printerModel.Name.ToLower()))
                    {
                        AddDBValidationError(result, "Name", "Значение должно быть уникальным.");
                    }
                }

                if (entityEntry.State == EntityState.Deleted)
                {
                    if (PrinterSet.Any(x => x.ModelId == printerModel.Id))
                    {
                        AddDBValidationError(result, "", String.Format("Перед удалением {0} нужно удалить все принтеры этой модели.", printerModel.Name));
                    }
                }
            }

            if (entityEntry.Entity is Printer)
            {
                var printer = (Printer)entityEntry.Entity;

                if (entityEntry.State == EntityState.Added || entityEntry.State == EntityState.Modified)
                {
                    if (PrinterSet.Any(x => x.Id != printer.Id && x.Name.ToLower() == printer.Name.ToLower()))
                    {
                        AddDBValidationError(result, "Name", "Значение должно быть уникальным.");
                    }
                }
            }

            if (entityEntry.Entity is SupplyModel)
            {
                var supplyModel = (SupplyModel)entityEntry.Entity;

                if (entityEntry.State == EntityState.Added || entityEntry.State == EntityState.Modified)
                {
                    if (SupplyModelSet.Any(x => x.Id != supplyModel.Id && x.PartNumber.ToLower() == supplyModel.PartNumber.ToLower()))
                    {
                        AddDBValidationError(result, "PartNumber", "Значение должно быть уникальным.");
                    }

                    if (supplyModel.PrinterModels.Count() < 1)
                    {
                        AddDBValidationError(result, "PrinterModelIds", "Нужно выбрать хотя бы одну совместимую модель принтера.");
                    }
                }

                if (entityEntry.State == EntityState.Modified)
                {
                    foreach (var supply in supplyModel.Supplies)
                    {
                        foreach (var supplySlot in supply.SupplySlots)
                        {
                            if (!supplyModel.PrinterModels.Contains(supplySlot.Printer.PrinterModel))
                            {
                                AddDBValidationError(result, "PrinterModelIds",
                                                     string.Format("Требуется совместимость с {0}. В принтере {1} установлены расходные материалы этой модели.", supplySlot.Printer.PrinterModel.Name, supplySlot.Printer.Name));
                            }
                        }
                    }
                }

                if (entityEntry.State == EntityState.Deleted)
                {
                    if (SupplySet.Any(x => x.ModelId == supplyModel.Id))
                    {
                        AddDBValidationError(result, "", String.Format("Перед удалением {0} нужно удалить все расходные материалы этой модели.", supplyModel.GetFullName()));
                    }
                }
            }

            if (entityEntry.Entity is SupplySlot)
            {
                var supplySlot = (SupplySlot)entityEntry.Entity;

                if (entityEntry.State == EntityState.Modified)
                {
                    if (supplySlot.Supply != null)
                    {
                        if (!supplySlot.Printer.PrinterModel.SupplyModels.Contains(supplySlot.Supply.SupplyModel))
                        {
                            AddDBValidationError(result, "SupplyId", string.Format("Расходный материал {0} не совместим с принтером.", supplySlot.SupplyId));
                        }

                        if (supplySlot.Supply.SupplySlots.Count() > 1)
                        {
                            AddDBValidationError(result, "SupplyId", string.Format("Расходный материал {0} установлен в другой принтер.", supplySlot.SupplyId));
                        }
                    }
                }
            }

            return(result);
        }