Ejemplo n.º 1
0
        void Save(int DocId, int MapIndex)
        {
            var da    = new DataAccess();
            var zones = this.imageBoxRecognize1.OrionRecognize.GetZones();

            foreach (var zone in zones)
            {
                var newOMZ = da.Get_OCR_MappingZone(zone.ID);

                if (newOMZ == null)
                {
                    newOMZ        = new OCR_MappingZone();
                    newOMZ.ZON_Id = zone.ID;
                }

                newOMZ.ZON_Name  = zone.Name;
                newOMZ.ZON_Left  = zone.X;
                newOMZ.ZON_Top   = zone.Y;
                newOMZ.ZON_Width = zone.Width;
                newOMZ.ZON_Rigth = zone.Height;

                da.OCR_MappingZone_Update(newOMZ, MapIndex, this.imageBoxRecognize1.Image.Width, this.imageBoxRecognize1.Image.Height, DocId);

                zone.ID   = newOMZ.ZON_Id;
                zone.Name = newOMZ.ZON_Name;

                zone.Update();
            }
        }
        public OCR_MappingZone OCR_MappingZone_Update(OCR_MappingZone oCR_MappingZone, int mapIndex, int mapWidth, int mapHeigth, int DocId)
        {
            try
            {
                using (var db = new OCRDocEntities())
                {
                    var oldzone = db.OCR_MappingZone.FirstOrDefault(x => x.ZON_Id == oCR_MappingZone.ZON_Id);

                    if (oldzone == null)
                    {
                        var mapR = from mp in db.OCR_Mapping
                                   join mt in db.OCR_MappingXTypeDocument on mp.MAP_Id equals mt.MXT_MAP_Id
                                   where mp.MAP_Index == mapIndex &&
                                   mt.MXT_TDC_Id == DocId
                                   select mp;

                        var map = mapR.FirstOrDefault();

                        if (map == null)
                        {
                            map           = new OCR_Mapping();
                            map.MAP_Index = mapIndex;

                            db.OCR_Mapping.Add(map);

                            db.SaveChanges();

                            db.OCR_MappingXTypeDocument.Add(new OCR_MappingXTypeDocument()
                            {
                                MXT_MAP_Id = map.MAP_Id, MXT_TDC_Id = DocId
                            });
                            db.SaveChanges();
                        }

                        db.Entry(map).Property("MAP_Width").CurrentValue  = mapWidth;
                        db.Entry(map).Property("MAP_Height").CurrentValue = mapHeigth;


                        oCR_MappingZone.ZON_MAP_Id = map.MAP_Id;

                        db.OCR_MappingZone.Add(oCR_MappingZone);
                        db.SaveChanges();
                    }
                    else
                    {
                        var old_oCR_MappingZone = from mz in db.OCR_MappingZone
                                                  where mz.ZON_Id == oCR_MappingZone.ZON_Id
                                                  select mz;

                        db.Entry(old_oCR_MappingZone.FirstOrDefault()).CurrentValues.SetValues(oCR_MappingZone);
                        db.SaveChanges();
                    }
                }
                return(oCR_MappingZone);
            }
            catch (Exception e)
            {
                throw e;
            }
        }