示例#1
0
 public ImageVocabularyProcessor(IImageAccessor imageAccessor)
 {
     _imageAccessor = imageAccessor;
     Vocabulary     = new Dictionary <string, Func <Session, string, string> >
     {
         { "#LocalImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, default(ImageGenre?)) },
         { "#BlogImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Blog) },
         { "#ButtImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Butt) },
         { "#ButtsImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Butt) },
         { "#BoobImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Boobs) },
         { "#BoobsImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Boobs) },
         { "#HardCoreImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Hardcore) },
         { "#SoftCoreImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Softcore) },
         { "#LesbianImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Lesbian) },
         { "#BlowjobImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.B*****b) },
         { "#FemdomImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Femdom) },
         { "#LezdomImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Lezdom) },
         { "#HentaiImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Hentai) },
         { "#GayImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Gay) },
         { "#MaledomImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Maledom) },
         { "#CaptionsImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Captions) },
         { "#LikedImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Liked) },
         { "#DislikedImageCount", (session, line) => GetImageCount(session, line, ImageSource.Local, ImageGenre.Disliked) },
     };
 }
 public DislikeImageCommandProcessor(LineService lineService
                                     , IImageAccessor imageAccessor
                                     , IMediaContainerService mediaContainerService) : base(Keyword.DislikeImage, lineService)
 {
     _imageAccessor         = imageAccessor;
     _mediaContainerService = mediaContainerService;
 }
示例#3
0
 public UpdateDocumentCommandHandler(IApplicationDbContext context, IImageAccessor imageAccessor,
                                     ICurrentUserService currentUserService, INotificationService notificationService)
 {
     _context             = context;
     _imageAccessor       = imageAccessor;
     _currentUserService  = currentUserService;
     _notificationService = notificationService;
 }
 public CreateFinancialInfoCommandHandler(IApplicationDbContext context, IImageAccessor imageAccessor,
                                          ICurrentUserService currentUserService, INotificationService notificationService)
 {
     _context             = context;
     _imageAccessor       = imageAccessor;
     _currentUserService  = currentUserService;
     _notificationService = notificationService;
 }
示例#5
0
 public Handler(
     DataContext context,
     IUserAccessor userAccessor,
     IImageAccessor imageAccessor)
 {
     _context       = context;
     _imageAccessor = imageAccessor;
     _userAccessor  = userAccessor;
 }
示例#6
0
 public static PageContextElement CreateElement(
     this OpenXmlCompositeElement openXmlComposite,
     IImageAccessor imageAccessor,
     IStyleFactory styleFactory)
 {
     return(openXmlComposite switch
     {
         Word.Paragraph p => Paragraphs.Builders.ParagraphFactory.Create(p, imageAccessor, styleFactory),
         Word.Table t => Tables.Builders.TableFactory.Create(t, imageAccessor, styleFactory),
         _ => throw new RendererException("Unhandled element")
     });
示例#7
0
 public Section(
     SectionProperties properties,
     IEnumerable <SectionContent> sectionContents,
     IImageAccessor imageAccessor,
     IStyleFactory styleFactory)
 {
     _properties    = properties;
     _imageAccessor = imageAccessor;
     _contents      = sectionContents.ToArray();
     _styleFactory  = styleFactory;
 }
示例#8
0
 public static IEnumerable <PageContextElement> CreatePageElements(
     this IEnumerable <OpenXmlCompositeElement> openXmlComposites,
     IImageAccessor imageAccessor,
     IStyleFactory styleFactory)
 {
     return(openXmlComposites
            .Select(xml =>
     {
         var e = xml.CreateElement(imageAccessor, styleFactory);
         return e;
     }));
 }
示例#9
0
        private static IEnumerable <SectionContent> SplitToSectionContents(
            this IEnumerable <OpenXml.OpenXmlCompositeElement> xmlElements,
            ColumnsConfiguration columnsConfiguration,
            IImageAccessor imageAccessor,
            IStyleFactory styleFactory)
        {
            var sectionContents = new List <SectionContent>();

            var stack           = xmlElements.ToStack();
            var contentElements = new List <OpenXml.OpenXmlCompositeElement>();

            while (stack.Count > 0)
            {
                var e = stack.Pop();
                switch (e)
                {
                case Word.Paragraph p:
                {
                    var(begin, @break, end) = p.SplitByNextBreak();
                    if (@break == SectionContentBreak.None)
                    {
                        contentElements.Add(p);
                    }
                    else
                    {
                        if (end != null)
                        {
                            stack.Push(end);
                        }

                        contentElements.Add(begin);
                        var childElements = contentElements.CreatePageElements(imageAccessor, styleFactory);
                        sectionContents.Add(new SectionContent(childElements, columnsConfiguration, @break));
                        contentElements.Clear();
                    }
                }
                break;

                default:
                    contentElements.Add(e);
                    break;
                }
            }

            if (contentElements.Count > 0)
            {
                var childElements = contentElements.CreatePageElements(imageAccessor, styleFactory);
                sectionContents.Add(new SectionContent(childElements, columnsConfiguration, SectionContentBreak.None));
            }

            return(sectionContents);
        }
 public ShowImageCommandProcessorBase(string keyword
                                      , ImageGenre imageGenre
                                      , LineService lineService
                                      , IImageAccessor imageAccessor
                                      , IRandomNumberService randomNumberService
                                      ) : base(keyword, lineService)
 {
     Keyword              = keyword;
     _lineService         = lineService;
     _imageAccessor       = imageAccessor;
     _randomNumberService = randomNumberService;
     Genre = imageGenre;
 }
示例#11
0
        public static Paragraph Create(Word.Paragraph paragraph, IImageAccessor imageAccessor, IStyleFactory styleFactory)
        {
            var paragraphStyleFactory = styleFactory.ForParagraph(paragraph.ParagraphProperties);
            var fixedDrawings         = paragraph
                                        .CreateFixedDrawingElements(imageAccessor)
                                        .OrderBy(d => d.OffsetFromParent.Y)
                                        .ToArray();

            var elements = paragraph
                           .CreateParagraphElements(imageAccessor, paragraphStyleFactory);

            return(new Paragraph(elements, fixedDrawings, paragraphStyleFactory));
        }
示例#12
0
        public FixedDrawing(
            string imageId,
            Point offsetFromParent,
            Size size,
            Margin margin,
            IImageAccessor imageAccessor)
        {
            _imageId = imageId;
            this.OffsetFromParent = offsetFromParent;
            _margin        = margin;
            _imageAccessor = imageAccessor;

            this.Size = size;
        }
示例#13
0
        public static FooterBase CreateFooter(
            this Word.Footer wordFooter,
            PageMargin pageMargin,
            IImageAccessor imageAccessor,
            IStyleFactory styleFactory)
        {
            if (wordFooter == null)
            {
                return(new NoFooter(pageMargin));
            }

            var childElements = wordFooter.RenderableChildren().CreatePageElements(imageAccessor, styleFactory);

            return(new Footer(childElements, pageMargin));
        }
示例#14
0
        public static Cell From(
            Word.TableCell wordCell,
            GridPosition gridPosition,
            IImageAccessor imageAccessor,
            IStyleFactory styleFactory)
        {
            var childs = wordCell
                         .RenderableChildren()
                         .CreatePageElements(imageAccessor, styleFactory)
                         .ToArray();

            var borderStyle = wordCell.GetBorderStyle();

            return(new Cell(childs, gridPosition, borderStyle));
        }
示例#15
0
        public static Table Create(Word.Table wordTable, IImageAccessor imageAccessor, IStyleFactory styleFactory)
        {
            var grid = wordTable.InitializeGrid();

            var cells = wordTable
                        .InitializeCells(imageAccessor, styleFactory.ForTable(wordTable.Properties()))
                        .OrderBy(c => c.GridPosition.Row)
                        .ThenBy(c => c.GridPosition.Column)
                        .ToArray();

            var tableBorder = wordTable
                              .Properties()
                              .TableBorders
                              .GetBorder();

            return(new Table(cells, grid, tableBorder));
        }
示例#16
0
        public static IEnumerable <Cell> InitializeCells(
            this Word.Table table,
            IImageAccessor imageAccessor,
            IStyleFactory styleFactory)
        {
            var spans = table.PrepareCellSpans();
            var cells = table
                        .Rows()
                        .SelectMany((row, index) =>
            {
                var rowCells = row.InitializeCells(index, spans, imageAccessor, styleFactory);
                return(rowCells);
            })
                        .Where(c => !c.GridPosition.IsRowMergedCell)
                        .ToArray();

            return(cells);
        }
示例#17
0
        private static IEnumerable <Cell> InitializeCells(
            this Word.TableRow row,
            int rowIndex,
            List <GridSpanInfo[]> spans,
            IImageAccessor imageAccessor,
            IStyleFactory styleFactory)
        {
            var cells = row
                        .Cells()
                        .Select((cell, index) =>
            {
                var gridPosition = GetCellGridPosition(rowIndex, index, spans);
                var c            = Cell.From(cell, gridPosition, imageAccessor, styleFactory);
                return(c);
            })
                        .ToArray();

            return(cells);
        }
 public GetCommandProcessorsService(IScriptAccessor scriptAccessor
                                    , IFlagAccessor flagAccessor
                                    , LineService lineService
                                    , IImageAccessor imageAccessor
                                    , IVideoAccessor videoAccessor
                                    , IVariableAccessor variableAccessor
                                    , ITauntAccessor tauntAccessor
                                    , IConfigurationAccessor configurationAccessor
                                    , IRandomNumberService randomNumberService
                                    , INotifyUser notifyUser
                                    , ISettingsAccessor settingsAccessor
                                    , IPathsAccessor pathsAccessor
                                    , IBookmarkService bookmarkService
                                    , IMediaContainerService mediaContainerService
                                    , ITimeService timeService
                                    , ILineCollectionFilter lineCollectionFilter
                                    , IVitalSubService vitalSubService
                                    , IConditionalObjectLogic conditionalObjectLogic
                                    , IVocabularyProcessor sessionVocabularyProcessor
                                    )
 {
     _scriptAccessor             = scriptAccessor;
     _flagAccessor               = flagAccessor;
     _lineService                = lineService;
     _imageAccessor              = imageAccessor;
     _videoAccessor              = videoAccessor;
     _variableAccessor           = variableAccessor;
     _tauntAccessor              = tauntAccessor;
     _configurationAccessor      = configurationAccessor;
     _randomNumberService        = randomNumberService;
     _notifyUser                 = notifyUser;
     _settingsAccessor           = settingsAccessor;
     _pathsAccessor              = pathsAccessor;
     _bookmarkService            = bookmarkService;
     _mediaContainerService      = mediaContainerService;
     _timeService                = timeService;
     _lineCollectionFilter       = lineCollectionFilter;
     _vitalSubService            = vitalSubService;
     _conditionalObjectLogic     = conditionalObjectLogic;
     _sessionVocabularyProcessor = sessionVocabularyProcessor;
 }
        private static IEnumerable <LineElement> CreateParagraphElements(
            this Word.Run run,
            IImageAccessor imageAccessor,
            IStyleFactory styleAccessor)
        {
            var textStyle = styleAccessor.EffectiveTextStyle(run.RunProperties);

            var elements = run
                           .ChildElements
                           .Where(c => c is Word.Text || c is Word.TabChar || c is Word.Drawing || c is Word.Break || c is Word.CarriageReturn)
                           .SelectMany(c => {
                return(c switch
                {
                    Word.Text t => t.SplitTextToElements(textStyle),
                    Word.TabChar t => new LineElement[] { new TabElement(textStyle) },
                    Word.Drawing d => d.CreateInlineDrawing(imageAccessor),
                    Word.CarriageReturn _ => new LineElement[] { new NewLineElement(textStyle) },
                    Word.Break b => b.CreateBreakElement(textStyle),
                    _ => throw new RendererException("unprocessed child")
                });
            })
        public static IEnumerable <LineElement> CreateParagraphElements(
            this Word.Paragraph paragraph,
            IImageAccessor imageAccessor,
            IStyleFactory styleFactory)
        {
            var runs = paragraph
                       .SelectRuns()
                       .ToStack();

            var elements = new List <LineElement>();

            while (runs.Count > 0)
            {
                var run = runs.Pop();
                if (run.IsFieldStart())
                {
                    var fieldRuns = new List <Word.Run> {
                        run
                    };
                    do
                    {
                        run = runs.Pop();
                        fieldRuns.Add(run);
                    } while (!run.IsFieldEnd());

                    var field = fieldRuns.CreateField(styleFactory);
                    elements.Add(field);
                }
                else
                {
                    var runElements = run.CreateParagraphElements(imageAccessor, styleFactory);
                    elements.AddRange(runElements);
                }
            }

            return(elements.Union(new[] { ParagraphCharElement.Create(styleFactory.TextStyle) }));
        }
        public static IEnumerable <FixedDrawing> CreateFixedDrawingElements(this Word.Paragraph paragraph, IImageAccessor imageAccessor)
        {
            var drawings = paragraph
                           .Descendants <Word.Drawing>()
                           .Where(d => d.Anchor != null)
                           .Select(d => d.Anchor.ToFixedDrawing(imageAccessor))
                           .ToArray();

            return(drawings);
        }
示例#22
0
 public Handler(DatabaseContext databaseContext, IUserAccessor userAccessor, IImageAccessor imageAccessor)
 {
     _databaseContext = databaseContext;
     _userAccessor    = userAccessor;
     _imageAccessor   = imageAccessor;
 }
示例#23
0
 public ShowBlowjobImageCommandProcessor(IImageAccessor imageAccessor
                                         , LineService lineService
                                         , IRandomNumberService randomNumberService) : base(Common.Constants.Keyword.ShowBlowjobImage, ImageGenre.B*****b, lineService, imageAccessor, randomNumberService)
 {
 }
示例#24
0
 public ShowImageCommandProcessor(IImageAccessor imageAccessor
                                  , LineService lineService
                                  , IRandomNumberService randomNumberService) : base(Keyword.ShowImage, lineService)
 {
     _imageAccessor = imageAccessor;
 }
示例#25
0
 public SearchImageBlogCommandProcessor(IImageAccessor imageAccessor)
 {
     _imageAccessor = imageAccessor;
 }
示例#26
0
        public VocabularyProcessor(ILineCollectionFilter lineCollectionFilter
                                   , LineService lineService
                                   , IVocabularyAccessor vocabularyAccessor
                                   , IImageAccessor imageAccessor
                                   , IRandomNumberService randomNumberService
                                   , ISettingsAccessor settingsAccessor
                                   )
        {
            var settings = settingsAccessor.GetSettings();

            _lineCollectionFilter = lineCollectionFilter;
            _lineService          = lineService;
            _vocabularyAccessor   = vocabularyAccessor;
            _vocabularyProcessors = new List <IVocabularyProcessor>
            {
                new ImageVocabularyProcessor(imageAccessor),
                new RandomVocabularyProcessor(lineService, randomNumberService),
                new SessionVocabularyProcessor(),
                new SettingsVocabularyProcessor(settingsAccessor)
            };
            _codeVocabulary = new Dictionary <string, Func <string, Session, string> >
            {
                { "#DommeName", (line, session) => line.Replace("#DommeName", session.Domme.Name) },
                { "#DomAge", (line, session) => line.Replace("#DomAge", session.Domme.Age.ToString()) },
                { "#DomApathy", (line, session) => line.Replace("#DomApathy", session.Domme.ApathyLevel.ToString()) },
                { "#DomAvgCockMin", (line, session) => line.Replace("#DomAvgCockMin", session.Domme.CockSmallLimit.ToString()) },
                { "#DomAvgCockMax", (line, session) => line.Replace("#DomAvgCockMax", session.Domme.CockBigLimit.ToString()) },
                { "#DomBirthdayMonth", (line, session) => line.Replace("#DomBirthdayMonth", session.Domme.BirthDay.ToString("MMMM")) },
                { "#DomBirthdayDay", (line, session) => line.Replace("#DomBirthdayDay", session.Domme.BirthDay.Day.ToString()) },
                { "#DomCup", (line, session) => line.Replace("#DomCup", session.Domme.CupSize.ToString()) },
                { "#DomEyes", (line, session) => line.Replace("#DomEyes", session.Domme.EyeColor) },
                { "#DomHair", (line, session) => line.Replace("#DomHair", session.Domme.HairColor) },
                { "#DomHairLength", (line, session) => line.Replace("#DomHairLength", session.Domme.HairLength.ToString()) },
                { "#DomHonorific", (line, session) => line.Replace("#DomHonorific", session.Domme.Honorific) },
                { "#DomLargeCockMin", (line, session) => line.Replace("#DomLargeCockMin", (session.Domme.CockBigLimit + 1).ToString()) },
                { "#DomLevel", (line, session) => line.Replace("#DomLevel", session.Domme.DomLevel.ToString()) },
                { "#DomMood", (line, session) => line.Replace("#DomMood", session.Domme.MoodLevel.ToString()) },
                { "#DomMoodMax", (line, session) => line.Replace("#DomMoodMax", session.Domme.MoodHappy.ToString()) },
                { "#DomMoodMin", (line, session) => line.Replace("#DomMoodMin", session.Domme.MoodAngry.ToString()) },
                { "#DomName", (line, session) => line.Replace("#DomName", session.Domme.Name) },
                { "#DomOrgasmRate", (line, session) => line.Replace("#DomOrgasmRate", "allow " + session.Domme.AllowsOrgasms.ToString().ToLower()) },
                { "#DomRuinRate", (line, session) => line.Replace("#DomRuinRate", "ruin " + session.Domme.RuinsOrgasms.ToString().ToLower()) },
                { "#DomSelfAgeMax", (line, session) => line.Replace("#DomSelfAgeMax", session.Domme.AgeOldLimit.ToString()) },
                { "#DomSelfAgeMin", (line, session) => line.Replace("#DomSelfAgeMin", session.Domme.AgeYoungLimit.ToString()) },
                { "#DomSmallCockMax", (line, session) => line.Replace("#DomSmallCockMax", (session.Domme.CockSmallLimit - 1).ToString()) },
                { "#DomSubAgeMax", (line, session) => line.Replace("#DomSubAgeMax", session.Domme.SubAgeOldLimit.ToString()) },
                { "#DomSubAgeMin", (line, session) => line.Replace("#DomSubAgeMin", session.Domme.SubAgeYoungLimit.ToString()) },

                { "#GreetSub", (line, session) => line.Replace("#GreetSub", GetGreetingReplacement(DateTime.Now)) },
                { "#EdgeTaunt", (line, session) => line.Replace("#EdgeTaunt", GetEdgeTaunt(session)) },
                { "#PetName", GetPetName },

                { "#SubName", (line, session) => line.Replace("#SubName", session.Sub.Name) },
                { "#SubAge", (line, session) => line.Replace("#SubAge", session.Sub.Age.ToString()) },
                { "#SubBirthdayMonth", (line, session) => line.Replace("#SubBirthdayMonth", session.Sub.Birthday.ToString("MMMM")) },
                { "#SubBirthdayDay", (line, session) => line.Replace("#SubBirthdayDay", session.Sub.Birthday.Day.ToString()) },
                { "#SubCockSize", (line, session) => line.Replace("#SubCockSize", session.Sub.CockSize.ToString()) },
                { "#SubEyes", (line, session) => line.Replace("#SubEyes", session.Sub.EyeColor) },
                { "#SubHair", (line, session) => line.Replace("#SubHair", session.Sub.HairColor) },
                { "#SubWritingTaskMax", (line, session) => line.Replace("#SubWritingTaskMax", session.Sub.WritingTaskMax.ToString()) },
                { "#SubWritingTaskMin", (line, session) => line.Replace("#SubWritingTaskMin", session.Sub.WritingTaskMin.ToString()) },

                { "#ShortName", (line, session) => line.Replace("#ShortName", settings.Domme.GlitterContactName) },
                { "#GlitterContact1", (line, session) => line.Replace("#GlitterContact1", session.Glitter[0].Name) },
                { "#Contact1", (line, session) => line.Replace("#Contact1", session.Glitter[0].Name) },
                { "#GlitterContact2", (line, session) => line.Replace("#GlitterContact2", session.Glitter[1].Name) },
                { "#Contact2", (line, session) => line.Replace("#Contact2", session.Glitter[1].Name) },
                { "#GlitterContact3", (line, session) => line.Replace("#GlitterContact3", session.Glitter[2].Name) },
                { "#Contact3", (line, session) => line.Replace("#Contact3", session.Glitter[2].Name) },
                { "#GlitterContact4", (line, session) => line.Replace("#GlitterContact4", session.Glitter[3].Name) },
                { "#Contact4", (line, session) => line.Replace("#Contact4", session.Glitter[3].Name) },

                //{ "#CBTCockCount", (line, session) => line.Replace("#CBTCockCount", session.CbtCockCount) },
                //{ "#CBTBallsCount", (line, session) => line.Replace("#CBTBallsCount", session.CbtBallsCount) },

                //{ "#OrgasmLockDate",  (line, session) => session.Sub.IsOrgasmRestricted ? line.Replace("#OrgasmLockDate", "#CockToClit") :"#C**k" },
                { "#C**k", (line, session) => line.Replace("#C**k", session.Sub.CallCockAClit ? "#CockToClit" :"#C**k") },
                { "stroking", (line, session) => session.Sub.CallCockAClit ? line.Replace("stroking", "#StrokingToRubbing") :"stroking" },
                { "#Balls", (line, session) => session.Sub.CallBallsAPussy ? line.Replace("#Balls", "#BallsToPussy") :"#Balls" },
                { "those #Balls", (line, session) => session.Sub.CallBallsAPussy ? line.Replace("those #Balls", "that #BallsToPussy") :"those #Balls" },
                { "#SessionEdges", (line, session) => line.Replace("#SessionEdges", session.Sub.EdgeCount.ToString()) },
                // Not sure if this is torture level or how many times it's been done
                { "#SessionCBTCock", (line, session) => line.Replace("#SessionCBTCock", session.Sub.CockTortureLevel.ToString()) },
                { "#SessionCBTBalls", (line, session) => line.Replace("#SessionCBTBalls", session.Sub.BallsTortureLevel.ToString()) },
                { "#GeneralTime", (line, session) => line.Replace("#GeneralTime", GetGeneralTime(DateTime.Now)) },
                { "#CurrentTime", (line, session) => line.Replace("#CurrentTime", DateTime.Now.ToString("h:mm")) },
                { "#CurrentDay", (line, session) => line.Replace("#CurrentDay", DateTime.Now.ToString("dddd")) },
                { "#CurrentMonth", (line, session) => line.Replace("#CurrentMonth", DateTime.Now.ToString("MMMMM")) },
                { "#CurrentYear", (line, session) => line.Replace("#CurrentYear", DateTime.Now.ToString("yyyy")) },
                { "#CurrentDate", (line, session) => line.Replace("#CurrentDate", DateTime.Now.ToShortDateString()) },
                { "#RP_CaseNumber", (line, session) => line.Replace("#RP_CaseNumber", session.GameBoard.SelectedCases.LastOrDefault().ToString()) },
                { "#RP_EdgeOffer", (line, session) => line.Replace("#RP_EdgeOffer", (session.GameBoard.Offer?.Edges).GetValueOrDefault().ToString()) },
                { "#RP_TokenOffer", (line, session) => line.Replace("#RP_TokenOffer", (session.GameBoard.Offer?.Tokens).GetValueOrDefault().ToString()) },
                { "#RP_RespondCase", (line, session) => line.Replace("#RP_RespondCase", session.GameBoard.LastSelectedCase?.ToString() ?? string.Empty) },
            };
        }
示例#27
0
 public void Initialize()
 {
     _imageAccessor = TrueFake.Of <IImageAccessor>();
     _service       = new ShowHardcoreImageCommandProcessor(_imageAccessor, new Services.LineService(), new Services.RandomNumberService());
     _session       = new Session(new DommePersonality(), new SubPersonality());
 }
示例#28
0
 public Handler(DataContext context, IImageAccessor imageAccessor)
 {
     _imageAccessor = imageAccessor;
     _context       = context;
 }
示例#29
0
        public SessionEngine(ISettingsAccessor settingsAccessor
                             , IStringService stringService
                             , IScriptAccessor scriptAccessor
                             , ITimerFactory timerFactory
                             , IFlagAccessor flagAccessor
                             , IImageAccessor imageAccessor
                             , IVideoAccessor videoAccessor
                             , IVariableAccessor variableAccessor
                             , ITauntAccessor tauntAccessor
                             , ISystemVocabularyAccessor systemVocabularyAccessor
                             , IVocabularyAccessor vocabularyAccessor
                             , ILineCollectionFilter lineCollectionFilter
                             , IRandomNumberService randomNumberService
                             , IConfigurationAccessor configurationAccessor
                             , INotifyUser notifyUser
                             , IPathsAccessor pathsAccessor
                             , IGetCommandProcessorsService getCommandProcessorsService
                             , IInterpolationProcessor interpolationProcessor
                             )
        {
            CommandProcessors = getCommandProcessorsService.CreateCommandProcessors();

            CommandProcessors[Keyword.StartStroking].CommandProcessed += StartStrokingCommandProcessed;
            CommandProcessors[Keyword.Edge].CommandProcessed          += EdgeCommandProcessed;
            CommandProcessors[Keyword.End].CommandProcessed           += EndCommandProcessed;
            CommandProcessors[Keyword.TauntFromFile].CommandProcessed += TauntFromFileCommandProcessed;

            CommandProcessors[Keyword.ShowImage].CommandProcessed         += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowButtImage].CommandProcessed     += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowBoobsImage].CommandProcessed    += ShowImageCommandProcessed;
            CommandProcessors[Keyword.SearchImageBlog].CommandProcessed   += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowHardcoreImage].CommandProcessed += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowSoftcoreImage].CommandProcessed += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowLesbianImage].CommandProcessed  += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowBlowjobImage].CommandProcessed  += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowFemdomImage].CommandProcessed   += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowLezdomImage].CommandProcessed   += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowHentaiImage].CommandProcessed   += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowGayImage].CommandProcessed      += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowMaledomImage].CommandProcessed  += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowCaptionsImage].CommandProcessed += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowGeneralImage].CommandProcessed  += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowLikedImage].CommandProcessed    += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowDislikedImage].CommandProcessed += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowBlogImage].CommandProcessed     += ShowImageCommandProcessed;
            CommandProcessors[Keyword.NewBlogImage].CommandProcessed      += ShowImageCommandProcessed;
            CommandProcessors[Keyword.ShowLocalImage].CommandProcessed    += ShowImageCommandProcessed;

            CommandProcessors[Keyword.PlayVideo].CommandProcessed              += PlayVideoCommandProcessed;
            CommandProcessors[Keyword.PlayJoiVideo].CommandProcessed           += PlayVideoCommandProcessed;
            CommandProcessors[Keyword.PlayCockHeroVideo].CommandProcessed      += PlayVideoCommandProcessed;
            CommandProcessors[Keyword.PlayCensorshipSucks].CommandProcessed    += PlayCensorshipSucksVideoTauntCommandProcessed;
            CommandProcessors[Keyword.PlayRedLightGreenLight].CommandProcessed += PlayRedLightGreenLightVideoTauntCommandProcessed;
            CommandProcessors[Keyword.StopVideo].CommandProcessed              += StopVideoCommandProcessed;
            CommandProcessors[Keyword.PauseVideo].CommandProcessed             += PauseVideoCommandProcessed;
            CommandProcessors[Keyword.UnpauseVideo].CommandProcessed           += UnpauseVideoCommandProcessed;
            CommandProcessors[Keyword.ShowCensorshipBar].CommandProcessed      += ShowCensorshipBarCommandProcessed;
            CommandProcessors[Keyword.HideCensorshipBar].CommandProcessed      += HideCensorshipBarCommandProcessed;

            CommandProcessors[Keyword.SendDailyTasks].CommandProcessed     += RequestTaskCommandProcessed;
            CommandProcessors[Keyword.VitalSubAssignment].CommandProcessed += VitalSubAssignmentCommandProcessed;

            MessageProcessors = CreateMessageProcessors(settingsAccessor, stringService, new LineService(), systemVocabularyAccessor, variableAccessor, new RandomNumberService());

            MessageProcessors[MessageProcessor.ScriptResponse].MessageProcessed += ScriptResponse_MessageProcessed;
            MessageProcessors[MessageProcessor.EdgeDetection].MessageProcessed  += EdgeDetection_MessageProcessed;

            CommandProcessors[Keyword.RiskyPickStart].CommandProcessed += RiskyPickStartCommandProcessed;

            CommandProcessors[Keyword.LikeImage].BeforeCommandProcessed += LikeImageCommandProcessed;

            _scriptAccessor        = scriptAccessor;
            _variableAccessor      = variableAccessor;
            _configurationAccessor = configurationAccessor;
            _scriptTimer           = timerFactory.Create();
            _scriptTimer.Elapsed  += _scriptTimer_Elapsed;

            _tauntTimer          = timerFactory.Create();
            _tauntTimer.Elapsed += _tauntTimer_Elapsed;

            _teaseCountDown          = timerFactory.Create();
            _teaseCountDown.Elapsed += _teaseCountDown_Elapsed;

            _vocabularyProcesser    = new VocabularyProcessor(lineCollectionFilter, new LineService(), vocabularyAccessor, imageAccessor, randomNumberService, settingsAccessor);
            _interpolationProcessor = interpolationProcessor;
        }
示例#30
0
 // size defined in document
 public InilineDrawing(string imageId, Size size, IImageAccessor imageAccessor)
 {
     _imageId       = imageId;
     _imageAccessor = imageAccessor;
     this.Size      = size;
 }