Exemple #1
0
				public GroupRulesEditModel DeleteGroupRule (GroupRulesEditModel model)
				{
					var m = new GroupRules ();
					m.Update (model);

					var deleted = _groupRulesDal.DeleteRule (m);
					var result = new GroupRulesEditModel ();
					result.Update (deleted);
					return result;
				}
        public GroupRules DeleteRule(GroupRules g)
        {
            var result = new GroupRules();

            result.Update(g);

            //_appDbContext.Add(result);
            _appDbContext.Remove(result);
            _appDbContext.SaveChanges();
            return(result);
        }
        public GroupRules SaveRules(GroupRules g)
        {
            if (g.ID >= 1)
            {
                _appDbContext.Add(g);
                _appDbContext.Update(g);
                _appDbContext.SaveChanges();
                return(g);
            }
            var result = new GroupRules();

            result.Update(g);
            _appDbContext.Add(result);
            _appDbContext.SaveChanges();
            return(result);
        }
Exemple #4
0
				public GroupRulesEditModel SaveGroupRules (GroupRulesEditModel model)
				{
					if (model.Rule == null)
						throw new Exception ("Required");

					var m = new GroupRules ();
					m.Update (model);

					var liu = _httpContextAccessor.HttpContext.User;
					var u = CustomUserModelByLoggedInUser (liu);

					m.InsertedBy = u.AccountNumberString;

					var saved = _groupRulesDal.SaveRules (m);

					var result = new GroupRulesEditModel ();
					result.Update (saved);

					return result;
				}
Exemple #5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //----------------------------------------------------
            IConfigService configService     = new XMLConfigService("Config.xml");
            IMessenger     messenger_sms     = new SmsMessenger();
            IMessenger     messenger_email   = new EmailMessenger();
            IPassHasher    passHasher        = new SHA256Hasher();
            IKeyGenerator  smallKeyGenerator = new SmallKeyGenerator();
            IKeyGenerator  bigKeyGenerator   = new BigKeyGenerator();
            IRegValidator  regValidator      = new RegValidator();
            IUOWFactory    UOWFactory        = new EFUOWFactory(configService.ConnectionString);
            IGetUserDTO    getUserDTO        = new GetUserDTO();

            //----------------------------------------------------
            IClaimService claimService = new ClaimService(UOWFactory);

            //----------------------------------------------------
            services.AddSingleton <IConfigService, IConfigService>(
                serviceProvider =>
            {
                return(configService);
            }
                );
            //----------------------------------------------------
            services.AddSingleton <IGetUserDTO, IGetUserDTO>(
                serviceProvider =>
            {
                return(getUserDTO);
            }
                );
            //----------------------------------------------------
            services.AddSingleton <IUOWFactory, IUOWFactory>(
                serviceProvider =>
            {
                return(UOWFactory);
            }
                );

            services.AddSingleton <IClaimService, ClaimService>();
            //-----------------------------------------------------

            services.AddSingleton <IUserService, UserAuthService>(
                serviceProvider =>
            {
                return(new UserAuthService(
                           UOWFactory,
                           new AuthKeyService(smallKeyGenerator, messenger_sms),
                           new AuthKeyService(smallKeyGenerator, messenger_email),
                           passHasher,
                           regValidator,
                           claimService,
                           bigKeyGenerator,
                           getUserDTO
                           ));
            }
                );

            services.AddSingleton <IProfileService, ProfileService>(
                serviceProvider =>
            {
                IConfirmService emailCS = new ConfirmService(
                    new ConfirmKeyService(bigKeyGenerator, messenger_email)
                    );
                IConfirmService phoneCS = new ConfirmService(
                    new ConfirmKeyService(smallKeyGenerator, messenger_sms)
                    );
                return(new ProfileService(
                           UOWFactory,
                           regValidator,
                           emailCS,
                           phoneCS,
                           passHasher,
                           claimService,
                           getUserDTO
                           ));
            }
                );

            services.AddSingleton <IRestorePasswordService, RestorePasswordService>(
                serviceProvider =>
            {
                var emaiCKS  = new ConfirmKeyService(bigKeyGenerator, messenger_email);
                var phoneCKS = new ConfirmKeyService(smallKeyGenerator, messenger_sms);
                return(new RestorePasswordService(UOWFactory, emaiCKS, phoneCKS, new RegValidator(), passHasher));
            }
                );
            //---------Forum Services--------------------------------
            IGroupRules     groupRules     = new GroupRules();
            ISectionRules   sectionRules   = new SectionRules(groupRules);
            IThemeRules     themeRules     = new ThemeRules(sectionRules);
            IMessageRules   messageRules   = new MessageRules(themeRules, sectionRules);
            IDTOHelper      dtoHelper      = new DTOHelper();
            IForumDTOHelper forumDTOHelper = new ForumDTOHelper(messageRules, themeRules, sectionRules, groupRules, dtoHelper);

            services.AddSingleton <IGroupService, GroupService>(
                serviceProvider =>
            {
                return(new GroupService(groupRules, getUserDTO, UOWFactory, forumDTOHelper));
            }
                );

            services.AddSingleton <ISectionService, SectionService>(
                serviceProvider =>
            {
                return(new SectionService(sectionRules, getUserDTO, UOWFactory, forumDTOHelper));
            }
                );

            services.AddSingleton <IThemeService, ThemeService>(
                serviceProvider =>
            {
                return(new ThemeService(themeRules, getUserDTO, UOWFactory, forumDTOHelper));
            }
                );

            services.AddSingleton <IMessageService, MessageService>(
                serviceProvider =>
            {
                return(new MessageService(messageRules, getUserDTO, UOWFactory, forumDTOHelper));
            }
                );

            services.AddSingleton <IForumService, ForumService>(
                serviceProvider =>
            {
                return(new ForumService(getUserDTO, UOWFactory, forumDTOHelper, groupRules));
            }
                );
            //--------------------Page Services--------------------
            IPageRules pageRules = new PageRules();
            INoteRules noteRules = new NoteRules();

            services.AddSingleton <IPageService, PageService>(
                serviceProvider =>
            {
                return(new PageService(pageRules, UOWFactory, getUserDTO, dtoHelper));
            }
                );

            services.AddSingleton <IBlogService, BlogService>(
                serviceProvider =>
            {
                return(new BlogService(noteRules, UOWFactory, getUserDTO, dtoHelper));
            }
                );

            //-------------------------------------------------------
            services.AddSingleton <IImageService, ImageService>(
                serviceProvider =>
            {
                return(new ImageService(UOWFactory, getUserDTO));
            }
                );
            //-------------------------------------------
            services.AddSingleton <IAdminService, AdminService>(
                serviceProvider =>
            {
                return(new AdminService(getUserDTO, UOWFactory));
            }
                );

            services.Configure <FormOptions>(x =>
            {
                x.ValueCountLimit          = int.MaxValue;
                x.MemoryBufferThreshold    = int.MaxValue;
                x.ValueLengthLimit         = int.MaxValue;
                x.MultipartBodyLengthLimit = int.MaxValue; // In case of multipart
            });
            //------------------------------------------------------
            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(options =>
            {
                options.LoginPath  = new Microsoft.AspNetCore.Http.PathString("/Account/Login");
                options.LogoutPath = new Microsoft.AspNetCore.Http.PathString("/Account/Logout");
                options.Events.OnValidatePrincipal = PrincipalValidator.ValidateAsync;
            });

            services.AddMvc();
        }
Exemple #6
0
        private ILookup <Ability, Ability> Stack(IEnumerable <Ability> abilities, IAbilityObject stackingTo, bool groupStacking)
        {
            if (abilities.Count() <= 1)
            {
                return(abilities.ToLookup(a => a, a => a));
            }

            var results = new SafeDictionary <Ability, Ability>();            // keys = original abilities, values = stacked abilities

            foreach (var abil in abilities)
            {
                for (int i = 0; i < abil.Values.Count; i++)
                {
                    AbilityValueRule rule;
                    if (groupStacking)
                    {
                        rule = GroupRules.ElementAtOrDefault(i);
                    }
                    else
                    {
                        rule = ValueRules.ElementAtOrDefault(i);
                    }
                    // TODO - don't repeatedly convert to/from strings, just do it once outside the loop
                    double?oldval = null;
                    if (results[abil] != null)
                    {
                        oldval = results[abil].Values.Count > i ? (double?)results[abil].Values[i].Value.ToDouble() : null;
                    }
                    else
                    {
                        var match = results.Values.Distinct().Where(a => a != null).SingleOrDefault(a => a.Rule == abil.Rule && a.Values.Select((val, idx) => rule != AbilityValueRule.Group && rule != AbilityValueRule.None || a.Values.Count >= abil.Values.Count && a.Values[idx] == abil.Values[idx]).All(b => b));

                        if (match != null)
                        {
                            results[abil] = match;
                            oldval        = results[abil].Values.Count > i ? (double?)results[abil].Values[i].Value.ToDouble() : null;
                        }
                        else
                        {
                            results[abil] = new Ability(stackingTo, abil.Rule);
                        }
                    }
                    double incoming = abil.Values.Count > i ? abil.Values[i].Value.ToDouble() : 0;
                    double newval   = oldval ?? 0;
                    if (rule == AbilityValueRule.Add)
                    {
                        newval = (oldval ?? 0) + incoming;
                    }
                    else if (rule == AbilityValueRule.TakeAverage)
                    {
                        newval = (oldval ?? 0) + incoming / abilities.Count();
                    }
                    else if (rule == AbilityValueRule.TakeHighest)
                    {
                        if (oldval == null)
                        {
                            newval = incoming;
                        }
                        else
                        {
                            newval = Math.Max(oldval.Value, incoming);
                        }
                    }
                    else if (rule == AbilityValueRule.TakeLowest)
                    {
                        if (oldval == null)
                        {
                            newval = incoming;
                        }
                        else
                        {
                            newval = Math.Min(oldval.Value, incoming);
                        }
                    }
                    else                     // group or none
                    {
                        newval = incoming;
                    }
                    if (results[abil].Values.Count > i)
                    {
                        results[abil].Values[i] = newval.ToString(CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        while (results[abil].Values.Count < i)
                        {
                            results[abil].Values.Add(null);
                        }
                        results[abil].Values.Add(newval.ToString(CultureInfo.InvariantCulture));
                    }
                }
            }
            foreach (var kvp in results)
            {
                if (results.Values.Where(a => a == kvp.Value).Count() == 1)
                {
                    // ability is "stacked" alone, just use the original ability description
                    results[kvp.Key].Description = kvp.Key.Description;
                }
            }
            return(results.ToLookup(kvp => kvp.Value, kvp => kvp.Key));
        }