Example #1
0
        public virtual bool Delete(Expression <Func <T, bool> > filter)
        {
            var isCommitted = false;

            Guid?entityId = null;

            try
            {
                using (var uow = new Dota2UnitofWork())
                {
                    var repository = Repository.SetContext(uow.Context);

                    var existingEntity = repository.Get(filter, repository.GetAllIncludes());

                    entityId = existingEntity?.Id;

                    if (!repository.Delete(existingEntity))
                    {
                        throw new Exception(string.Format("{0} Delete Exception", repository.GetType().Name));
                    }

                    isCommitted = uow.Commit();
                }
            }
            catch (Exception ex)
            {
                Log.Save(new Log(ex.Message, entityId: entityId?.ToString()));
            }

            return(isCommitted);
        }
Example #2
0
 public bool Any(Expression <Func <T, bool> > filter = null)
 {
     using (var uow = new Dota2UnitofWork())
     {
         return(Repository.SetContext(uow.Context).Any(filter));
     }
 }
Example #3
0
        public override void ConvertToPersistent(Language disconnectedEntity, Language persistent = null, Func <Language> populatePersistent = null)
        {
            populatePersistent = () =>
            {
                using (var uow = new Dota2UnitofWork())
                {
                    var repository = new LanguageRepository(uow.Context);

                    return(repository.Select(repository.UniqueFilter(disconnectedEntity), repository.GetAllIncludes())
                           .Select(q => new
                    {
                        q.Id,
                        q.Name
                    })
                           .ToList()
                           .Select(ql => new Language()
                    {
                        Id = ql.Id,
                        Name = ql.Name
                    })
                           .SingleOrDefault());
                }
            };

            persistent = persistent ?? populatePersistent();

            if (persistent == null)
            {
                return;
            }

            base.ConvertToPersistent(disconnectedEntity, persistent, populatePersistent);
        }
Example #4
0
        public static void Save(Log log)
        {
            Task <bool> t = new Task <bool>(new Func <bool>(() =>
            {
                Thread.Sleep(2000 - DateTime.Now.Millisecond);

                //MsSqlConnection connection = new MsSqlConnection();

                //return SqlManager.ExecuteNonQuery("insert into Log (LogType,Category,Name,Description,EntityId,AddedDate,ModifiedDate,IsActive)"
                //                            + " values(@LogType,@Category,@Name,@Description,@EntityId,@AddedDate,@ModifiedDate,1)",
                //    new Dictionary<string, object>()
                //    {
                //        { "@LogType", log.LogType },
                //        { "@Category",log.Category },
                //        { "@Name", log.Name },
                //        { "@Description", log.Description.Replace("'"," ") },
                //        { "@EntityId", log.EntityId ?? (object)DBNull.Value },
                //        { "@AddedDate", DateTime.Now },
                //        { "@ModifiedDate", DateTime.Now }
                //    }) == 1;

                using (var uow = new Dota2UnitofWork())
                {
                    uow.Load <Log>().Create(log);

                    return(uow.Commit());
                }
            }));

            t.Start();
        }
Example #5
0
        public bool Create(T entity)
        {
            var isCommitted = false;

            using (var uow = new Dota2UnitofWork())
            {
                Repository.SetContext(uow.Context).Create(entity);

                isCommitted = uow.Commit();
            }

            return(isCommitted);
        }
Example #6
0
        public List <T> Select(Expression <Func <T, bool> > filter = null, params string[] includes)
        {
            List <T> results = new List <T>();

            using (var uow = new Dota2UnitofWork())
            {
                uow.Context.Configuration.ProxyCreationEnabled = Repository.ProxyCreationEnabled;

                results = Repository.SetContext(uow.Context)
                          .Select(filter, includes)
                          .ToList();
            }

            return(results);
        }
Example #7
0
        public T Get(Expression <Func <T, bool> > filter, params string[] includes)
        {
            T entity = null;

            using (var uow = new Dota2UnitofWork())
            {
                entity = uow.Load <T>().Get(filter, includes);

                uow.Load <T>().ShowChangeTrackerEntriesStates();

                uow.Commit();
            }

            return(entity);
        }
Example #8
0
        public bool Update(T entity)
        {
            var isCommitted = false;

            using (var uow = new Dota2UnitofWork())
            {
                if (!Repository.SetContext(uow.Context).Update(entity))
                {
                    return(false);
                }

                isCommitted = uow.Commit();
            }

            return(isCommitted);
        }
        public override void ConvertToPersistent(Localization disconnectedEntity, Localization persistent = null, Func <Localization> populatePersistent = null)
        {
            populatePersistent = () =>
            {
                using (var uow = new Dota2UnitofWork())
                {
                    var repository = new LocalizationRepository(uow.Context);

                    return(repository.Select(repository.UniqueFilter(disconnectedEntity), repository.GetAllIncludes())
                           .Select(q => new
                    {
                        q.Id,
                        q.BaseObjectId,
                        q.LanguageId,
                        q.PropertyName
                    })
                           .ToList()
                           .Select(l => new Localization()
                    {
                        Id = l.Id,
                        BaseObjectId = l.BaseObjectId,
                        LanguageId = l.LanguageId,
                        PropertyName = l.PropertyName
                    })
                           .SingleOrDefault());
                }
            };

            persistent = persistent ?? populatePersistent();

            if (persistent == null)
            {
                return;
            }

            persistent.Language = new LanguageService(false).Get(l => l.Id == persistent.LanguageId);

            if (disconnectedEntity.Language != null && persistent.Language != null)
            {
                new LanguageService().ConvertToPersistent(disconnectedEntity.Language, persistent.Language);

                disconnectedEntity.LanguageId = disconnectedEntity.Language.Id;
            }

            base.ConvertToPersistent(disconnectedEntity, persistent, populatePersistent);
        }
Example #10
0
        public bool CreateOrUpdate(T entity)
        {
            var isCommitted = false;

            using (var uow = new Dota2UnitofWork())
            {
                var repository = Repository.SetContext(uow.Context);

                if (!(repository.IsItNew(entity) ? repository.Create(entity) : repository.Update(entity)))
                {
                    return(false);
                }

                isCommitted = uow.Commit();
            }

            return(isCommitted);
        }
Example #11
0
        public override void ConvertToPersistent(Skill disconnectedEntity, Skill persistent = null, Func <Skill> populatePersistent = null)
        {
            populatePersistent = () =>
            {
                using (var uow = new Dota2UnitofWork())
                {
                    var repository = new SkillRepository(uow.Context);

                    return(repository.Select(repository.UniqueFilter(disconnectedEntity), repository.GetAllIncludes())
                           .Select(q => new
                    {
                        q.Id,
                        q.Name,
                        q.CharacterId,
                        ImageId = q.Image.Id
                    })
                           .ToList()
                           .Select(qs => new Skill()
                    {
                        Id = qs.Id,
                        Name = qs.Name,
                        CharacterId = qs.CharacterId,
                        ImageId = qs.ImageId
                    })
                           .SingleOrDefault());
                }
            };

            persistent = persistent ?? populatePersistent();

            if (persistent == null)
            {
                return;
            }

            base.ConvertToPersistent(disconnectedEntity, persistent, populatePersistent);

            new BaseObjectService().ConvertToPersistent(disconnectedEntity, persistent, populatePersistent);
        }
Example #12
0
        //public override Hero AnonymousTypeToT(object anonymous)
        //{
        //    var hero = new BaseObjectService().AnonymousTypeToT(anonymous) as Hero;

        //    hero = AnonymousTypeToT(hero);

        //    return hero;
        //}

        public override void ConvertToPersistent(Hero disconnectedEntity, Hero persistent = null, Func <Hero> populatePersistent = null)
        {
            populatePersistent = () =>
            {
                using (var uow = new Dota2UnitofWork())
                {
                    var repository = new HeroRepository(uow.Context);

                    new HeroService().Select();

                    //return repository.Select(repository.UniqueFilter(disconnectedEntity)).ToList()
                    //.Select(s=> s as Hero)
                    //.SingleOrDefault();

                    return(repository.Select(repository.UniqueFilter(disconnectedEntity), repository.GetAllIncludes())
                           .Select(q => new
                    {
                        q.Id,
                        q.Name,
                        q.ImageId
                    })
                           .ToList()
                           .Select(h => new Hero()
                    {
                        Id = h.Id,
                        Name = h.Name,
                        ImageId = h.ImageId
                    })
                           .SingleOrDefault());
                }
            };

            persistent = persistent ?? populatePersistent();

            base.ConvertToPersistent(disconnectedEntity, persistent, populatePersistent);

            new CharacterService().ConvertToPersistent(disconnectedEntity, persistent, populatePersistent);
        }
Example #13
0
        public override void ConvertToPersistent(Item disconnectedEntity, Item persistent = null, Func <Item> populatePersistent = null)
        {
            populatePersistent = () =>
            {
                using (var uow = new Dota2UnitofWork())
                {
                    var repository = new ItemRepository(uow.Context);

                    return(repository.Select(repository.UniqueFilter(disconnectedEntity), repository.GetAllIncludes())
                           .Select(q => new
                    {
                        q.Id,
                        q.LinkParameter,
                        q.ImageId
                    })
                           .ToList()
                           .Select(qi => new Item()
                    {
                        Id = qi.Id,
                        LinkParameter = qi.LinkParameter,
                        ImageId = qi.ImageId
                    })
                           .SingleOrDefault());
                }
            };

            persistent = persistent ?? populatePersistent();

            if (persistent == null)
            {
                return;
            }

            base.ConvertToPersistent(disconnectedEntity, persistent, populatePersistent);

            new BaseObjectService().ConvertToPersistent(disconnectedEntity, persistent, populatePersistent);
        }
Example #14
0
        static void Main()
        {
            //var heroes = HeroService.LoadFromDota2Com("tiny", Language.LanguagesFromDota2.Where(l => l.Name == "turkish").FirstOrDefault()).Result;
            var heroes = HeroService.LoadFromDota2Com("omniknight", Language.LanguagesFromDota2.Where(l => l.Name == "turkish").FirstOrDefault()).Result;

            //Func<Hero> populatePersistent = () =>
            //{
            //    using (var uow = new Dota2UnitofWork())
            //    {
            //        var repository = new HeroRepository(uow.Context);

            //        return repository.Select(repository.UniqueFilter(heroes.FirstOrDefault()), repository.GetAllIncludes())
            //        .Select(q => new
            //        {
            //            q.Id,
            //            q.Name,
            //            Image = new
            //            {
            //                Id = (Guid?)q.Image.Id,
            //                q.Image.Name,
            //                q.Image.Path,
            //                q.Image.Data
            //            },
            //            Localizations = q.Localizations.Select(l => new
            //            {
            //                l.Id,
            //                l.BaseObjectId,
            //                l.LanguageId,
            //                l.PropertyName
            //            }),
            //            Skills = q.Skills.Select(s => new
            //            {
            //                s.Id,
            //                s.CharacterId,
            //                s.Name,
            //                Image = new
            //                {
            //                    Id = (Guid?)s.Image.Id,
            //                    s.Image.Name,
            //                    s.Image.Path,
            //                    s.Image.Data
            //                },
            //                Localizations = s.Localizations.Select(l => new
            //                {
            //                    l.Id,
            //                    l.BaseObjectId,
            //                    l.LanguageId,
            //                    l.PropertyName
            //                }),
            //            })

            //        })
            //        .ToList()
            //        .Select(l => new Hero()
            //        {
            //            Id = l.Id,
            //            Name = l.Name,
            //            Image = new ImageService().AnonymousTypeToT(l.Image),
            //            Localizations = l.Localizations.Select(ll=>new LocalizationService().AnonymousTypeToT(ll)).ToList(),
            //            Skills = l.Skills.Select(ls=>new SkillService().AnonymousTypeToT(ls)).ToList()
            //        })
            //        .SingleOrDefault();
            //    }
            //};

            //var x = populatePersistent();


            //using (var uow = new Dota2UnitofWork())
            //{
            //    var rep = new CharacterRepository(uow.Context);

            //    var chars = rep.Select().ToList();
            //}

            //Logda fazlalık var Create Hero da
            // parametreli ve paralel işlemeli Hero.Load
            //Log ta id ler gelebilir
            // Log ta total etkilenen nesneleri toparlıyor 2000 tane nesne insert edildi diye



            foreach (var hero in heroes)
            {
                var heroService = new HeroService();

                heroService.ConvertToPersistent(hero);

                Console.WriteLine("{0} : {1}", hero.Name, heroService.CreateOrUpdate(hero));
            }



            //using (var uow = new Dota2UnitofWork())
            //{
            //    var rep = new HeroRepository(uow.Context);

            //    foreach (var hero in heroes)
            //    {
            //        rep.Create(hero);

            //        var bb = uow.Commit();
            //    }
            //}


            //var imageService = new ImageService();
            //var img = imageService.Get(i=>i.Id.ToString()== "C5C3910A-ECA1-EA11-BA95-C8D3FF210A02");

            //var itemService2 = new ItemService();

            //var abyssal_blade = itemService2.Select(i=>i.LinkParameter== "abyssal_blade",ItemRepository.AllIncludes).FirstOrDefault();

            ////img.Id = Guid.NewGuid();

            ////abyssal_blade.Image = img;

            //itemService2.ConvertToPersistent(abyssal_blade);

            //var ggg = itemService2.CreateOrUpdate(abyssal_blade);



            //var il = new List<Item>()
            //{
            //    new Item(){LinkParameter="X1"},
            //    new Item(){LinkParameter="X2"},
            //};

            //var x = il.Any(new UniqueFilter<Item>().Get(new Item() { LinkParameter = "X2" }).Compile());

            var itemService = new ItemService();



            //var list = itemService.Select(includes: ItemRepository.AllIncludes);
            //language: Language.LanguagesFromDota2.Where(l => l.Name == "bulgarian").FirstOrDefault()

            //var webResults = ItemService.LoadFromDota2Com(language: Language.LanguagesFromDota2.Where(l => l.Name == "bulgarian").FirstOrDefault()).Result;

            var webResults = new ItemService().Select(i => i.Localizations.Any(l => l.Language.Name == "bulgarian"), new ItemRepository().GetAllIncludes());

            //webResults.OrderBy(wr => wr.LinkParameter).FirstOrDefault().Localizations.FirstOrDefault().Language = new Language() { Name = "test", Code = "tst" };

            //var it = webResults.FirstOrDefault();
            //itemService.ConvertToPersistent(it);

            //using (var uow = new Dota2UnitofWork())
            //{
            //    var imageRepository = new ImageRepository(uow.Context);

            //   // var unique = imageRepository.GetUnique(it.Image,true);

            //    var ddgsg = imageRepository.Create(it.Image);

            //    var ddgsg2= uow.Commit();
            //}

            var counter = 0;

            Stopwatch sw = new Stopwatch();

            sw.Start();
            foreach (var result in webResults.OrderBy(wr => wr.LinkParameter))
            {
                itemService.ConvertToPersistent(result);

                result.Localizations.FirstOrDefault().Description = "test";

                var bb102012 = itemService.CreateOrUpdate(result);

                if (!bb102012)
                {
                    throw new Exception();
                }

                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("lp : {0},counter = {1},id= {2}", result.LinkParameter, counter, result.Id);
                Console.ForegroundColor = ConsoleColor.White;
            }

            sw.Stop();

            Console.ReadLine();

            //var persistentItem = itemService.Select(includes:ItemRepository.AllIncludes).FirstOrDefault();

            var persistentItem = new Item()
            {
                LinkParameter = "blink1010"
            };

            itemService.Update(persistentItem);

            //using (var uow =new Dota2UnitofWork())
            //{
            //    var imageRepository = new ImageRepository(uow.Context);

            //    var xcc = imageRepository.Get(persistentItem.ImageId.Value, imageRepository.GetAllIncludes());

            //    var b = imageRepository.Any(imageRepository.UniqueFilter(persistentItem.Image));
            //}

            itemService.ConvertToPersistent(persistentItem);

            //itemService.Update(list.FirstOrDefault());


            var itemSample = new ItemService().Get(i => i.LinkParameter == "blink", new ItemRepository().GetAllIncludes());

            var lclclc = new Localization(itemSample, Language.LanguagesFromDota2.FirstOrDefault(), "className", "propertyName", Guid.NewGuid().ToString());

            lclclc.BaseObjectId = itemSample.Id;
            lclclc.LanguageId   = lclclc.Language.Id;
            lclclc.Name         = DateTime.Now.ToString();

            itemSample.AddLocalization(lclclc);

            itemSample.Image = new Image()
            {
                Id = itemSample.Image.Id, Data = Encoding.UTF8.GetBytes(DateTime.Now.ToString())
            };
            itemSample.Image.Name = DateTime.Now.ToString();

            itemSample.Lore = "Lorem ımpsum : " + Guid.NewGuid();

            //itemSample.Localizations.Clear();



            using (var uow = new Dota2UnitofWork())
            {
                var itemRepository = new ItemRepository(uow.Context);

                itemRepository.Update(itemSample);

                var b1012010 = uow.Commit();
            }



            Console.ReadLine();
        }