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); }
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; }
// 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(); }
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)); }