Exemplo n.º 1
0
 public RestoreTests()
 {
     fileCompressor = new Mock <IFileCompressor>();
     storage        = new Mock <IStorage>();
     fileCompressor.SetupGet(x => x.DefaultExtension).Returns(".zip");
     restorer = new Restorer(storage.Object, fileCompressor.Object);
 }
Exemplo n.º 2
0
        public object ResolveOperand(Restorer restorer)
        {
            var len   = restorer.Reader.ReadInt32();
            var bytes = restorer.Reader.ReadBytes(len);

            return(Encoding.UTF8.GetString(bytes));
        }
Exemplo n.º 3
0
        public DataSetMuseum getRestorer()
        {
            DataSetMuseum result     = new DataSetMuseum();
            Connection    connection = new Connection();

            connection.Open();
            try
            {
                Transaction transaction = connection.BeginTransaction();
                try
                {
                    restorer = new Restorer();
                    restorer.Read(result, connection, transaction);
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    ShowError(ex.ToString());
                    transaction.Rollback();
                    result = null;
                }
            }
            finally
            {
                connection.Close();
            }
            return(result);
        }
Exemplo n.º 4
0
        public bool setRestorer(DataSetMuseum dataSet)
        {
            bool       result     = false;
            Connection connection = new Connection();

            connection.Open();
            try
            {
                Transaction transaction = connection.BeginTransaction();
                try
                {
                    restorer = new Restorer();
                    restorer.Save(dataSet, connection, transaction);
                    transaction.Commit();
                    result = true;
                }
                catch (Exception ex)
                {
                    ShowError(ex.ToString());
                    transaction.Rollback();
                    result = false;
                }
            }
            finally
            {
                connection.Close();
            }
            return(result);
        }
Exemplo n.º 5
0
        public object ResolveOperand(Restorer restorer)
        {
            var index  = restorer.Reader.ReadInt16();
            var method = restorer.CurrentMethod.Method;

            return(method.Parameters[index]);
        }
Exemplo n.º 6
0
        public static void Main(string[] args)
        {
            #region Observer Pattern
            Book b = new Book("The lord of the rings");
            var  l = new Librarian();
            var  g = new Grocer();
            var  r = new Restorer();
            b.addObserver(l);
            b.addObserver(g);
            b.addObserver(r);
            b.Notify();
            Console.WriteLine("---------------------------------------------------------");
            #endregion

            #region Factory Method Pattern
            MyApplication app = new MyApplication();
            var           doc = app.createDocument();
            doc.Open();
            Console.WriteLine("---------------------------------------------------------");
            #endregion

            #region Bridge Pattern
            AbstractPicture img = new JPG(new OSXImp());
            img.Caller();
            img = new BMP(new WinImp());
            img.Caller();
            img = new GIF(new LinuxImp());
            img.Caller();
            Console.WriteLine("---------------------------------------------------------");
            #endregion

            #region Abstract Factory Pattern
            // THIS IS THE CLIENT CLASS CONTENT MENTIONED ON PATTERN PRINCIPLES.
            IFactory   factory   = new PMFactory();
            IScrollbar scrollbar = factory.BuildScrollbar();
            IWindow    window    = factory.BuildWindow();

            scrollbar.Draw();
            window.Draw();

            Console.WriteLine("\n");

            factory   = new MOTIFFactory();
            scrollbar = factory.BuildScrollbar();
            window    = factory.BuildWindow();

            scrollbar.Draw();
            window.Draw();
            Console.WriteLine("---------------------------------------------------------");
            #endregion

            #region Adapter Pattern
            var oldcar  = new OldCar("Chevrolet", "Impala", new DateTime(1967, 1, 1));
            var adapter = new OldNewAdapter(oldcar);
            Console.WriteLine(adapter.getBrand());
            Console.WriteLine(adapter.getYears());
            Console.WriteLine("---------------------------------------------------------");
            #endregion
        }
Exemplo n.º 7
0
        public override void Execute(Devirtualizer devirtualizer)
        {
            var restorer = new Restorer(devirtualizer);

            Logger.Blank();

            foreach (var method in devirtualizer.Methods)
            {
                restorer.RestoreMethod(method);
            }
        }
Exemplo n.º 8
0
        private static void MoveHero()
        {
            IComponent hero = null;

            while (hero is null)
            {
                hero = GetComponent();
            }

            var stayState     = new SingleState(new StayCommand());
            var runState      = new SingleState(new RunCommand());
            var jumpState     = new ComplexState(new JumpCommand(), stayState);
            var attackState   = new ComplexState(new AttackCommand(), stayState);
            var heroContext   = new Context(stayState, hero.Title);
            var stateRestorer = new Restorer(heroContext);

            Console.WriteLine("Game start!");
            do
            {
                switch (Console.ReadKey().Key)
                {
                case ConsoleKey.UpArrow:
                    heroContext.Update(jumpState);
                    stateRestorer.BackUp();
                    break;

                case ConsoleKey.LeftArrow:
                    heroContext.Update(runState);
                    stateRestorer.BackUp();
                    break;

                case ConsoleKey.RightArrow:
                    heroContext.Update(runState);
                    stateRestorer.BackUp();
                    break;

                case ConsoleKey.DownArrow:
                    heroContext.Update(attackState);
                    stateRestorer.BackUp();
                    break;

                case ConsoleKey.Escape:
                    return;

                default:
                    stateRestorer.Undo();
                    break;
                }

                heroContext.Request();
            } while (true);
        }
Exemplo n.º 9
0
        public object ResolveOperand(Restorer restorer)
        {
            var index  = restorer.Reader.ReadInt32();
            var method = restorer.CurrentMethod;

            if (method.Locals.ContainsKey(index))
            {
                return(method.Locals[index]);
            }
            var local = new Local(restorer.Module.ImportAsTypeSig(typeof(object)));

            method.Locals.Add(index, local);
            return(local);
        }
Exemplo n.º 10
0
        public void GivenACorruptDb_ShouldStopRestoring()
        {
            var progressBarProvider = Substitute.For <IProgressBarProvider>();
            var sqlUtil             = Substitute.For <ISqlServerUtil>();
            var opt = new ISqlServerUtil.DbRestorOptions();

            sqlUtil.When(x => x.Restore(opt, progressBarProvider, null))
            .Do(x => throw new InvalidDataException(""));

            var restorer = new Restorer(sqlUtil);

            Assert.Throws <InvalidDataException>(() => restorer.Restore(opt, progressBarProvider, null));
            progressBarProvider.DidNotReceive().Received(Arg.Any <int>());
        }
Exemplo n.º 11
0
        private void Restore(string projectName, string workDirectoryFullPath)
        {
            logger.Debug("Restore start");

            if (config.ArchivesDirectory == null)
            {
                throw new ProjArchiveException("The ArchivesDirectoryFullPath was not specified.");
            }

            Restorer restorer = new Restorer(storage, fileCompressor)
            {
                ArchivesDirectoryFullPath = config.ArchivesDirectory,
                WorkDirectoryFullPath     = workDirectoryFullPath,
                ProjectName = projectName
            };

            restorer.Restore();

            logger.Debug("Restore end");
        }
Exemplo n.º 12
0
        /// <summary>
        /// Restores non-consumable / subscription purchases.
        /// </summary>
        public static void RestorePurchases(IAP.OnRestoredHandler callback)
        {
            onRestoreComplete = callback;

            if (!IsInitialized)
            {
                DoOnRestoreComplete(false, new IAPFail(IAPFail.Reason.NotInitialized));
                return;
            }
            if (!IAP.IsRestoreSupported)
            {
                DoOnRestoreComplete(false, new IAPFail(IAPFail.Reason.PlatformNotSupported));
                return;
            }

            ProductRestorer = new Restorer(() => {
                IAP.LogMessage("IAPManager.OnTimerFinished - Restore completed.");
                DoOnRestoreComplete(true, null);
            });
            ProductRestorer.Start();
        }
Exemplo n.º 13
0
        public async Task RestoreRecursiveTest()
        {
            var folder = Path.Combine(Path.GetTempPath(), nameof(RestorerTests));

            if (Directory.Exists(folder))
            {
                Directory.Delete(folder, true);
            }

            await Restorer.RestoreRecursiveAsync(folder,
                                                 "H.Pipes",
                                                 ".NETStandard",
                                                 new Version(2, 1),
                                                 ignoredNames : new [] { "NETStandard.Library" });

            Console.WriteLine("New files:");
            foreach (var path in Directory.EnumerateFiles(folder, "*.*", SearchOption.AllDirectories))
            {
                Console.WriteLine($" - {path.Replace(folder, string.Empty)}");
            }
        }
Exemplo n.º 14
0
 public object ResolveOperand(Restorer restorer)
 {
     restorer.Reader.ReadBoolean();
     restorer.Reader.ReadInt16();
     return(restorer.ResolveField(restorer.Reader.ReadInt32()));
 }
Exemplo n.º 15
0
 public object ResolveOperand(Restorer restorer) => null;
Exemplo n.º 16
0
 public object ResolveOperand(Restorer restorer)
 {
     restorer.AddTarget(restorer.Reader.ReadInt32());
     return(OpCodes.Nop.ToInstruction());
 }
Exemplo n.º 17
0
        /// <summary>
        /// кнопка восстановить ряд
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonRepairRange_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
            InterpolateMethods   method   = (InterpolateMethods)(new EnumTypeConverter <InterpolateMethods>().ConvertFrom(comboBoxInterpolateMethod.SelectedItem));
            StandartIntervals    interval = (StandartIntervals)(new EnumTypeConverter <StandartIntervals>().ConvertFrom(comboBoxRepairInterval.SelectedItem));
            Action <int, string> action   = new Action <int, string>((percent, text) =>
            {
                try
                {
                    if (this.InvokeRequired)
                    {
                        _ = Invoke(new Action(() =>
                        {
                            progressBarStatus.Value = percent;
                        }));
                    }
                    else
                    {
                        progressBarStatus.Value = percent;
                    }
                }
                catch (Exception) { }
            });

            Action <RawRange, RawRange, double> actionAfter = new Action <RawRange, RawRange, double>((resultRange, baseRange, r) =>
            {
                _ = this.Invoke(new Action(() =>
                {
                    string additionalText = "";

                    if (method == InterpolateMethods.NearestMeteostation)     //для восстановления ряда выводим доп. информацию
                    {
                        //Информация о коэфф корреляции и базовом ряде
                        if (double.IsNaN(r))
                        {
                            additionalText += "Восстановление проводилось на основе ряда наблюдений, заданного пользователем\r\n";
                        }
                        else
                        {
                            additionalText += $"Восстановление проводилось на основе ряда наблюдений {(baseRange.Meteostation != null ? $" на МС {baseRange.Meteostation.Name} " : "")}с коэффициентом корреляции {r:0.00} \r\n";
                        }
                        //предупреждение, что не все данные восстановлены
                        RangeInterval baseInterval = baseRange.Quality.Intervals.OrderByDescending((i) => i.LengthMinutes).First(); //выбираем самый длинный интервал наблюдений в базовом ряде
                        if (baseInterval.LengthMinutes > (int)interval)                                                             //если максимальный интервал базового ряда больше, чем требуемый интервал восстановления
                        {
                            additionalText += $"\r\nВнимание!! Интервал наблюдений ряда, на основе которого производилось восстановление ({baseInterval.Interval.Description()}), больше, чем требуемый интервал. Поэтому не удалось восстановить все значения ряда до {interval.Description()}\r\n";
                        }
                    }

                    resultRange.Name = "Восстановленный ряд до интервала" + interval.Description();
                    _ = MessageBox.Show(this, $"Ряд восстановлен до интервала {interval.Description()}\r\n{additionalText}", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);

                    if (resultRange == null)
                    {
                        DialogResult = DialogResult.Cancel;
                    }
                    else
                    {
                        DialogResult = DialogResult.OK;
                        Result       = resultRange;
                    }
                    Cursor = Cursors.Arrow;
                    Result = resultRange;
                    Close();
                }));
            });

            try
            {
                //если выбрана ступенчатый метод или линейная интерполяция и в ряде есть пропуски больше, чем 1 интервал, то надо уточнить у пользователя
                if ((method == InterpolateMethods.Linear || method == InterpolateMethods.Stepwise) && rangeQuality.MaxEmptySpace.TotalMinutes > ((int)interval))
                {
                    if (MessageBox.Show(this, "Ряд содержит пропуски данных больше, чем один выбранный интервал наблюдений.\r\nВ таком случае не рекомендуется использовать линейную интерполяцию и ступенчатое восстановление.\r\nВы уверены, что хотите продолжить восстановление?", "Восстановление ряда", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                    {
                        return;
                    }
                }

                RawRange baseRange = null;
                if (method == InterpolateMethods.NearestMeteostation)
                {
                    if (radioButtonSelPoint.Checked)
                    {
                        if (range.Position.IsEmpty)
                        {
                            FormSelectMapPointDialog fsp = new FormSelectMapPointDialog("Выберите координаты ряда " + range.Name, PointLatLng.Empty, Vars.Options.CacheFolder, Resources.rp5_marker, Vars.Options.MapProvider);
                            if (fsp.ShowDialog(this) == DialogResult.OK)
                            {
                                range.Position = fsp.Result;
                            }
                            else
                            {
                                Cursor = Cursors.Arrow;
                                return;
                            }
                        }
                    }
                    else
                    {
                        baseRange = Program.winMain.mainHelper.OpenFile(this);
                        if (baseRange == null)
                        {
                            Cursor = Cursors.Arrow;
                            return;
                        }
                    }
                }
                _ = new Restorer().ProcessRange(range, new RestorerParameters()
                {
                    Interval    = interval,
                    Method      = method,
                    Coordinates = range.Position,
                    BaseRange   = baseRange,
                    ReplaceExistMeasurements = checkBoxReplaceExist.Checked
                }, action, actionAfter);
            }
            catch (WebException exc)
            {
                Cursor       = Cursors.Arrow;
                _            = MessageBox.Show(this, exc.Message, "Восстановление ряда", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                DialogResult = DialogResult.Cancel;
            }
            catch (WindEnergyException wex)
            {
                Cursor       = Cursors.Arrow;
                _            = MessageBox.Show(this, wex.Message, "Восстановление ряда", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                DialogResult = DialogResult.Cancel;
            }
            catch (ApplicationException exc)
            {
                Cursor       = Cursors.Arrow;
                _            = MessageBox.Show(this, exc.Message + "\r\nПопробуйте уменьшить длину ряда", "Восстановление ряда", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                DialogResult = DialogResult.Cancel;
            }
        }
Exemplo n.º 18
0
 public object ResolveOperand(Restorer restorer)
 {
     restorer.Reader.ReadInt16();
     return(restorer.ResolveMethod(restorer.Reader.ReadInt32()));
 }
Exemplo n.º 19
0
    //Process incoming input snapshots
    public override void ConsumeInput(int connectionId, InputSnapshot input, bool firstExec)
    {
        //objsOwned will either be empty (we return) or contain our plane
        List <GameObject> objsOwned = Ownerships.GetOwnedObjs(connectionId);

        if (objsOwned.Count == 0)
        {
            return;
        }
        else if (objsOwned.Count > 1)
        {
            //in case I messed up the MUGA code
            Debug.LogError(new System.InvalidProgramException("How do we own more planes?"));
        }
        //get the rigidbody and change its velocity
        Rigidbody myPlane = objsOwned[0].GetComponent <Rigidbody>();

        myPlane.velocity = new Vector3(input.GetAxis("Horizontal") * speed, 0, input.GetAxis("Vertical") * speed);
        //we want to apply rotation only if the velocity is signifigant
        if (myPlane.velocity.sqrMagnitude > 1)
        {
            myPlane.transform.forward = myPlane.velocity.normalized;
        }

        //for firing rockets and guns, we want to execute the creation code only on the server
        if (connectionId == -1)
        {
            return;
        }
        PlaneInputPrediction inputPrediction = myPlane.GetComponent <PlaneInputPrediction>();

        /*
         * it is safe to use Time.time here because this information wil only be used on the server
         * If you want to use time that will be sync'd between client and server, use
         * Utils.Timestamp in the MUGA package which will fetch the OS time
         */
        if (input.GetButton("Fire1") && Time.time > inputPrediction.lastRocketFire + rocketFireRate)
        {
            //get rocket spawn position and spawn it
            Vector3    rocketLocation = inputPrediction.rocketSpawnPos.position;
            GameObject newRocket      = Instantiate(rocketPrefab, rocketLocation, Quaternion.identity);
            newRocket.transform.forward = myPlane.transform.forward;

            newRocket.GetComponent <Rigidbody>().velocity = myPlane.transform.forward * rocketSpeed;

            //Notify clients of the rocket
            NetworkServer.Spawn(newRocket);

            //Reset the fire rate limiter
            inputPrediction.lastRocketFire = Time.time;
        }
        if (input.GetButton("Fire2") && Time.time > inputPrediction.lastLaserFire + laserFireRate)
        {
            //get rocket spawn position and spawn it
            Vector3 rocketLocation = inputPrediction.rocketSpawnPos.position;
            //get an instance of "Restorer" to represent the past state
            using (Restorer rest = LCPhysics.GetRestorer(input.timeSent)) {
                RaycastHit hit;
                if (Physics.Raycast(rocketLocation, myPlane.transform.forward, out hit))
                {
                    if (hit.collider.tag == "Player")
                    {
                        GameObject enemy = Ownerships.GetOwnedObjs(int.Parse(hit.collider.name))[0];
                        enemy.GetComponent <PlaneHP>().hp -= 4;
                    }
                    Debug.Log("LC hit " + hit.collider.tag);
                }
            }

            //Reset the fire rate limiter
            inputPrediction.lastLaserFire = Time.time;
        }
    }
Exemplo n.º 20
0
 public object ResolveOperand(Restorer restorer) => restorer.Reader.ReadInt32();