示例#1
0
 public void UpdateVideo(tblVideo video)
 {
     using (var ctx = new AcademicoContext())
     {
         ctx.Entry(video).State = EntityState.Modified;
         ctx.SaveChanges();
     }
 }
示例#2
0
        public List <VideoMiolo> GetByFilters(VideoMiolo registro)
        {
            var ctx            = new DesenvContext();
            var lstVideosMiolo = new VideosMiolo();
            var videoEntity    = new VideoEntity();

            var consulta = from a in ctx.tblBooks
                           join b in ctx.tblVideo_Book on a.intBookID equals b.intBookID
                           join c in ctx.tblProducts on a.intBookID equals c.intProductID
                           orderby a.intYear ascending

                           select new
            {
                IDApostila  = b.intBookID,
                CodigoVideo = b.txtVideoCode,
                Year        = a.intYear,
                IdVideo     = b.intVideoID
            };


            if (registro.IDApostila > 0)
            {
                consulta = consulta.Where(b => b.IDApostila == registro.IDApostila &&
                                          b.CodigoVideo == registro.CodigoVideo);
            }
            else if (!string.IsNullOrEmpty(registro.CodigoVideo))
            {
                consulta = consulta.Where(b => b.CodigoVideo == registro.CodigoVideo);
            }

            foreach (var item in consulta)
            {
                VideoMiolo v = new VideoMiolo()
                {
                    ID          = item.IDApostila.ToString(),
                    VideoID     = item.IdVideo,
                    IDApostila  = item.IDApostila,
                    CodigoVideo = item.CodigoVideo,
                    BorKey      = Criptografia.GetBorKey(item.CodigoVideo, item.Year, item.IDApostila),
                    Qualidade   = registro.Qualidade,
                };

                if (!String.IsNullOrEmpty(v.Xml))
                {
                    tblVideo video = videoEntity.GetVideoVimeo(null, Convert.ToInt32(item.IdVideo));

                    v.URL      = videoEntity.GetUrlVideoPorVideoID(Convert.ToInt32(item.IdVideo), _chaveamentoVimeoApostila, _idAplicacao, _versaoApp);
                    v.URLThumb = videoEntity.GetUrlThumb(video, _chaveamentoVimeoApostila, _versaoApp);
                    v.HTTPURL  = v.URL;
                    v.Links    = videoEntity.GetLinksVideoVariasQualidades(video.txtVideoInfo, v.URL);

                    lstVideosMiolo.Add(v);
                }
            }

            return(lstVideosMiolo);
        }
示例#3
0
        private void ValidarEnvioEmailVideoDefeituoso(tblVideo video)
        {
            var temRegistro = _vimeoRepository.TemVideoRegistradoParaEnvio(video.intVideoID, video.intVimeoID);

            if (!temRegistro)
            {
                _vimeoRepository.InserirRegistroVideoDefeito(null, null, video.txtName, video.intVideoID, video.intVimeoID);
            }
        }
示例#4
0
        private void SetThumbVimeo(int intVimeoID, string urlThumb)
        {
            VideoEntity videoEntity = new VideoEntity();
            tblVideo    video       = videoEntity.GetVideoVimeo(intVimeoID);

            if (video != null)
            {
                video.txtUrlThumbVimeo = urlThumb != null ? urlThumb : video.txtUrlThumbVimeo;
                videoEntity.UpdateVideo(video);
            }
        }
示例#5
0
        public string GetUrlThumb(tblVideo video, Contracts.Business.IChaveamentoVimeo ObjChaveamentoVimeo, string versaoApp = "")
        {
            var url = string.Empty;

            url = video.txtUrlThumbVimeo;

            if (String.IsNullOrEmpty(url))
            {
                url = "https://cdn.jwplayer.com/thumbs/" + video.txtFileName.Replace(".xml", "").Trim() + "-480.jpg";
            }

            return(url);
        }
示例#6
0
        private void SetURLsVimeo(int intVimeoID, string urlVideoMP4, string urlStream, int intVideoID, string urlThumb, string Duracao, string videoInfo)
        {
            VideoEntity videoEntity = new VideoEntity();
            tblVideo    video       = videoEntity.GetVideoVimeo(intVimeoID, intVideoID);

            if (video != null)
            {
                video.intDuracao        = Duracao;
                video.txtUrlVimeo       = urlVideoMP4 != null ? urlVideoMP4 : video.txtUrlVimeo;
                video.txtUrlStreamVimeo = urlStream != null ? urlStream : video.txtUrlStreamVimeo;
                video.txtUrlThumbVimeo  = urlThumb != null ? urlThumb : video.txtUrlThumbVimeo;
                video.txtVideoInfo      = videoInfo != null ? videoInfo : video.txtVideoInfo;
                videoEntity.UpdateVideo(video);
            }
        }
示例#7
0
        public VideoUrlDTO GetVideoPorVideoID(int idVideo, Contracts.Business.IChaveamentoVimeo ObjChaveamentoVimeo, int idAplicacao = (int)Aplicacoes.MsProMobile, string versaoApp = "")
        {
            VideoUrlDTO videoRetorno = new VideoUrlDTO
            {
                Url = string.Empty
            };

            tblVideo video = new tblVideo();

            using (var ctx = new AcademicoContext())
            {
                video = ctx.tblVideo.Where(b => b.intVideoID == idVideo).FirstOrDefault();
            }

            bool chaveamentoVimeo;

            chaveamentoVimeo = ObjChaveamentoVimeo.GetChaveamento();

            if (chaveamentoVimeo)
            {
                if (idAplicacao == (int)Aplicacoes.MEDSOFT_PRO_ELECTRON || idAplicacao == (int)Aplicacoes.AreaRestrita)
                {
                    videoRetorno.Url = video.txtUrlStreamVimeo;
                }
                else
                {
                    videoRetorno.Url = video.txtUrlVimeo;
                }
            }

            if (String.IsNullOrEmpty(videoRetorno.Url))
            {
                videoRetorno.Url = GetUrlPlataformaVideo(video, chaveamentoVimeo, idAplicacao);
            }

            if (idAplicacao == (int)(Aplicacoes.MsProMobile))
            {
                videoRetorno.Links = GetLinksVideoVariasQualidades(video.txtVideoInfo, videoRetorno.Url);
            }


            int duracao = 0;

            Int32.TryParse(video.intDuracao, out duracao);
            videoRetorno.Duracao = duracao;

            return(videoRetorno);
        }
示例#8
0
 public ActionResult DeleteVideo(int id)
 {
     if (ClsCheckRole.CheckQuyen(15, 3, int.Parse(Request.Cookies["Username"].Values["UserID"])) == true)
     {
         tblVideo tblvideo = db.tblVideos.Find(id);
         var      result   = string.Empty;
         db.tblVideos.Remove(tblvideo);
         db.SaveChanges();
         result = "Bạn đã xóa thành công.";
         return(Json(new { result = result }));
     }
     else
     {
         var result = string.Empty;
         result = "Bạn không có quyền thay đổi tính năng này";
         return(Json(new { result = result }));
     }
 }
示例#9
0
        public tblVideo GetVideoVimeo(int?intVimeoID, int intVideoID = 0)
        {
            using (var ctx = new AcademicoContext())
            {
                tblVideo video = new tblVideo();

                if (intVimeoID != null)
                {
                    video = ctx.tblVideo.Where(x => x.intVimeoID == intVimeoID).FirstOrDefault();
                }

                if (video.intVimeoID == null)
                {
                    video = ctx.tblVideo.Where(x => x.intVideoID == intVideoID).FirstOrDefault();
                }

                return(video);
            }
        }
示例#10
0
 public ActionResult Edit(int id = 0)
 {
     if ((Request.Cookies["Username"] == null))
     {
         return(RedirectToAction("LoginIndex", "Login"));
     }
     if (ClsCheckRole.CheckQuyen(15, 2, int.Parse(Request.Cookies["Username"].Values["UserID"])) == true)
     {
         tblVideo tblvideos = db.tblVideos.Find(id);
         if (tblvideos == null)
         {
             return(HttpNotFound());
         }
         return(View(tblvideos));
     }
     else
     {
         return(Redirect("/Users/Erro"));
     }
 }
示例#11
0
        public ActionResult Create(tblVideo tblvideo, FormCollection collection)
        {
            db.tblVideos.Add(tblvideo);
            db.SaveChanges();
            #region [Updatehistory]
            Updatehistoty.UpdateHistory("Add Video", Request.Cookies["Username"].Values["FullName"].ToString(), Request.Cookies["Username"].Values["UserID"].ToString());
            #endregion
            if (collection["btnSave"] != null)
            {
                Session["Thongbao"] = "<div  class=\"alert alert-info alert1\">Bạn đã thêm thành công !<button class=\"close\" data-dismiss=\"alert\">×</button></div>";

                return(Redirect("/Videoad/Index"));
            }
            if (collection["btnSaveCreate"] != null)
            {
                Session["Thongbao"] = "<div  class=\"alert alert-info\">Bạn đã thêm thành công, mời bạn thêm danh mục  mới !<button class=\"close\" data-dismiss=\"alert\">×</button></div>";
                return(Redirect("/Videoad/Create"));
            }
            return(Redirect("Index"));
        }
示例#12
0
        public string GetUrlPlataformaVideo(tblVideo video, bool chaveamentoVimeo, int idAplicacao)
        {
            var url = string.Empty;

            //Se o video não tiver no banco mas tem o VimeoID, ele busca no VIMEO, grava no banco e retorna a URL do video
            if (chaveamentoVimeo && video.intVimeoID.HasValue)
            {
                url = new VideoBusiness(new VideoEntity()).ObterURLVimeoPorIntVimeoID(video.intVimeoID, idAplicacao, 0, video.txtName);
            }

            //Se o video ainda não existir no VIMEO ele verifica se é BitsOnTheRun ou AmazonAWS e retorna a URL
            if (String.IsNullOrEmpty(url) && video.txtPath.ToLower().Contains("bitsontherun"))
            {
                url = Criptografia.GetSignedPlayer(String.Concat(video.txtFileName.Replace(".xml", string.Empty).Trim(), "-720"));
            }
            else if (String.IsNullOrEmpty(url) && video.txtPath.ToLower().Contains("amazonaws"))
            {
                url = Criptografia.GetS3SignedPlayer(String.Concat(_domainS3, video.txtName.Trim(), '.', Constants.FORMATOVIDEO));
            }

            return(url);
        }
示例#13
0
        public string GetUrlVideoPorGuid(string guid, bool chaveamentoVimeo, int idAplicacao)
        {
            var url = string.Empty;

            using (var ctx = new AcademicoContext())
            {
                tblVideo video = ctx.tblVideo.Where(b => b.guidVideoID == new Guid(guid)).FirstOrDefault();
                if (chaveamentoVimeo)
                {
                    url = video.txtUrlVimeo;
                }

                if (String.IsNullOrEmpty(url))
                {
                    using (MiniProfiler.Current.Step("Obtendo dados do vídeo no vimeo"))
                    {
                        url = GetUrlPlataformaVideo(video, chaveamentoVimeo, idAplicacao);
                    }
                }
            }

            return(url);
        }
示例#14
0
        public ActionResult Edit(tblVideo tblvideo, int id, FormCollection collection)
        {
            if (ModelState.IsValid)
            {
                db.Entry(tblvideo).State = EntityState.Modified;
                db.SaveChanges();
                #region [Updatehistory]
                Updatehistoty.UpdateHistory("Edit tblvideo", Request.Cookies["Username"].Values["FullName"].ToString(), Request.Cookies["Username"].Values["UserID"].ToString());
                #endregion
                if (collection["btnSave"] != null)
                {
                    Session["Thongbao"] = "<div  class=\"alert alert-info alert1\">Bạn đã sửa  thành công !<button class=\"close\" data-dismiss=\"alert\">×</button></div>";

                    return(Redirect("/Videoad/Index"));
                }
                if (collection["btnSaveCreate"] != null)
                {
                    Session["Thongbao"] = "<div  class=\"alert alert-info\">Bạn đã thêm thành công, mời bạn thêm mới !<button class=\"close\" data-dismiss=\"alert\">×</button></div>";
                    return(Redirect("/Videoad/Create"));
                }
            }
            return(View(tblvideo));
        }
示例#15
0
        public string ObterUrlVideo(int idAplicacao, tblVideo video, Contracts.Business.IChaveamentoVimeo chaveamentoVimeo, string versaoApp = "")
        {
            //if (ChaveamentoVimeo())
            if (chaveamentoVimeo.GetChaveamento())
            {
                if (video != null)
                {
                    string urlVimeo;

                    Business.VersaoAppPermissaoBusiness versaoAppPermissao = new VersaoAppPermissaoBusiness(new VersaoAppPermissaoEntity());

                    //if (idAplicacao == (int)Produto.Aplicacoes.AreaRestrita)

                    if (idAplicacao == (int)Aplicacoes.AreaRestrita || (idAplicacao == (int)Aplicacoes.MEDSOFT_PRO_ELECTRON && !(versaoAppPermissao.VersaoMenorOuIgual(versaoApp, ConfigurationProvider.Get("Settings:ChaveamentoVersaoMinimaMsProDesktop")))))
                    {
                        urlVimeo = video.txtUrlStreamVimeo;
                    }
                    else
                    {
                        urlVimeo = video.txtUrlVimeo;
                    }

                    if (urlVimeo == null)
                    {
                        urlVimeo = this.ObterURLVimeoPorIntVideoID(video.intVideoID, idAplicacao);
                    }

                    if (urlVimeo != null)
                    {
                        return(urlVimeo);
                    }
                }
            }

            return(this.ObterURLCloudFrontPorNomeVideo(video.txtName));
        }
示例#16
0
        public ActionResult Index(int?page, string id, FormCollection collection)
        {
            if ((Request.Cookies["Username"] == null))
            {
                return(RedirectToAction("LoginIndex", "Login"));
            }
            if (ClsCheckRole.CheckQuyen(15, 0, int.Parse(Request.Cookies["Username"].Values["UserID"])) == true)
            {
                var listvideos = db.tblVideos.ToList();

                const int pageSize   = 20;
                var       pageNumber = (page ?? 1);
                // Thiết lập phân trang
                var ship = new PagedListRenderOptions
                {
                    DisplayLinkToFirstPage                      = PagedListDisplayMode.Always,
                    DisplayLinkToLastPage                       = PagedListDisplayMode.Always,
                    DisplayLinkToPreviousPage                   = PagedListDisplayMode.Always,
                    DisplayLinkToNextPage                       = PagedListDisplayMode.Always,
                    DisplayLinkToIndividualPages                = true,
                    DisplayPageCountAndCurrentLocation          = false,
                    MaximumPageNumbersToDisplay                 = 5,
                    DisplayEllipsesWhenNotShowingAllPageNumbers = true,
                    EllipsesFormat                     = "&#8230;",
                    LinkToFirstPageFormat              = "Trang đầu",
                    LinkToPreviousPageFormat           = "«",
                    LinkToIndividualPageFormat         = "{0}",
                    LinkToNextPageFormat               = "»",
                    LinkToLastPageFormat               = "Trang cuối",
                    PageCountAndCurrentLocationFormat  = "Page {0} of {1}.",
                    ItemSliceAndTotalFormat            = "Showing items {0} through {1} of {2}.",
                    FunctionToDisplayEachPageNumber    = null,
                    ClassToApplyToFirstListItemInPager = null,
                    ClassToApplyToLastListItemInPager  = null,
                    ContainerDivClasses                = new[] { "pagination-container" },
                    UlElementClasses                   = new[] { "pagination" },
                    LiElementClasses                   = Enumerable.Empty <string>()
                };
                ViewBag.ship = ship;
                if (Session["Thongbao"] != null && Session["Thongbao"] != "")
                {
                    ViewBag.thongbao    = Session["Thongbao"].ToString();
                    Session["Thongbao"] = "";
                }
                if (collection["btnDelete"] != null)
                {
                    foreach (string key in Request.Form.Keys)
                    {
                        var checkbox = "";
                        if (key.StartsWith("chk_"))
                        {
                            checkbox = Request.Form["" + key];
                            if (checkbox != "false")
                            {
                                if (ClsCheckRole.CheckQuyen(15, 3, int.Parse(Request.Cookies["Username"].Values["UserID"])) == true)
                                {
                                    int      ids      = Convert.ToInt32(key.Remove(0, 4));
                                    tblVideo tblvideo = db.tblVideos.Find(ids);
                                    db.tblVideos.Remove(tblvideo);
                                    db.SaveChanges();
                                    return(RedirectToAction("Index"));
                                }
                                else
                                {
                                    return(Redirect("/Users/Erro"));
                                }
                            }
                        }
                    }
                }
                return(View(listvideos.ToPagedList(pageNumber, pageSize)));
            }
            else
            {
                return(Redirect("/Users/Erro"));
            }
        }
示例#17
0
        public List <Video> GetByVideoMiolo(VideoMiolo vm, string matricula = null, Aplicacoes IdAplicacao = Aplicacoes.MsProMobile, string VersaoApp = "")
        {
            var lstVideosMiolo = new VideosMiolo();
            var videos         = _vimeoRepository.GetByFilters(vm).ToList();
            var chaveamento    = new ChaveamentoVimeoMediMiolo();

            foreach (var item in videos)
            {
                VideoMiolo v = new VideoMiolo()
                {
                    ID          = item.IDApostila.ToString(),
                    VideoID     = item.VideoID,
                    IDApostila  = item.IDApostila,
                    CodigoVideo = item.CodigoVideo,
                    BorKey      = _vimeoRepository.GetBorKey(item.CodigoVideo, item.Ano, item.IDApostila),
                    Qualidade   = vm.Qualidade,
                };

                tblVideo    video        = _vimeoRepository.GetVideoVimeo(null, Convert.ToInt32(item.VideoID));
                VideoUrlDTO videoRetorno = new VideoUrlDTO
                {
                    Url = string.Empty
                };

                var chaveamentoVimeo = chaveamento.GetChaveamento();
                if (chaveamentoVimeo)
                {
                    if ((int)IdAplicacao == (int)Aplicacoes.MEDSOFT_PRO_ELECTRON || (int)IdAplicacao == (int)Aplicacoes.AreaRestrita)
                    {
                        v.URL = video.txtUrlStreamVimeo;
                    }
                    else
                    {
                        v.URL = video.txtUrlVimeo;
                    }
                }

                if (video.intVimeoID == null)
                {
                    ValidarEnvioEmailVideoDefeituoso(video);
                }
                else if (v.URL == null)
                {
                    v.URL = _vimeoRepository.GetUrlPlataformaVideo(video, chaveamentoVimeo, (int)IdAplicacao);
                    if (v.URL == string.Empty)
                    {
                        ValidarEnvioEmailVideoDefeituoso(video);
                    }
                }

                v.HTTPURL  = v.URL;
                v.URLThumb = _vimeoRepository.GetUrlThumb(video, new ChaveamentoVimeoMediMiolo(), VersaoApp);
                v.Links    = _vimeoRepository.GetLinksVideoVariasQualidades(video.txtVideoInfo, v.URL);

                lstVideosMiolo.Add(v);
            }

            var lstv = new Videos();

            foreach (var valor in lstVideosMiolo)
            {
                if (!lstv.Any(i => i.Url.Equals(valor.HTTPURL)))
                {
                    var video = new Video();
                    video.ID      = Convert.ToInt32(valor.ID);
                    video.VideoId = valor.VideoID;
                    video.Url     = valor.HTTPURL;
                    video.Thumb   = valor.URLThumb;
                    video.Links   = valor.Links;
                    video         = _vimeoRepository.CreateVideoObject(video, matricula);
                    lstv.Add(video);
                }
            }

            return(lstv);
        }