예제 #1
0
 public static async Task <List <Recognition> > LoadAsync()
 {
     Console.WriteLine("LOAD");
     return(await Task.Run(() =>
     {
         List <Recognition> b = new List <Recognition>();
         using (var db = new DataBaseSetup.Context())
         {
             foreach (var r in db.Recognitions.Include(a => a.Photos).ThenInclude(a => a.Pixels))
             {
                 ObservableCollection <Photo> a = new ObservableCollection <Photo>();
                 foreach (var photo in r.Photos)
                 {
                     a.Add(new Photo
                     {
                         IsSavedInDataBase = true,
                         Path = photo.Path,
                         Pixels = photo.Pixels.Pixels,
                         Image = null
                     });
                 }
                 b.Add(new Recognition
                 {
                     Title = r.Title,
                     Count = r.Photos.Count,
                     Photos = a
                 });
             }
         }
         Console.WriteLine("load");
         return b;
     }));
 }
예제 #2
0
 public async Task <IEnumerable <Recognition> > GetAllRecognitionsWithoutImages()
 {
     return(await Task.Run(() =>
     {
         List <Recognition> b = new List <Recognition>();
         using (var db = new DataBaseSetup.Context())
         {
             foreach (var r in db.Recognitions.Include(a => a.Photos).ThenInclude(a => a.Pixels))
             {
                 ObservableCollection <Photo> a = new ObservableCollection <Photo>();
                 foreach (var photo in r.Photos)
                 {
                     a.Add(new Photo
                     {
                         IsSavedInDataBase = true,
                         Path = photo.Path,
                         Pixels = null,
                         Image = null
                     });
                 }
                 b.Add(new Recognition
                 {
                     Id = r.Id,
                     Title = r.Title,
                     Count = r.Photos.Count,
                     Photos = a
                 });
             }
         }
         return b;
     }));
 }
예제 #3
0
 public async Task <IEnumerable <string> > GetPhotosFromRecognitionWithId(int id)
 {
     return(await Task.Run(() =>
     {
         var db = new DataBaseSetup.Context();
         return from a in db.Photos
         where a.RecognitionId == id
         select Convert.ToBase64String(a.Pixels.Pixels);
     }));
 }
예제 #4
0
 public async Task Clear()
 {
     await Task.Run(async() =>
     {
         using (var db = new DataBaseSetup.Context())
         {
             db.Recognitions.RemoveRange(db.Recognitions);
             db.Photos.RemoveRange(db.Photos);
             db.Blobs.RemoveRange(db.Blobs);
             await db.SaveChangesAsync();
         }
     });
 }
예제 #5
0
        public async Task Save(IEnumerable <Recognition> recognitons)
        {
            await Task.Run(async() =>
            {
                using (var db = new DataBaseSetup.Context())
                {
                    foreach (var r in recognitons)
                    {
                        var rec = (from b in db.Recognitions
                                   where r.Title == b.Title
                                   select b).FirstOrDefault();

                        if (rec == null)
                        {
                            db.Recognitions.Add(new DataBaseSetup.Recognition
                            {
                                Title = r.Title,
                            });
                            await db.SaveChangesAsync();

                            rec = (from b in db.Recognitions
                                   where b.Title == r.Title
                                   select b).FirstOrDefault();
                        }

                        List <DataBaseSetup.Photo> a = new List <DataBaseSetup.Photo>();
                        foreach (var photo in r.Photos)
                        {
                            if (!photo.IsSavedInDataBase)
                            {
                                a.Add(new DataBaseSetup.Photo
                                {
                                    Path   = photo.Path,
                                    Pixels = new DataBaseSetup.Blob
                                    {
                                        Pixels = photo.Pixels
                                    },
                                    RecognitionId = rec.Id
                                });
                            }
                            photo.IsSavedInDataBase = true;
                        }
                        db.Photos.AddRange(a);
                    }
                    await db.SaveChangesAsync();
                }
            });
        }