Exemplo n.º 1
0
        public RenderViewModel GetRenderData(string vmName)
        {
            var client = new RestClient(APIPath);

            client.AddDefaultHeader("api-key", ApiKey);
            var request = new RestRequest("getrenderdata", Method.POST);

            request.AddParameter("machineName", vmName);

            var response = client.Execute(request);

            try
            {
                RenderViewModel renderData = JsonConvert.DeserializeObject <RenderViewModel>(response.Content);
                Library.WriteServiceLog("Got data from Render API");
                LogRenderData(renderData);



                return(renderData);
            }
            catch (Exception e)
            {
                RenderViewModel rvm = new RenderViewModel()
                {
                    FoundVideoToRender = false
                };
                return(rvm);
            }
        }
Exemplo n.º 2
0
        public static void ConcatTest()
        {
            //This works. Test for three files with different aspect ratios.
            RenderViewModel renderDataa = new RenderViewModel()
            {
                RawFileNames       = "17.MP4,19.MP4,20.MP4",
                ConvertedFileName  = "helke_no_slate_long.mp4",
                Duration           = 40,
                Start              = 4236,
                FirstName          = "Auggie",
                LastName           = "Wolchansky",
                FoundVideoToRender = true,
                FuneralHomeName    = "DevHome",
                ServiceId          = 16,
                VideoQueId         = 30,
                VideoQueType       = VideoQueType.FullWithSlate,
                ServiceDate        = DateTime.Now
            };
            RenderVideo   render = new RenderVideo(renderDataa);
            List <string> vids   = new List <string>();

            vids.Add("17.MP4");
            vids.Add("19.MP4");
            vids.Add("20.MP4");
            //render.CreateSlideShow("Shane", "White", DateTime.Now, "Your Funeral Home Name", "slate.mp4");
            render.ConcatenateVideoFiles(vids, true);
            //render.CreateSlideShow("Shane", "White", DateTime.Now, "Mollys Funeral Home", "slideshow.mp4");
            //render.MergeSlateToService("slate.mp4", "hi.mp4", "output.mp4");
            // render.StartRender(false);
        }
Exemplo n.º 3
0
        public PagerViewModel(RenderViewModel model, int totalItems)
        {
            // calculate total, start and end pages
            var totalPages  = (int)Math.Ceiling((decimal)totalItems / (decimal)model.PageSize);
            var currentPage = model.CurrentPage;
            var startPage   = currentPage - 5;
            var endPage     = currentPage + 4;

            if (startPage <= 0)
            {
                endPage  -= (startPage - 1);
                startPage = 1;
            }
            if (endPage > totalPages)
            {
                endPage = totalPages;
                if (endPage > 10)
                {
                    startPage = endPage - 9;
                }
            }

            TotalItems          = totalItems;
            CurrentPage         = currentPage;
            PageSize            = model.PageSize;
            TotalPages          = totalPages;
            StartPage           = startPage;
            EndPage             = endPage;
            this.ControllerName = model.ControllerName;
            this.ActionName     = model.ActionName;
            this.SearchOption   = model.SearchOption;
        }
Exemplo n.º 4
0
        // Your application's entry point. Here you can initialize your MVVM framework, DI
        // container, etc.
        private static void AppMain(Application app, string[] args)
        {
            var schedule = Avalonia.Threading.AvaloniaScheduler.Instance;

            var ais         = GetAvailableAis();
            var aiList      = AiListViewModel.Create(ais);
            var workManager = new WorkManager();

            var simulatorSettings = new SimulatorSettingsViewModel(workManager, aiList.IsAnyAiSelected, aiList.SelectedAis, schedule);

            var renderCommand = ReactiveUI.ReactiveCommand.Create <SimulationRowViewModel>((simRow) =>
            {
                var renderVm     = new RenderViewModel(simRow.Ai, simRow.Simulation);
                var renderWindow = new RenderWindow
                {
                    DataContext = new RenderWindowViewModel(renderVm)
                };
                renderWindow.Show();
            });

            var simulationList = new SimulationListViewModel(workManager.Simulations.AsObservableList(), renderCommand);

            var window = new MainWindow
            {
                DataContext = new MainWindowViewModel(aiList, simulatorSettings, simulationList),
                Width       = 600,
                Height      = 400
            };

            app.Run(window);
        }
Exemplo n.º 5
0
 public DisplaySeriesViewModel(IEnumerable <DisplaySerieViewModel> series,
                               RenderViewModel render,
                               int totalItems)
 {
     this.Series = series;
     this.Pager  = new PagerViewModel(render, totalItems);
 }
Exemplo n.º 6
0
 public AbstractRenderViewModel(IEnumerable <IDisplayable> entities,
                                RenderViewModel render,
                                int totalItems
                                )
 {
     this.Entities = entities;
     this.Pager    = new PagerViewModel(render, totalItems);
 }
Exemplo n.º 7
0
 public DisplayAllMoviesViewModel(IEnumerable <IDisplayable> movies,
                                  RenderViewModel render,
                                  int totalItems
                                  )
 {
     this.Movies = movies;
     this.Pager  = new PagerViewModel(render, totalItems);
 }
Exemplo n.º 8
0
        public ActionResult Index()
        {
            var model = new RenderViewModel
            {
                Theme = AsyncHelpers.RunSync(() => _themeService.GetDefaultAsync())
            };

            return(View(model));
        }
Exemplo n.º 9
0
 public StripRender(RenderViewModel RenderParameters)
 {
     _renderParameters = RenderParameters;
     _videoQid         = _renderParameters.VideoQueId;
     _videoFiles       = _renderParameters.RawFileNames.Split(',');
     if (ConfigurationManager.AppSettings["IsAzureVM"] != "false")
     {
         _isAzureVm = true;
     }
 }
Exemplo n.º 10
0
 private string GetIndex(RenderViewModel model)
 {
     return($"# {model.Name}\n" +
            $"Compared Specs: **{model.OldSpecIdentifier}** - **{model.NewSpecIdentifier}**\n" +
            "Report Result: " +
            $"<img src=\"https://img.shields.io/static/v1?label=&amp;message={model.ChangeType.DiffResult}&amp;color={GetColorForDiffResult(model.ChangeType.DiffResult)}&amp;\" alt=\"{model.ChangeType.DiffResult}\">\n" +
            "## Added Endpoints\n" +
            $"{GetOperationOverview(model.NewEndpoints)}\n" +
            "## Removed Endpoints\n" +
            $"{GetOperationOverview(model.MissingEndpoints)}\n" +
            "## Deprecated Endpoints\n" +
            $"{GetOperationOverview(model.DeprecatedEndpoints)}\n" +
            "## Changed Endpoints\n" +
            $"{GetChangedOperationOverview(model.ChangedEndpoints)}");
 }
Exemplo n.º 11
0
        public IViewComponentResult Invoke(RenderViewModel model)
        {
            int currentPage = model.CurrentPage;
            int pageSize    = model.PageSize;
            var entities    = model.Entities;

            var movies = entities.Skip((currentPage - 1) * pageSize)
                         .Take(pageSize)
                         .ToList();
            int totalItems = entities.Count();

            var viewModel = new AbstractRenderViewModel(movies,
                                                        model, totalItems);

            return(this.View("Default", viewModel));
        }
Exemplo n.º 12
0
        public ActionResult GetRenderData(string machineName)
        {
            var             testQs = db.VideoQueues.ToList();
            VideoQueue      vq     = db.VideoQueues.Where(q => q.VMName == machineName && q.VideoStatus == VideoQueueStatus.UploadedToAzureRenderFarm).FirstOrDefault();
            RenderViewModel rvm    = new RenderViewModel();

            if (vq == null)
            {
                rvm.FoundVideoToRender = false;
                return(Json(rvm));
            }
            Service service = db.Services.Where(s => s.Id == vq.VideoId).FirstOrDefault();

            //If any of these conditions are null the database does not contain enough info to render the video
            if (service == null || service.Video == null || !service.Video.Stop.HasValue || !service.Video.Start.HasValue)
            {
                return(Json(rvm));
            }
            rvm.FirstName         = service.FirstName;
            rvm.LastName          = service.LastName;
            rvm.FuneralHomeName   = service.FuneralHome.Name;
            rvm.Start             = (int)service.Video.Start.Value.TotalSeconds;
            rvm.Duration          = (int)service.Video.Stop.Value.TotalSeconds;
            rvm.RawFileNames      = vq.BlobPath;
            rvm.ConvertedFileName = service.Video.ConvertedFilePath;
            rvm.VideoQueId        = vq.Id;
            rvm.ResourceGroupName = vq.ResourceGroupName;
            rvm.ServiceId         = service.Id;
            rvm.ServiceDate       = service.ServiceDate;
            rvm.VideoQueType      = vq.VideoQueType;

            //If the video is uploaded to azure farm, its ready to be rendered. All other status mean it's either rendering or not ready.
            if (vq.VideoStatus == VideoQueueStatus.UploadedToAzureRenderFarm)
            {
                rvm.FoundVideoToRender = true;
            }
            else
            {
                rvm.FoundVideoToRender = false;
            }

            return(Json(rvm));
        }
Exemplo n.º 13
0
        public static void CompleteTest()
        {
            RenderViewModel renderDataa = new RenderViewModel()
            {
                RawFileNames       = "helke1.mp4,helke2.mp4",
                ConvertedFileName  = "Helke320TestWithNoSlate.mp4",
                Duration           = 0,
                Start              = 0,
                FirstName          = "Shane",
                LastName           = "White",
                FoundVideoToRender = true,
                FuneralHomeName    = "DevHome",
                ServiceId          = 40,
                VideoQueId         = 30,
                VideoQueType       = VideoQueType.FullNoSlate,
                ServiceDate        = DateTime.Now
            };
            RenderVideo render = new RenderVideo(renderDataa);

            render.StartRender(false);
        }
Exemplo n.º 14
0
        public static void TrimTest()
        {
            RenderViewModel renderDataa = new RenderViewModel()
            {
                RawFileNames       = "sintel.mp4",
                ConvertedFileName  = "jan2nd_full_slate.mp4",
                Duration           = 345,
                Start              = 20,
                FirstName          = "Auggie",
                LastName           = "Wolchansky",
                FoundVideoToRender = true,
                FuneralHomeName    = "DevHome",
                ServiceId          = 16,
                VideoQueId         = 30,
                VideoQueType       = VideoQueType.FullWithSlate,
                ServiceDate        = DateTime.Now
            };
            RenderVideo render = new RenderVideo(renderDataa);

            render.TrimVideo("sintel_concat.mp4");
        }
Exemplo n.º 15
0
        public static void Download()
        {
            string          videoFiles  = "7589_OurSavior_uploading_201809160802_48.mp4,7589_OurSavior_uploading_201809160802_48_1.mp4,7589_OurSavior_uploading_201809160802_48_2.mp4,7589_OurSavior_uploading_201809160802_48_3.mp4";
            RenderViewModel renderDataa = new RenderViewModel()
            {
                RawFileNames       = videoFiles,
                ConvertedFileName  = "saviortest.mp4",
                Duration           = 3768,
                Start              = 0,
                FirstName          = "Auggie",
                LastName           = "Wolchansky",
                FoundVideoToRender = true,
                FuneralHomeName    = "DevHome",
                ServiceId          = 16,
                VideoQueId         = 19,
                VideoQueType       = VideoQueType.FullNoSlate
            };
            RenderVideo renderer = new RenderVideo(renderDataa);

            string[] _videoFiles = videoFiles.Split(',');
            renderer.ConcatenateVideoFiles(_videoFiles.ToList(), true);
        }
Exemplo n.º 16
0
 private void LogRenderData(RenderViewModel renderData)
 {
     if (renderData.FoundVideoToRender == true)
     {
         Library.WriteServiceLog("Render Data: {");
         Library.WriteServiceLog("FoundVideoToRender: " + renderData.FoundVideoToRender);
         Library.WriteServiceLog("FuneralHomeName: " + renderData.FuneralHomeName);
         Library.WriteServiceLog("FirstName: " + renderData.FirstName);
         Library.WriteServiceLog("LastName: " + renderData.LastName);
         Library.WriteServiceLog("RawFileNames: " + renderData.RawFileNames);
         Library.WriteServiceLog("ConvertedFileName: " + renderData.ConvertedFileName);
         Library.WriteServiceLog("Duration: " + renderData.Duration);
         Library.WriteServiceLog("ResourceGroupName: " + renderData.ResourceGroupName);
         Library.WriteServiceLog("ServiceDate: " + renderData.ServiceDate);
         Library.WriteServiceLog("ServiceId: " + renderData.ResourceGroupName);
         Library.WriteServiceLog("ServiceDate: " + renderData.ServiceDate);
         Library.WriteServiceLog("ServiceId: " + renderData.ServiceId);
         Library.WriteServiceLog("Start: " + renderData.Start);
         Library.WriteServiceLog("VideoQueId: " + renderData.VideoQueId);
         Library.WriteServiceLog("VideoQueType: " + renderData.VideoQueType);
         Library.WriteServiceLog("}");
     }
 }
Exemplo n.º 17
0
        private void timer1_Tick(object sender, ElapsedEventArgs e)
        {
            var isAzureVM = ConfigurationManager.AppSettings["IsAzureVM"];

            if (isAzureVM != "false")
            {
                //Each tick represents 30 seconds
                //Dont keep track of ticks on Machine that is always running
                ticks++;
            }
            string     vmMachineName = Environment.MachineName;
            DataAccess da            = new DataAccess();


            if (GlobalVariables.IsRendering == false)
            {
                GlobalVariables.IsRendering = true;
                RenderViewModel renderData = da.GetRenderData(vmMachineName);


                if (renderData != null && renderData.FoundVideoToRender == true)
                {
                    RenderVideo render = new RenderVideo(renderData);
                    switch (renderData.VideoQueType)
                    {
                    case VideoQueType.FullNoSlate:
                        render.StartRender(false);
                        break;

                    case VideoQueType.FullWithSlate:
                        render.StartRender(true);
                        break;

                    case VideoQueType.AddSlate:
                        render.AddSlate();
                        break;

                    case VideoQueType.StripSlate:
                        render.RemoveSlate();
                        break;

                    case VideoQueType.ReEditSlate:
                        render.EditSlate();
                        break;
                    }
                }
                else
                {
                    GlobalVariables.IsRendering = false;
                }
            }



            if (GlobalVariables.IsRendering == false && isAzureVM != "false")
            {
                //If the machine has been running for 20 minutes and isn't rendering something probably isn't right
                if (ticks == 40)
                {
                    Library.WriteServiceLog("Machine has been running for 40 ticks. Sending an email to Shane");
                    da.SendErrorEmail("Render Machine: " + vmMachineName + " has been running for 20 minutes and has not begun to process the video. ");
                }
                if (ticks > 65)
                {
                    Library.WriteServiceLog("Machine has been running for " + ticks + " without starting render process");

                    //Only send an email every 13 times so we don't blow through our email alloment if this runs for a while.
                    if (ticks % 13 == 0)
                    {
                        da.SendErrorEmail("Render Machine: " + vmMachineName + " has been running for longer than 30 minutes and has not begun to process the video. Attempting to Shut Down machine");
                    }
                    Library.WriteServiceLog("Attempting to shut down machine");
                    string rg = da.GetResourceGroupName(vmMachineName);
                    ManageResourceGroup.StopVirtualMachine(rg, vmMachineName);
                }
            }

            //The machine should never be alive this long
            if (ticks == 960)
            {
                Library.WriteServiceLog("Machine has been running for 960 ticks. Sending an email to Shane");
                da.SendErrorEmail("Render Machine: " + vmMachineName + " has been running for over 8 hours ");
            }
            if (ticks > 1000)
            {
                Library.WriteServiceLog("Machine has been running for " + ticks);

                //Only send an email every 25 times so we don't blow through our email alloment if this runs for a while.
                if (ticks % 50 == 0)
                {
                    da.SendErrorEmail("Render Machine: " + vmMachineName + " has been running for longer than 8 hours. Attempting to Shut Down machine");
                }
                Library.WriteServiceLog("Attempting to shut down machine");
                string rg = da.GetResourceGroupName(vmMachineName);
                ManageResourceGroup.StopVirtualMachine(rg, vmMachineName);
            }
        }