예제 #1
0
        private CoreLogic coreLogic; // the server logic instance


        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        public Manager()
        {
            log       = LogStub.Instance;
            coreLogic = null;
            AppDirs   = new ServerDirs();
            AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
        }
예제 #2
0
        private readonly ServerCache serverCache;     // the server level cache


        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        public ServerListener(CoreLogic coreLogic, ArchiveHolder archiveHolder, ServerCache serverCache)
            : base(coreLogic?.Config.ListenerOptions, coreLogic?.Log)
        {
            this.coreLogic     = coreLogic ?? throw new ArgumentNullException(nameof(coreLogic));
            this.archiveHolder = archiveHolder ?? throw new ArgumentNullException(nameof(archiveHolder));
            this.serverCache   = serverCache ?? throw new ArgumentNullException(nameof(serverCache));
        }
예제 #3
0
        public ActionResult OnPost(MajorType major, string name)
        {
            Hero      = GetHeroFromCookies(major);
            Hero.Name = name;
            SaveHeroToCookies(Hero);
            var result = CoreLogic.EncodeHero(Hero, major);

            return(CustomRedirect(SitePages.SharedMajorHeroSheet, new { cookie = true }));
        }
예제 #4
0
파일: Manager.cs 프로젝트: wuchang/scada-v6
        /// <summary>
        /// Starts the service.
        /// </summary>
        public bool StartService()
        {
#if DEBUG
            System.Diagnostics.Debugger.Launch();
#endif

            string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            AppDirs.Init(exeDir);

            LogFile logFile = new LogFile(LogFormat.Full, Path.Combine(AppDirs.LogDir, ServerUtils.LogFileName))
            {
                Capacity = int.MaxValue
            };

            log = logFile;
            log.WriteBreak();

            if (!Locale.LoadCulture(Path.Combine(exeDir, "..", "Config", InstanceConfig.DefaultFileName),
                                    out string errMsg))
            {
                log.WriteError(errMsg);
            }

            log.WriteAction(Locale.IsRussian ?
                            "Сервер {0} запущен" :
                            "Server {0} started", ServerUtils.AppVersion);

            if (AppDirs.CheckExistence(out errMsg))
            {
                LocalizeApp(AppDirs.LangDir);
                string       configFileName = Path.Combine(AppDirs.ConfigDir, ServerConfig.DefaultFileName);
                ServerConfig config         = new ServerConfig();
                coreLogic = new CoreLogic(config, AppDirs, log);

                if (config.Load(configFileName, out errMsg) &&
                    coreLogic.StartProcessing())
                {
                    logFile.Capacity = config.GeneralOptions.MaxLogSize;
                    return(true);
                }
                else if (!string.IsNullOrEmpty(errMsg))
                {
                    log.WriteError(errMsg);
                }
            }
            else
            {
                log.WriteError(errMsg);
            }

            log.WriteError(CommonPhrases.ExecutionImpossible);
            return(false);
        }
예제 #5
0
        public ActionResult Image()
        {
            Random random       = new Random();
            var    randomNumber = random.Next(1000, 9999);


            var df = CoreLogic.GetBytes(randomNumber.ToString());

            Request.HttpContext.Session.Set("captcha", df);
            var captcha = App_Code.CaptchaImage.GenerateImage(randomNumber.ToString(), 80, 150, 30);
            var jpeg    = new FileContentResult(captcha.ToArray(), "image/jpeg");

            return(jpeg);
        }
예제 #6
0
    public Test()
    {
        tempBCB = new BroadcastBlock <List <InputObject> >(input => input);

        //here batch size = 2
        batchBlock = new BatchBlock <Tuple <List <InputObject>, Dictionary <int, IntermediateObject> > >(2, new GroupingDataflowBlockOptions {
            Greedy = false
        });
        transformBlock = new TransformBlock <Tuple <List <InputObject>, Dictionary <int, IntermediateObject> >[], List <FinalObject> >(array =>
        {
            List <InputObject> inputObjects = array[0].Item1;
            List <FinalObject> ret          = inputObjects.ConvertAll(x => new FinalObject(x));
            foreach (var tuple in array)
            {
                //iterate over each individual object
                foreach (var dictionary in tuple.Item2)
                {
                    ret[dictionary.Key].outputList.Add(dictionary.Value);
                }
            }
            return(ret);
        });
        int counter = 0;

        justToFlushTransformBlock = new ActionBlock <List <FinalObject> >(list =>
        {
            counter++;
            Console.WriteLine("item #" + counter);
            //just in order to accept items from the transformBlock output queue
        });
        //Generate 2 CoreLogic objects
        core1 = new CoreLogic();
        core2 = new CoreLogic();
        //linking
        tempBCB.LinkTo(core1.transformBlock, new DataflowLinkOptions {
            PropagateCompletion = true
        });
        tempBCB.LinkTo(core2.transformBlock, new DataflowLinkOptions {
            PropagateCompletion = true
        });
        core1.transformBlock.LinkTo(batchBlock);
        core2.transformBlock.LinkTo(batchBlock);
        batchBlock.LinkTo(transformBlock, new DataflowLinkOptions {
            PropagateCompletion = true
        });
        transformBlock.LinkTo(justToFlushTransformBlock, new DataflowLinkOptions {
            PropagateCompletion = true
        });
    }
        //логин
        public JsonResult LogIn(string login, string pass)
        {
            var res = CoreLogic.securityManager.checkUser(login, pass);

            if (res.Item1)
            {
                int usid = res.Item2.Id;
                var bid  = CoreLogic.ConvertVal(usid);
                if (Request != null)
                {
                    Request.HttpContext.Session.Set("UsId", bid);
                }
            }
            return(Json(res.Item1));
        }
예제 #8
0
        public JsonResult Get(int id)
        {
            SecurityManager sm = new SecurityManager();

            CoreLogic cr = new CoreLogic();

            ClassifierManager clsm = new ClassifierManager();


            //var clases5 = clsm.GetClassifier_rel(100);
            var        clases = clsm.GetClassifiers();
            Classifier cls    = clsm.GetClassifier(101);

            return(Json(cls));
        }
        /// <summary>
        /// заявка на регистрацию нового пользователя
        /// </summary>
        /// <returns></returns>
        public JsonResult RegistryNewUser([FromBody] object json)
        {
            JSEnvelope ret = new JSEnvelope();

            try
            {
                byte[] bb;
                string ds     = "";
                bool   capres = false;
                var    Us     = JsonConvert.DeserializeObject <User>(json.ToString());
                if (Request.HttpContext.Session.Keys.Contains("captcha"))
                {
                    Request.HttpContext.Session.TryGetValue("captcha", out bb);
                    ds = CoreLogic.GetString(bb);
                    if (Us.captcha == ds)
                    {
                        capres = true;
                    }
                }
                if (capres)
                {
                    var res = CoreLogic.securityManager.RegisterNewUser(Us);
                    ret.ReturnObject        = res;
                    ret.Message.MessageText = res;
                    ret.Message.MessageCode = "-1";
                }
                else
                {
                    ret.Message.IsError     = false;
                    ret.Message.MessageText = "Неверно введены символы с картинки.";
                    ret.Message.MessageCode = "-1";
                }
            }
            catch (E24Exception e)
            {
                ret.Message.IsError     = true;
                ret.Message.MessageText = e.Message;
                ret.Message.MessageCode = e.ExceptionCode.ToString();
            }
            catch (Exception e)

            {
                ret.Message.IsError     = true;
                ret.Message.MessageText = e.Message;
            }

            return(Json(ret));
        }
예제 #10
0
        /*********
        ** Public methods
        *********/
        /// <summary>The mod entry point, called after the mod is first loaded.</summary>
        /// <param name="helper">Provides methods for interacting with the mod directory, such as read/writing a config file or custom JSON files.</param>
        public override void Entry(IModHelper helper)
        {
            // initialize fields
            Instance = this;
            log      = new(this);
            UID      = ModManifest.UniqueID;

            // load config
            Config = Helper.ReadConfig <ModConfig>();
            ModConfig.VerifyConfigValues(Config, Instance);

            // hook events
            Helper.Events.GameLoop.GameLaunched += OnGameLaunched;
            Helper.Events.GameLoop.SaveLoaded   += OnSaveLoaded;
            Helper.Events.GameLoop.DayStarted   += delegate { CoreLogic.IncreaseTreeAges(); };
        }
        public IActionResult ChangeFogPassword(string id, string pass, string cacpture)
        {
            JSEnvelope ret   = new JSEnvelope();
            var        model = new Model.RememberPasswordModel()
            {
                UserId = id
            };

            try
            {
                byte[] bb;
                string ds     = "";
                bool   capres = false;
                if (Request.HttpContext.Session.Keys.Contains("captcha"))
                {
                    Request.HttpContext.Session.TryGetValue("captcha", out bb);
                    ds = CoreLogic.GetString(bb);
                    if (cacpture == ds)
                    {
                        capres = true;
                    }
                }
                if (capres)
                {
                    var res = CoreLogic.securityManager.changePass(id, pass);
                    return(View("../Home/Login"));
                }
                else
                {
                    model.Message = "Ошибка! Неверно введены символы с картинки.";
                    return(View("../Home/ChangePassReq", model));
                }
            }
            catch (E24Exception e)
            {
                model.Message = "Ошибка! " + e.Message;
                return(View("../Home/ChangePassReq", model));
            }
            catch (Exception e)
            {
                model.Message = "Ошибка! " + e.Message;
                return(View("../Home/ChangePassReq", model));
            }
        }
예제 #12
0
        public IActionResult Login(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                var res = CoreLogic.securityManager.checkUser(model.Username, model.Password);
                if (res.Item1)
                {
                    int    usid   = res.Item2.Id;
                    var    bid    = CoreLogic.ConvertVal(usid);
                    string sessid = HttpContext.Session.Id;
                    HttpContext.Session.Set("userInfo", bid);
                    ModelState.Clear();
                    return(Redirect(Url.Content("~/")));
                }
            }

            ModelState.AddModelError("", "Неверный логин или пароль");
            return(View(model));
        }
예제 #13
0
        public JsonResult SetReportParams(string dates, string datef, int classid, int valueid)
        {
            JSEnvelope ret = new JSEnvelope();

            ret.ReturnObject = false;
            try
            {
                if (Request != null)
                {
                    if (dates != null && datef != null)
                    {
                        var cid = CoreLogic.ConvertVal(classid);
                        var vid = CoreLogic.ConvertVal(valueid);
                        var ds  = CoreLogic.GetBytes(dates);
                        var df  = CoreLogic.GetBytes(datef);
                        Request.HttpContext.Session.Set("report_dates", ds);
                        Request.HttpContext.Session.Set("report_datef", df);
                        Request.HttpContext.Session.Set("report_classid", cid);
                        Request.HttpContext.Session.Set("report_valueid", vid);
                        ret.ReturnObject = true;
                    }
                    else
                    {
                        ret.ReturnObject = false;
                    }
                }
            }
            catch (E24Exception e)
            {
                ret.Message.IsError     = true;
                ret.Message.MessageText = e.Message;
                ret.Message.MessageCode = e.ExceptionCode.ToString();
            }
            catch (Exception e)
            {
                ret.Message.IsError     = true;
                ret.Message.MessageText = e.Message;
            }

            return(Json(ret));
        }
        // private static ISession  _Req;
        public static int CurUserId(HttpRequest Req = null)
        {
            byte[] bb;
            int    ug = 1;


            if (Req.HttpContext.Session.Keys.Contains("userInfo"))
            {
                string sessid = Req.HttpContext.Session.Id;
                Req.HttpContext.Session.TryGetValue("userInfo", out bb);
                ug = CoreLogic.ConvertiByte(bb);
                return(ug);
            }
            else
            {
                E24Exception e = new E24Exception("Сессия пользователя устарела.", 5001);

                throw e;
            }

            return(-1);
        }
예제 #15
0
        private void OnSaveLoaded(object sender, SaveLoadedEventArgs e)
        {
            if (!Context.IsMainPlayer)
            {
                return;
            }

            ModData data = CoreLogic.GetData() ?? new();

            if (!data.VanillaTappersConverted)
            {
                int s = 0;
                int f = 0;
                foreach (GameLocation location in Game1.locations)
                {
                    foreach (SObject o in location.Objects.Values.ToList())//foreach (KeyValuePair<Vector2, SObject> entry in location.Objects)
                    {
                        if (o is Tapper)
                        {
                            if (CoreLogic.ConvertToNormalTappers(o, location) is not Tapper)
                            {
                                s++;
                            }
                            else
                            {
                                f++;
                            }
                        }
                    }
                }
                log.W("Successful conversions: " + s + "    failures: " + f);

                if (f == 0)
                {
                    data.VanillaTappersConverted = true;
                }
                CoreLogic.SaveData(data);
            }
        }
예제 #16
0
    //    AudioSource		rightChargedAudioSource;
    void Start()
    {
        CoreLogicScript = GameObject.Find ("CoreLogic").GetComponent<CoreLogic> ();

                if (CoreLogicScript.difficulty == 0)
                        ammo += 200.0f;
                else if (CoreLogicScript.difficulty == 1)
                        ammo += 20.0f;

                //script = statusTextBar.GetComponent<TextRenderScript>();
                sources = gameObject.GetComponents<AudioSource> ();
                sources [0].pitch = 1.2f;

                GameObject leftOuterCore = leftChargingFire.transform.Find ("FireballOuterCore").gameObject;
                leftChargingEmitter = leftOuterCore.GetComponent<ParticleEmitter> ();
                //leftChargingAudioSource = leftOuterCore.GetComponent<AudioSource> ();

                GameObject leftInnerCore = leftChargedFire.transform.Find ("InnerCore").gameObject;
                leftChargedEmitter = leftInnerCore.GetComponent<ParticleEmitter> ();
                //leftChargedAudioSource = leftInnerCore.GetComponent<AudioSource> ();

                GameObject rightOuterCore = rightChargingFire.transform.Find ("FireballOuterCore").gameObject;
                rightChargingEmitter = rightOuterCore.GetComponent<ParticleEmitter> ();
                //rightChargingAudioSource = rightOuterCore.GetComponent<AudioSource> ();

                GameObject rightInnerCore = rightChargedFire.transform.Find ("InnerCore").gameObject;
                rightChargedEmitter = rightInnerCore.GetComponent<ParticleEmitter> ();
                //rightChargedAudioSource = rightInnerCore.GetComponent<AudioSource> ();
    }
예제 #17
0
        /// <summary>
        /// Starts the service.
        /// </summary>
        public bool StartService()
        {
#if DEBUG
            System.Diagnostics.Debugger.Launch();
#endif

            // load instance configuration
            AppDirs.Init(Assembly.GetExecutingAssembly());
            InstanceConfig instanceConfig = new InstanceConfig();
            Locale.SetCultureToEnglish();

            if (instanceConfig.Load(InstanceConfig.GetConfigFileName(AppDirs.InstanceDir), out string errMsg))
            {
                Locale.SetCulture(instanceConfig.Culture);
                AppDirs.UpdateLogDir(instanceConfig.LogDir);
            }
            else
            {
                Console.WriteLine(errMsg);
                Locale.SetCultureToDefault();
            }

            // initialize log
            LogFile logFile = new LogFile(LogFormat.Full, Path.Combine(AppDirs.LogDir, ServerUtils.LogFileName))
            {
                Capacity = int.MaxValue
            };

            log = logFile;
            log.WriteBreak();

            // prepare to start service
            log.WriteAction(Locale.IsRussian ?
                            "Сервер {0} запущен" :
                            "Server {0} started", EngineUtils.AppVersion);

            storageWrapper = new StorageWrapper(new StorageContext
            {
                App     = ServiceApp.Server,
                AppDirs = AppDirs,
                Log     = log
            }, instanceConfig);

            ServerConfig appConfig = new ServerConfig();

            if (AppDirs.CheckExistence(out errMsg) &&
                LocalizeApp() &&
                storageWrapper.InitStorage() &&
                appConfig.Load(storageWrapper.Storage, ServerConfig.DefaultFileName, out errMsg))
            {
                // start service
                logFile.CapacityMB = appConfig.GeneralOptions.MaxLogSize;
                coreLogic          = new CoreLogic(instanceConfig, appConfig, AppDirs, storageWrapper.Storage, log);

                if (coreLogic.StartProcessing())
                {
                    return(true);
                }
            }
            else if (!string.IsNullOrEmpty(errMsg))
            {
                log.WriteError(errMsg);
            }

            log.WriteError(CommonPhrases.ExecutionImpossible);
            return(false);
        }
예제 #18
0
        private readonly ServerListener listener;     // the TCP listener


        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        public ServerContext(CoreLogic coreLogic, ArchiveHolder archiveHolder, ServerListener listener)
        {
            this.coreLogic     = coreLogic ?? throw new ArgumentNullException(nameof(coreLogic));
            this.archiveHolder = archiveHolder ?? throw new ArgumentNullException(nameof(archiveHolder));
            this.listener      = listener ?? throw new ArgumentNullException(nameof(listener));
        }
예제 #19
0
        private readonly CoreLogic coreLogic; // the server logic instance


        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        public ArchiveContext(CoreLogic coreLogic)
        {
            this.coreLogic = coreLogic ?? throw new ArgumentNullException(nameof(coreLogic));
        }
예제 #20
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            var sect = Configuration.GetSection("AppSets");

            SettingsManager.UserName         = sect["UserName"];
            SettingsManager.Pass             = sect["Pas"];
            SettingsManager.ConnectionString = sect["ConnStr"];
            SettingsManager.CacheTimeSpan    = sect["CacheTimeSpan"];
            SettingsManager.LogFileName      = sect["LogFileName"];
            SettingsManager.mailsmpt         = sect["mailsmpt"];
            SettingsManager.mailport         = sect["mailport"];
            SettingsManager.mailadress       = sect["mailadress"];
            SettingsManager.mailpass         = sect["mailpass"];
            SettingsManager.validurl         = sect["validurl"];
            SettingsManager.mailmesstext     = sect["mailmesstext"];
            SettingsManager.mailpassmesstext = sect["mailpassmesstext"];
            SettingsManager.robocassaid      = sect["robocassaid"];
            SettingsManager.robopass         = sect["robopass"];
            SettingsManager.robopass2        = sect["robopass2"];
            SettingsManager.robotest         = sect["robotest"];
            SettingsManager.showconloyer     = sect["showconloyer"];
            SettingsManager.stimulpath       = sect["StimulLicens"];



            SourceSwitch sw   = new SourceSwitch("mys", sect["LogLevel"]);
            CoreLogic    core = new CoreLogic();

            var cultureInfo = new CultureInfo(sect["CultureVal"]);

            CultureInfo.DefaultThreadCurrentCulture   = cultureInfo;
            CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;


            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();
            loggerFactory.AddTraceSource(sw, new LogTraceListener(SettingsManager.LogFileName));

            CoreLogic.logger = loggerFactory.CreateLogger("AppLogger");
            //lg.LogInformation("Старт приложения", null);
            CoreLogic.logger.LogCritical("Старт приложения, уровень логирования - " + sect["LogLevel"]);

            Stimulsoft.Base.StiLicense.LoadFromFile(SettingsManager.stimulpath);

            CoreLogic.logger.LogCritical("Лицензия отчетов загружена  ");

            app.UseSession();
            //app.Run(async (context) =>
            //{
            //    if (context.Session.Keys.Contains("name"))
            //        await context.Response.WriteAsync($"Hello {context.Session.GetString("name")}!");
            //    else
            //    {
            //        context.Session.SetString("name", "Tom");
            //        await context.Response.WriteAsync("Hello World!");
            //    }
            //});



            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/error");
            }

            app.UseDefaultFiles();
            app.UseStaticFiles();

            /*
             * app.UseCookieAuthentication(new CookieAuthenticationOptions
             * {
             *  AuthenticationScheme = "Cookies",
             * //  LoginPath = new Microsoft.AspNetCore.Http.PathString("/Account/Register"),
             *  AutomaticAuthenticate = true,
             *  AutomaticChallenge = true
             *
             * });
             */
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}");
                routes.MapRoute(
                    name: "Api",
                    template: "api/{controller}/{action}"
                    );
            });


            //app.UseEsiaAuthentication(new EsiaAuthenticationOptions(Esia.GetOptions())
            //{
            //    VerifyTokenSignature = true,    // Будем проверять подпись маркера доступа
            //    Provider = new EsiaAuthenticationProvider
            //    {
            //        OnAuthenticated = context =>    // Сохраним после авторизации маркер доступа в сессии для будущего использования в приложении (HomeController/EsiaPage)
            //        {
            //            HttpContext.Current.Session["esiaToken"] = context.Token;

            //            return Task.FromResult<object>(null);
            //        }
            //    }
            //});
        }
 public override object GetComponent(MonoBehaviour pMono, Type pElementType)
 {
     return(CoreLogic.Event_GetComponentInChildren(pMono, pElementType, bInclude_DisableObject, bSearch_By_ComponentName, strComponentName));
 }
 public override object GetComponent(MonoBehaviour pMono, Type pElementType)
 {
     return(CoreLogic.Event_GetComponentInParents(pMono, pElementType));
 }