コード例 #1
0
        public MFCBotModel(MFCBotContext dbContext)
        {
            SectionOffices = dbContext.SectionOffice.ToList();

            Offices = dbContext.Office.Where(x => (x.IsActive != null && x.TerritoryID != null && (bool)x.IsActive) || x.Name == "Ярмарка").ToList();

            var supportedOffices = SectionOffices.Select(y => y.OfficeID);

            Offices = Offices.Where(x => supportedOffices.Contains(x.OfficeID)).ToList();

            //Services = dbContext.Service.DistinctBy(x => x.DisplayName).OrderByDescending(x => x.Priority).ToList(); // исключил услуги за ненадобностью. Оставил в коде на всякий случай
            //foreach (var item in Services)
            //{
            //    item.DisplayName = item.DisplayName.Replace("\r", "");
            //    item.DisplayName = item.DisplayName.Replace("\n", "");
            //    item.DisplayName = item.DisplayName.Replace(Environment.NewLine, "");
            //}

            AllSections = dbContext.Section.Where(x => x.IsActive).OrderByDescending(x => x.Rating).ToList();
            foreach (var item in Sections)
            {
                item.Name = item.Name.Replace("\r", "");
                item.Name = item.Name.Replace("\n", "");
                item.Name = item.Name.Replace(Environment.NewLine, "");
            }

            Texts = dbContext.BotText.ToList();
            Jokes = dbContext.BotJoke.ToList();

            WindowsOffices = dbContext.WindowsOffice.ToList();
        }
コード例 #2
0
        public MFCBotModel Update(string key, MFCBotContext dbContext)
        {
            Remove(key);
            var dataOfBot = new MFCBotModel(dbContext);

            Set(key, dataOfBot);
            return(dataOfBot);
        }
コード例 #3
0
        public MainAnswerHelper(DBHelpers.Models.MFCModels.BotUser _botUser, MFCBotContext _context, BotUserRequest _thisRequest, List <VKApiRequestModel> _requests)
        {
            context     = _context;
            botUser     = _botUser;
            thisRequest = _thisRequest;
            requests    = _requests;

            string key           = "MFCDATAOFBOT";
            var    datafromCache = cacheHelper.Get(key);

            if (datafromCache == null)
            {
                mfcDataOfBot = cacheHelper.Update(key, context);
            }
            else
            {
                mfcDataOfBot = (MFCBotModel)datafromCache;
            }

            if (botUser.NowIs != MFCBotWhatIsHappeningNow.SettingOffice)
            {
                var usersOffice = mfcDataOfBot.Offices.FirstOrDefault(x => x.AisMFCID == botUser.OfficeID);
                if (usersOffice.Name == "Ярмарка")
                {
                    usersOffice.OfficeID = 326;
                }
                //получаем все секции, которые относятся к выбранному филиалу
                mfcDataOfBot.Sections = mfcDataOfBot.AllSections.
                                        Where(x => mfcDataOfBot.SectionOffices.
                                              Where(z => z.OfficeID == usersOffice.OfficeID).
                                              Select(y => y.SectionID).Contains(x.SectionID)).DistinctBy(x => x.Name).ToList();
                //сохраняем из них только листья
                mfcDataOfBot.RetainLeafs();
            }

            sendHelper = new ApiRouter(SocialNetworkType.VK, null, botUser, requests);
            textHelper = new BotTextHelper(botUser.Locale, SocialNetworkType.VK, mfcDataOfBot.Texts);
        }