public RulesBundle(ContextModel context, IRule rule) { CustomerDivisionAuthorizationRule = new ResourceAuthorizationRule <Olma.CustomerDivision, CanCreateOrderRequirement, DivisionPermissionResource>(context.OrderGroupsCreateRequest.DivisionId, rule); LoadCarrierIdValidationRule = new LoadCarrierIdValidationRule(context.OrderGroupsCreateRequest.LoadCarrierId, rule); NumberOfLoadsValidationRule = new NumberOfLoadsValidationRule(context, rule); LoadingLocationIdValidationRule = new LoadingLocationIdValidationRule(context.OrderGroupsCreateRequest.LoadingLocationId, rule); BaseLoadCarrierValidationRule = new BaseLoadCarrierValidationRule(context.OrderGroupsCreateRequest, rule); }
public RulesBundle(ContextModel context, IRule rule) { CustomerDivisionAuthorizationRule = new ResourceAuthorizationRule < Olma.CustomerDivision, CanReadOrderRequirement, DivisionPermissionResource>(context.OrderSearchRequest.DivisionId, rule); OrderSearchQueryRule = new OrderSearchQueryRule(context.OrderSearchRequest, rule); OrderSummaryValidRule = new OrderSummaryValidRule(context, rule); }
public RulesBundle(ContextModel context, IRule rule) { ResourceAuthorizationRule = new ResourceAuthorizationRule <Olma.LoadCarrierReceipt, CanCancelLoadCarrierReceiptRequirement, DivisionPermissionResource>(context.Parent.Id, rule) .Include(l => l.Positions) .Include(l => l.Document) .Include(l => l.PostingRequests) .Include(l => l.OrderLoadDetail); }
public RulesBundle(ContextModel context, MainRule rule) { CustomerDivisionAuthorization = new ResourceAuthorizationRule < Olma.CustomerDivision, CanCreateVoucherRequirement, DivisionPermissionResource>(context.CustomerDivisionId, parentRule: rule) .Include(i => i.PostingAccount); IssuerDivisionHasPostingAccount = new ValidOperatorRule <ContextModel>( (ctx) => ctx.Type == VoucherType.Direct, context, ctx => ctx.CustomerDivision.PostingAccount != null, new PostingAccountRequired(), parentRule: rule, nameof(IssuerDivisionHasPostingAccount)); RecipientHasDefaultPostingAccount = new ValidOperatorRule <ContextModel>( (ctx) => ctx.Type == VoucherType.Direct, context, ctx => { var repository = rule.ServiceProvider.GetService <IRepository <Olma.CustomerPartner> >(); var customerPartner = repository.FindByCondition(cp => cp.RowGuid == ctx.Parent.RecipientGuid && !cp.IsDeleted) .IgnoreQueryFilters() .Include(cp => cp.Partner).ThenInclude(p => p.DefaultPostingAccount) .FirstOrDefault(); return(customerPartner?.Partner?.DefaultPostingAccount != null); }, new RecipientHasDefaultPostingAccount(), parentRule: rule, nameof(RecipientHasDefaultPostingAccount)); PrintCountValid = new ValidOperatorRule <ContextModel>( context, ctx => ctx.PrintCount > 0, new NotAllowedByRule(), parentRule: rule, nameof(PrintCountValid)); DocumentType = new DocumentTypeRule(context, parentRule: rule); Voucher = new VoucherRule(context, parentRule: rule); LocalizationLanguageValid = new LocalizationLanguageValidRule(context.PrintLanguageId, parentRule: rule); BlacklistTerms = new BlacklistTermsRule(context, parentRule: rule); }
public RulesBundle(ContextModel context, IRule rule) { ResourceAuthorizationRule = new ResourceAuthorizationRule <Olma.Voucher, CanCancelVoucherRequirement, DivisionPermissionResource>(context.Parent.Id, rule) .Include(v => v.Positions).Include(v => v.Document); IsIssuedState = new ValidOperatorRule <ContextModel>(context, model => model.Voucher.Status == VoucherStatus.Issued, new NotIssuedState()); }
public RulesBundle(ContextModel context, MainRule rule) { CustomerDivisionAuthorizationRule = new ResourceAuthorizationRule < Olma.CustomerDivision, CanCreateLoadCarrierReceiptRequirement, DivisionPermissionResource>(context.Request.CustomerDivisionId, rule) .Include(customerDivision => customerDivision.PostingAccount); LicensePlateCountryIdRequired = new ValidOperatorRule <ContextModel>(context, model => model.Request.LicensePlateCountryId > 0, new NotAllowedByRule(), parentRule: rule, ruleName: nameof(LicensePlateCountryIdRequired)); TruckDriverNameRequired = new ValidOperatorRule <ContextModel>(context, model => !string.IsNullOrEmpty(model.Request.TruckDriverName), new NotAllowedByRule(), parentRule: rule, ruleName: nameof(TruckDriverNameRequired)); LicensePlateRequired = new ValidOperatorRule <ContextModel>(context, model => !string.IsNullOrEmpty(model.Request.LicensePlate), new NotAllowedByRule(), parentRule: rule, ruleName: nameof(LicensePlateRequired)); PositionsValid = new ValidOperatorRule <ContextModel>(context, model => model.Request.Positions.Any() && model.Request.Positions.All(p => p.Quantity > 0), new NotAllowedByRule(), parentRule: rule, ruleName: nameof(PositionsValid)); MoreInformationValid = new ValidOperatorRule <ContextModel>(context, model => { if (context.Request.DigitalCode != null) { return(true); } switch (context.Request.Type) { case LoadCarrierReceiptType.Delivery: return(!string.IsNullOrEmpty(model.Request.DeliveryNoteNumber)); case LoadCarrierReceiptType.Pickup: return(!string.IsNullOrEmpty(model.Request.PickUpNoteNumber)); case LoadCarrierReceiptType.Exchange: default: return(true); } }, new NotAllowedByRule(), parentRule: rule, ruleName: nameof(MoreInformationValid)); DigitalCodePristine = new ValidOperatorRule <ContextModel>( condition: ctx => !string.IsNullOrWhiteSpace(ctx.Request.DigitalCode), context, model => { var expressCodeRepository = rule.ServiceProvider.GetService <IRepository <Olma.ExpressCode> >(); var expressCodeExists = expressCodeRepository.FindAll() .Any(code => code.DigitalCode == context.Request.DigitalCode); if (expressCodeExists) { return(true); } var repository = rule.ServiceProvider.GetService <IRepository <Olma.LoadCarrierReceipt> >(); var exists = repository .Exists(loadCarrierReceipt => loadCarrierReceipt.DigitalCode == context.Request.DigitalCode && loadCarrierReceipt.Type == context.Request.Type && !loadCarrierReceipt.Document.State.IsCanceled); return(!exists); }, new DigitalCodeAlreadyUsed(), parentRule: rule, ruleName: nameof(DigitalCodePristine)); BlacklistTerms = new BlacklistTermsRule(context, rule); }
public RulesBundle(ContextModel context, IRule rule) { ResourceAuthorizationRule = new ResourceAuthorizationRule <Olma.Voucher, CanReadVoucherRequirement, DivisionPermissionResource>(context.Parent, rule); }
public RulesBundle(ContextModel context, IRule rule) { LoadCarrierReceiptAuthorizationRule = new ResourceAuthorizationRule <Olma.CustomerDivision, CanReadLoadCarrierReceiptRequirement, DivisionPermissionResource>(context.Request.CustomerDivisionId, rule); }
public RulesBundle(ContextModel context, IRule rule) { ExpressCodeAuthorizationRule = new ResourceAuthorizationRule <Olma.ExpressCode, CanCancelExpressCodeRequirement, DivisionPermissionResource>(context.Parent, rule); }