/// <summary>
        /// Sends program to manipulator
        /// </summary>
        /// <param name="program"></param>
        public async void UploadProgram(Program program)
        {
            if (!manipulator.Connected)
            {
                return;
            }
            try
            {
                manipulator.Number(program.Name);
                await Task.Delay(1000);

                manipulator.New();
                await Task.Delay(1000);

                var lines = program.GetLines();

                for (var i = 0; i < lines.Count; i++)
                {
                    await Task.Delay(500);

                    manipulator.SendCustom(lines[i]);
                    StepUpdate?.Invoke(this, new NotificationEventArgs("Uploading program", i + 1,
                                                                       lines.Count, EventType.LINE_UPLOADED));
                }
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// Receives all programs downloaded from manipulator
        /// </summary>
        /// <returns></returns>
        public async Task <List <Program> > DownloadPrograms(List <RemoteProgram> remotePrograms)
        {
            var programs = new List <Program>();

            for (var i = 0; i < remotePrograms.Count; i++)
            {
                programs.Add(await DownloadProgram(remotePrograms[i]));
                StepUpdate?.Invoke(this, new NotificationEventArgs("Downloading programs", i + 1,
                                                                   remotePrograms.Count, EventType.PROGRAM_DOWNLOADED));
            }
            return(programs);
        }
        /// <summary>
        /// Sends program to manipulator
        /// </summary>
        /// <param name="program"></param>
        public async void UploadProgram()
        {
            var dialog = new OpenFileDialog
            {
                DefaultExt = ".txt",
                Filter     = "txt files (.txt)|*.txt"
            };

            // Default file name
            // Default file extension
            // Filter files by extension

            if (dialog.ShowDialog() == false)
            {
                return;
            }

            var path  = dialog.FileName;
            var name  = Path.GetFileNameWithoutExtension(path);
            var lines = File.ReadAllLines($"{dialog.FileName}");

            if (!manipulator.Connected)
            {
                return;
            }
            try
            {
                manipulator.Number(name);
                await Task.Delay(1000);

                manipulator.New();
                await Task.Delay(1000);

                for (var i = 0; i < lines.Length; i++)
                {
                    await Task.Delay(500);

                    //var prefix = $"{Convert.ToString(i + 1)} ";
                    manipulator.SendCustom(lines[i]);
                    StepUpdate?.Invoke(this, new NotificationEventArgs("Uploading program", i + 1, lines.Length, EventType.LINE_UPLOADED));
                    Debug.WriteLine($"{i + 1}/{lines.Length}, {lines[i]}");
                }
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.Message);
                Debug.WriteLine(ex.Message);
            }
        }
Пример #4
0
        public bool UpdateStep(StepUpdate model)
        {
            using (var ctx = new ApplicationDbContext())
            {
                var entity =
                    ctx
                    .Steps
                    .Single(e => e.StepId == model.StepId);

                entity.Name            = model.Name;
                entity.Description     = model.Description;
                entity.FinalPageDetail = model.FinalPageDetail;
                entity.ImageLink       = model.ImageLink;

                return(ctx.SaveChanges() == 1);
            }
        }
Пример #5
0
        /// <summary>
        /// Receives all programs downloaded from manipulator
        /// </summary>
        /// <returns></returns>
        public async Task <List <Program> > DownloadPrograms(List <RemoteProgram> remotePrograms, CancellationToken cancellationToken)
        {
            var programs = new List <Program>();

            for (var i = 0; i < remotePrograms.Count; i++)
            {
                try
                {
                    cancellationToken.ThrowIfCancellationRequested();
                }
                catch (OperationCanceledException)
                {
                    break;
                }

                programs.Add(await DownloadProgram(remotePrograms[i], cancellationToken));
                StepUpdate?.Invoke(this, new NotificationEventArgs("Downloading programs", i + 1,
                                                                   remotePrograms.Count, EventType.PROGRAM_DOWNLOADED));
            }
            return(programs);
        }
Пример #6
0
        /// <summary>
        /// Sends program to manipulator
        /// </summary>
        /// <param name="program">Program to be uploaded to manipulator</param>
        /// <param name="cancellationToken">Defines task cancellation operation</param>
        public async Task UploadProgram(Program program, CancellationToken cancellationToken)
        {
            if (!manipulator.Connected)
            {
                return;
            }
            try
            {
                manipulator.Number(program.Name);
                await Task.Delay(1000, cancellationToken);

                manipulator.New();
                await Task.Delay(1000, cancellationToken);

                var lines = program.GetLines();

                for (var i = 0; i < lines.Count; i++)
                {
                    await Task.Delay(500, cancellationToken);

                    cancellationToken.ThrowIfCancellationRequested();

                    manipulator.SendCustom(lines[i]);
                    StepUpdate?.Invoke(this, new NotificationEventArgs("Uploading program", i + 1,
                                                                       lines.Count, EventType.LINE_UPLOADED));
                }
            }
            catch (OperationCanceledException)
            {
                // Cancellation does not require handling as method returns immediately after catch clause
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.Message);
            }
        }
Пример #7
0
        public ActionResult Edit(int id)
        {
            var service = CreateStepService();

            try
            {
                var detail = service.GetStepById(id);
                var model  =
                    new StepUpdate
                {
                    StepId          = detail.StepId,
                    Name            = detail.Name,
                    Description     = detail.Description,
                    FinalPageDetail = detail.FinalPageDetail,
                    ImageLink       = detail.ImageLink
                };
                return(View(model));
            }
            catch (InvalidOperationException)
            {
                TempData["NoResult"] = "The Step could not be found.";
                return(RedirectToAction("Index"));
            }
        }
Пример #8
0
        public ActionResult Edit(int id, StepUpdate model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.StepId != id)
            {
                ModelState.AddModelError("", "ID Mismatch");
                return(View(model));
            }

            var service = CreateStepService();

            if (service.UpdateStep(model))
            {
                TempData["SaveResult"] = "Your Step was updated.";
                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("", "Your Step could not be updated.");
            return(View(model));
        }
Пример #9
0
    void Start()
    {
        StepUpdate su = (StepUpdate)GameObject.FindObjectOfType(typeof(StepUpdate));

        su.add(this);
    }