예제 #1
0
        private static void GameOnTick(EventArgs args)
        {
            try
            {
                var flags = Orbwalker.ActiveModesFlags;
                if (flags.HasFlag(Orbwalker.ActiveModes.Combo))
                {
                    Offensive.Items();
                    Defensive.Items();
                }

                if (loadedreveal)
                {
                    AutoReveal.Reveal();
                }

                AutoLvlUp.Levelup();
                AutoTear.OnUpdate();
                GanksDetector.OnUpdate();
                Smite.Smiteopepi();
                Spells.Cast();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
예제 #2
0
        public static void Obj_AI_Base_OnBasicAttack(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!(args.Target is AIHeroClient))
            {
                return;
            }

            var caster = sender;
            var enemy  = sender as AIHeroClient;
            var target = (AIHeroClient)args.Target;

            if (!(caster is AIHeroClient || caster is Obj_AI_Turret) || !caster.IsEnemy || target == null || caster == null || !target.IsAlly)
            {
                return;
            }

            var aaprecent = (caster.GetAutoAttackDamage(target, true) / target.TotalShieldHealth()) * 100;
            var death     = caster.GetAutoAttackDamage(target, true) >= target.TotalShieldHealth() || aaprecent >= target.HealthPercent;

            if (target.IsAlly && !target.IsMe && target.IsValidTarget())
            {
                Defensive.defcast(caster, target, enemy, aaprecent);
                Spells.summcast(caster, target, enemy, aaprecent);
            }

            if (target.IsMe)
            {
                Defensive.defcast(caster, target, enemy, aaprecent);
                Spells.summcast(caster, target, enemy, aaprecent);
            }
        }
예제 #3
0
        protected override void DoSeed()
        {
            var parser = new ExcelFileParser <EntityAccountFileRecordModel>();

            ParseResult <EntityAccountFileRecordModel> result = null;

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(ResourceName))
            {
                result = parser.Parse(stream);
            }

            Defensive.AssertTrue(result.Success);

            foreach (var group in result.Records.GroupBy(x => x.Name))
            {
                var entity = Mapper.Map <Entity>(group.First());

                entity.Ibans = group.Select(x =>
                {
                    if (x.Iban != null)
                    {
                        x.Iban = x.Iban.Replace(" ", "");
                    }

                    return(Mapper.Map <Iban>(x));
                })
                               .ToList();

                Context.Add(entity); //todo use repository
            }
        }
예제 #4
0
        public IHtmlContent Render(object model)
        {
            if (model == null)
            {
                return(new HtmlString(""));
            }

            var files = model as List <ValueObject>;

            Defensive.AssertNotNull(files);

            var stb = new StringBuilder();

            foreach (var file in files)
            {
                var name = Path.GetFileNameWithoutExtension(file.Name);
                //var ext = Path.GetExtension(file.Name);

                if (name.Length > MaxNameLength)
                {
                    name = $"{name.Substring(0, MaxNameLength)}...";
                }

                stb.Append($"<div data-file-id='{file.Id}' class='custom-popover preview'>{name}</div>");
            }

            return(new HtmlString(stb.ToString()));
        }
예제 #5
0
        protected override void DoSeed()
        {
            var parser = new ExcelFileParser <CategoryFileRecordModel>();

            ParseResult <CategoryFileRecordModel> result = null;

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(ResourceName))
            {
                result = parser.Parse(stream);
            }

            Defensive.AssertTrue(result.Success);

            foreach (var group in result.Records.GroupBy(x => x.Category))
            {
                var category = new Category {
                    Name = group.Key
                };

                group.ToList().ForEach(x => category.Categories.Add(new SubCategory {
                    Name = x.SubCategory
                }));

                Context.Add(category); //todo use repository
            }
        }
예제 #6
0
        private TableViewModel GetModel(IHtmlHelper helper)
        {
            var model = helper.ViewData.Model as TableViewModel;

            Defensive.AssertNotNull(model);
            return(model);
        }
예제 #7
0
        public static TableDescriptor GetTableDescriptor(this IHtmlHelper html)
        {
            var descriptor = html.ViewContext.ViewData[TableDescriptor.DescriptorName] as TableDescriptor;

            Defensive.AssertNotNull(descriptor, "GetTableDescriptor can't be null");
            return(descriptor);
        }
예제 #8
0
        public static FormItemsDescriptor GetFormItemDescriptor(this IHtmlHelper html)
        {
            var descriptor = html.ViewContext.ViewData[FormItemsDescriptor.DescriptorName] as FormItemsDescriptor;

            Defensive.AssertNotNull(descriptor, "Forms Item Descriptor is not found");
            return(descriptor);
        }
예제 #9
0
        public static MvcPageContext GetPageContext(this IHtmlHelper html)
        {
            var context = html.ViewContext.ViewData[MvcPageContext.Name] as MvcPageContext;

            Defensive.AssertNotNull(context, "GetPageContext can't be null");
            return(context);
        }
 public void UpdateScore(double score, Activity activity, bool winner, bool isOffence)
 {
     Score = score;
     ScoreHistory.Enqueue(new Tuple <double, Activity>(score, activity));
     if (winner)
     {
         Total.AddVictory();
         _winning.Add();
         _loosing.Reset();
         if (isOffence)
         {
             Offensive.AddVictory();
         }
         else
         {
             Defensive.AddVictory();
         }
     }
     else
     {
         Total.AddDefeat();
         _winning.Reset();
         _loosing.Add();
         if (isOffence)
         {
             Offensive.AddDefeat();
         }
         else
         {
             Defensive.AddDefeat();
         }
     }
 }
예제 #11
0
        public static IQueryable <TDomain> ApplyTableRequestIQueryable <TEntity, TDomain, TKey>(this IQueryable <TEntity> query, ListRequest request, params SortOrder[] sortOrders)
            where TEntity : IEntity <TKey>
            where TDomain : IDomainBase <TKey>
        {
            var domainQuery = query.ProjectTo <TDomain>();

            Defensive.AssertNotNull(domainQuery);

            if (request.Filters.Any())
            {
                domainQuery = domainQuery.Where(FilterExpressionCreator.CreateFilterExpression <TEntity, TDomain>(request.Filters));
            }

            domainQuery = Sort <TDomain, TKey>(domainQuery, sortOrders, request.Sorts);

            if (!request.SkipPaging)
            {
                domainQuery = domainQuery.Skip(request.Skip);

                if (request.Take > 0)
                {
                    domainQuery = domainQuery.Take(request.Take);
                }
            }

            return(domainQuery);
        }
예제 #12
0
    public static int RealDmgCalculate(int pureDmg, AttackType attackType, Defensive def)
    {
        int dmg = pureDmg;

        switch (attackType)
        {
        case AttackType.Normal:
            dmg = DmgCalculator.NormalDmgCalculator(pureDmg, def.armor);
            break;

        case AttackType.Fire:
            dmg = DmgCalculator.MagicDmgCalculator(pureDmg, def.res.fireResist);
            break;

        case AttackType.Lightning:
            dmg = DmgCalculator.MagicDmgCalculator(pureDmg, def.res.lightningResist);
            break;

        case AttackType.Cold:
            dmg = DmgCalculator.MagicDmgCalculator(pureDmg, def.res.coldResist);
            break;

        case AttackType.Poison:
            dmg = DmgCalculator.MagicDmgCalculator(pureDmg, def.res.poisonResist);
            break;
        }

        return(dmg);
    }
예제 #13
0
        public T GetService <T>()
        {
            var service = _container != null?_container.GetService <T>() : throw new Exception("Test Fixture must be initialized");

            Defensive.AssertNotNull(service, $"Service {typeof(T).FullName} is not registered  in IoC container");

            return(service);
        }
예제 #14
0
        private static void Game_OnUpdate(EventArgs args)
        {
            Defensive.Execute();
            Offensive.Execute();
            Consumables.Execute();

            Initialize.Execute();
        }
예제 #15
0
        public ListRequest ToListRequest(int page)
        {
            Defensive.AssertTrue(page > 0, "Page can't be less than 1");

            var skip = (page - 1) * ItemsPerPage;

            return(new ListRequest(Filters, Orders, skip, ItemsPerPage));
        }
예제 #16
0
파일: Item.cs 프로젝트: waldow90/PortAIO
 /// <summary>
 ///     Initializes a new instance of the <see cref="Item" /> class.
 /// </summary>
 /// <param name="orbwalker">
 ///     The orbwalker.
 /// </param>
 public Item(Orbwalking.Orbwalker orbwalker)
 {
     Orbwalker                = orbwalker;
     _offensive               = new Offensive();
     _defensive               = new Defensive();
     Orbwalking.AfterAttack  += After_Attack;
     Orbwalking.BeforeAttack += Before_Attack;
     Game.OnUpdate           += OnUpdate;
 }
예제 #17
0
        public static FileUploadLogError Create(string message)
        {
            Defensive.AssertNotNull(message, "Error message must not be null");

            return(new FileUploadLogError
            {
                Message = message
            });
        }
예제 #18
0
        public void AddError(long logId, string message)
        {
            var log = Context.FileUploadLogs.SingleOrDefault(x => x.Id == logId);

            Defensive.AssertNotNull(log, $"Log with id({logId}) was not found");

            log.Errors.Add(FileUploadLogError.Create(message));

            Context.SaveChanges();
        }
        private void ProcessRecords(long logId, List <TransactionFileRecordModel> records, string fileName, long entityId)
        {
            if (entityId == 0 && records.Count(x => string.IsNullOrEmpty(x.PayerAccount)) > records.Count / 2)
            {
                LogError(logId, $"File '{fileName}' has no 'Payer Account' column specified, please select necessary 'Payer Account' in the dropdown.");
                return;
            }

            foreach (var record in records)
            {
                try
                {
                    var domain = Mapper.Map <TransactionDomain>(record);

                    if (!string.IsNullOrEmpty(record.PayerAccount))
                    {
                        domain.Entity = EntityRepository.FindEntityByIban(record.PayerAccount);

                        Defensive.AssertNotNull(domain.Entity, $"Entity with IBAN '{record.PayerAccount}' was not found");
                    }
                    else
                    {
                        Defensive.AssertTrue(entityId > 0, "Entity is not specified");

                        domain.Entity = new ValueObject {
                            Id = entityId
                        };
                    }

                    domain.RecipientEntity = EntityRepository.FindEntityByIban(record.ToAccount);

                    if (record.Note?.Trim() != null)
                    {
                        var prefix = Regex.Match(record.Note?.Trim(), @"^([A-Za-z0-9]*)[^, -_]*")?.Value?.ToLower(); //text before first space , - _

                        domain.Project = ProjectRepository.FindProjectByPrefixInNote(prefix);
                    }

                    var res = Repository.TryImportTransaction(domain);

                    if (res == TransactionImportResult.Success)
                    {
                        Log.Logger().Information("Transaction id '{id}' imported successfully", domain.IdOfTransaction);
                    }
                    else
                    {
                        Log.Logger().Warning("Transaction id '{id}' import failed with reason {reason}", domain.IdOfTransaction, res.ToString());
                    }
                }
                catch (Exception e)
                {
                    LogError(logId, $"Failed to import record with id : {record.RowId}, File '{fileName}'", e);
                }
            }
        }
예제 #20
0
        public static string NormalizeIban(this string iban)
        {
            Defensive.AssertNotNull(iban, "Iban can not be null");

            if (iban.Length > 10)
            {
                iban = iban.Substring(Math.Max(0, iban.Length - 10)); //get last 10 characters
            }

            return(iban);
        }
예제 #21
0
        public long CreateLog(string fileName)
        {
            Defensive.AssertNotNull(fileName, "File name can't be empty");

            var log = FileUploadLog.CreateFor(fileName);

            Context.Add(log);

            Context.SaveChanges();

            return(log.Id);
        }
예제 #22
0
        public UploadFileLogDetails GetLogsById(long id)
        {
            Defensive.AssertTrue(id > 0);

            return(Context.FileUploadLogs
                   .Include(x => x.Errors)
                   .FindOptional(x => x.Id == id)
                   .SomeOrEntityNotFoundException()
                   .Do(e => Context.Entry(e).GetDatabaseValues())
                   .Map(Mapper.Map <UploadFileLogDetails>)
                   .ValueOrFailure());
        }
예제 #23
0
        public void EndLog(long logId)
        {
            var log = Context.FileUploadLogs.SingleOrDefault(x => x.Id == logId);

            Defensive.AssertNotNull(log, $"Log with id({logId}) was not found");

            log.Status = !log.Errors.Any() ? FileUploadStatus.FinishedSuccessfully : FileUploadStatus.FinishedWithErrors;

            log.EndDateTime = DateTimeContext.Now;

            Context.SaveChanges();
        }
예제 #24
0
        public static SortOrder CreateOrder <TSource>(Expression <Func <TSource, object> > propertyLambda, OrderDirection direction)
        {
            var expression = propertyLambda.Body as MemberExpression;

            Defensive.AssertNotNull(expression);

            var propInfo = expression.Member as PropertyInfo;

            Defensive.AssertNotNull(propInfo);

            return(new SortOrder(propInfo.Name, direction));
        }
예제 #25
0
        public static PropertyInfo GetPropertyInfoFromMemberExpression <TTarget, TValue>(this Expression <Func <TTarget, TValue> > expression)
        {
            var memberExpression = expression.Body as MemberExpression;

            Defensive.AssertNotNull(memberExpression);

            var propertyInfo = memberExpression.Member as PropertyInfo;

            Defensive.AssertNotNull(propertyInfo);

            return(propertyInfo);
        }
예제 #26
0
        public IHtmlContent Render(object model)
        {
            if (model == null)
            {
                return(new HtmlString(""));
            }

            var value = model as ValueObject;

            Defensive.AssertNotNull(value);

            return(new HtmlString(value.Name));
        }
예제 #27
0
        private async Task PopulateSystemUser()
        {
            var user = new ApplicationUser {
                UserName = Constants.DefaultUser, Email = Constants.DefaultUser
            };

            var result = await UserManager.CreateAsync(user, Constants.DefaultUserPassword);

            Defensive.AssertTrue(result.Succeeded, string.Join("; ", result.Errors));

            var roleResult = await UserManager.AddToRoleAsync(user, RoleNames.Admin);

            Defensive.AssertTrue(roleResult.Succeeded, string.Join("; ", roleResult.Errors));
        }
예제 #28
0
        private async Task PopulateRoles()
        {
            var result = await RoleManager.CreateAsync(new IdentityRole(RoleNames.Admin));

            Defensive.AssertTrue(result.Succeeded, string.Join("; ", result.Errors));

            result = await RoleManager.CreateAsync(new IdentityRole(RoleNames.BackOffice));

            Defensive.AssertTrue(result.Succeeded, string.Join("; ", result.Errors));

            result = await RoleManager.CreateAsync(new IdentityRole(RoleNames.Customer));

            Defensive.AssertTrue(result.Succeeded, string.Join("; ", result.Errors));
        }
예제 #29
0
        private ManyToManyRelationVm GetItems()
        {
            var leftEntityId = GetFromSession <long>(SessionKeys.ChildPageManyToManyLeftEntityFk);

            Defensive.AssertTrue(leftEntityId > 0, "Session is expired");

            if (GetFromSession(SessionKeys.ChildPageManyToManyIsReadonlyFlag, false))
            {
                ViewData.GetPageContext().SetTableIsReadonly();
            }

            ViewData[MvcViewConstants.Title] = Title;

            return(new ManyToManyRelationVm(leftEntityId, Service.GetRightItems(leftEntityId)));
        }
예제 #30
0
        public static Task <IHtmlContent> RenderEditButtonAsync <TModel>(this IHtmlHelper <TModel> htmlHelper)
        {
            var pageContext = htmlHelper.GetPageContext();

            if (pageContext.TableCanEdit)
            {
                var model = htmlHelper.ViewData.Model as DomainBase;

                Defensive.AssertNotNull(model);

                var viewModel = new CrudButtonViewModel(CrudButtonsSettings.EditLabel, CrudButtonsSettings.EditUrl, CrudButtonsSettings.EditStyle, new { id = model.Id });

                return(htmlHelper.PartialAsync("_CrudButton", viewModel));
            }

            return(Task.FromResult <IHtmlContent>(null));
        }