Esempio n. 1
0
        public List <Role> GetAll()
        {
            try
            {
                List <Role> roles = null;
                // using (var unitOfWork = (UnitOfWork)factory.CreateNew())
                // {
                //    roles = unitOfWork.Repository<Role>().GetAll().ToList();
                //}

                var unitOfWork = (UnitOfWork)factory.CreateNew();

                roles = unitOfWork.Repository <Role>().GetAll().ToList();

                return(roles);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Esempio n. 2
0
        public async Task Sync()
        {
            var showUpdates = await TvMazeScraperApi.GetUpdates();

            using (var unitOfWork = UnitOfWorkFactory.CreateNew())
            {
                // If come empty array deletes all
                if (showUpdates == null || !showUpdates.Any())
                {
                    await unitOfWork.Show.Remove();

                    unitOfWork.Commit();

                    return;
                }

                var existShows = (await unitOfWork.Show.GetAll())?.ToList();

                // If we have no data we need to add all
                if (existShows == null || !existShows.Any())
                {
                    var allShows = await GetShowsFromId(0);

                    await unitOfWork.Show.Add(allShows);

                    unitOfWork.Commit();
                    return;
                }

                var showsForUpdate = new List <Show>();
                var showsForDelete = new List <Show>();

                // Creates array to operate with shows
                foreach (var show in existShows)
                {
                    if (showUpdates.ContainsKey(show.ExternalId.ToString()))
                    {
                        if (showUpdates[show.ExternalId.ToString()] == show.Updated)
                        {
                            continue;
                        }

                        UpdateShow(show, await TvMazeScraperApi.GetShow(show.ExternalId));
                        showsForUpdate.Add(show);
                    }
                    else
                    {
                        showsForDelete.Add(show);
                    }
                }

                // Update all shows
                if (showsForUpdate.Any())
                {
                    await unitOfWork.Show.Update(showsForUpdate);
                }

                // Delete all shows
                if (showsForDelete.Any())
                {
                    await unitOfWork.Show.Remove(showsForDelete);
                }

                // Get last id and get all new shows
                var lastId = await unitOfWork.Show.GetLastId();

                var newShows = (await GetShowsFromId(lastId.Value + 1)).ToList();
                if (newShows.Any())
                {
                    await unitOfWork.Show.Add(newShows);
                }

                unitOfWork.Commit();
            }
        }
Esempio n. 3
0
 public async Task <IEnumerable <ShowOutViewModel> > Get(int page)
 {
     using (var unitOfWork = UnitOfWorkFactory.CreateNew())
         return((await unitOfWork.Show.Get(page * 250, ++page * 250)).Select(PareseShowOutViewModel));
 }