public void DeleteSessionResource(SessionResourceBase sessionResource)
 {
     Requires.NotNull(sessionResource);
     Requires.PropertyNotNegative(sessionResource, "SessionResourceId");
     using (var context = DataContext.Instance())
     {
         var rep = context.GetRepository <SessionResourceBase>();
         rep.Delete(sessionResource);
     }
 }
 public void UpdateSessionResource(SessionResourceBase sessionResource, int userId)
 {
     Requires.NotNull(sessionResource);
     Requires.PropertyNotNegative(sessionResource, "SessionResourceId");
     sessionResource.LastModifiedByUserID = userId;
     sessionResource.LastModifiedOnDate   = DateTime.Now;
     using (var context = DataContext.Instance())
     {
         var rep = context.GetRepository <SessionResourceBase>();
         rep.Update(sessionResource);
     }
 }
 public int AddSessionResource(ref SessionResourceBase sessionResource, int userId)
 {
     Requires.NotNull(sessionResource);
     sessionResource.CreatedByUserID      = userId;
     sessionResource.CreatedOnDate        = DateTime.Now;
     sessionResource.LastModifiedByUserID = userId;
     sessionResource.LastModifiedOnDate   = DateTime.Now;
     using (var context = DataContext.Instance())
     {
         var rep = context.GetRepository <SessionResourceBase>();
         rep.Insert(sessionResource);
     }
     return(sessionResource.SessionResourceId);
 }
示例#4
0
        public HttpResponseMessage Add(int conferenceId, int id, [FromBody] AddDTO data)
        {
            if (!ConferenceModuleContext.Security.CanManage)
            {
                if (!ConferenceModuleContext.Security.IsPresenter(id))
                {
                    return(AccessViolation("You are not allowed to add content for this session"));
                }
            }
            var url = data.url;

            url = DotNetNuke.Common.Globals.AddHTTP(url);
            if (!url.IsValidUrl())
            {
                return(ServiceError("The specified url is invalid or the server does not respond"));
            }
            var contentType = Connect.Conference.Core.Common.ResourceType.Hyperlink;
            var m           = Regex.Match(url, "(?i)https?://(www\\.youtube\\.com|youtu\\.be)/(watch\\?v=)?([^\\?&]+)(?-i)");

            if (m.Success)
            {
                contentType = Connect.Conference.Core.Common.ResourceType.YouTube;
                url         = m.Groups[3].Value;
            }
            m = Regex.Match(url, "(?i)https?://vimeo\\.com/(\\d+)(?-i)");
            if (m.Success)
            {
                contentType = Connect.Conference.Core.Common.ResourceType.Vimeo;
                url         = m.Groups[1].Value;
            }
            m = Regex.Match(url, "(?i)https?://channel9\\.msdn\\.com/(.+)(?-i)");
            if (m.Success)
            {
                contentType = Connect.Conference.Core.Common.ResourceType.Channel9;
                url         = m.Groups[1].Value;
            }
            var resource = new SessionResourceBase();

            resource.SessionId           = id;
            resource.ResourceDescription = url;
            resource.ResourceLink        = url;
            resource.ResourceType        = (int)contentType;
            resource.Visibility          = 1;
            SessionResourceRepository.Instance.AddSessionResource(ref resource, UserInfo.UserID);
            return(Request.CreateResponse(HttpStatusCode.OK, SessionResourceRepository.Instance.GetSessionResourcesBySession(id)));
        }
        public HttpResponseMessage Upload(int conferenceId, int id)
        {
            if (!ConferenceModuleContext.Security.CanManage)
            {
                if (!ConferenceModuleContext.Security.IsPresenter(id))
                {
                    return(AccessViolation("You are not allowed to upload content for this session"));
                }
            }
            HttpPostedFile postedFile = HttpContext.Current.Request.Files["resource"];
            var            fileName   = System.IO.Path.GetFileName(postedFile.FileName).RemoveIllegalCharacters();
            var            extension  = System.IO.Path.GetExtension(fileName);
            var            allowed    = !string.IsNullOrEmpty(extension) &&
                                        Host.AllowedExtensionWhitelist.IsAllowedExtension(extension) &&
                                        !DotNetNuke.Common.Globals.FileExtensionRegex.IsMatch(fileName);

            if (!allowed)
            {
                return(AccessViolation("This file is not allowed. Check allowed file types for this site."));
            }
            if (postedFile.ContentLength > 50000000)
            {
                return(ServiceError("File too big (more that 50 Mb)"));
            }
            var contentType = Connect.Conference.Core.Common.ResourceType.Other;

            switch (extension.ToLower())
            {
            case ".ppt":
            case ".pptx":
                contentType = Connect.Conference.Core.Common.ResourceType.Powerpoint;
                break;

            case ".zip":
            case ".7z":
                contentType = Connect.Conference.Core.Common.ResourceType.CodeZip;
                break;
            }
            var exists = false;

            foreach (var r in SessionResourceRepository.Instance.GetSessionResources(id))
            {
                if (r.ResourceLink == fileName)
                {
                    exists = true;
                }
            }
            if (!exists)
            {
                var resource = new SessionResourceBase();
                resource.SessionId           = id;
                resource.ResourceDescription = fileName;
                resource.ResourceLink        = fileName;
                resource.ResourceType        = (int)contentType;
                resource.Visibility          = 0;
                SessionResourceRepository.Instance.AddSessionResource(ref resource, UserInfo.UserID);
            }
            var path = PortalSettings.HomeDirectoryMapPath + "\\" + Connect.Conference.Core.Common.Globals.GetResourcesPath(conferenceId, id, "\\");

            if (!System.IO.Directory.Exists(path))
            {
                System.IO.Directory.CreateDirectory(path);
            }
            postedFile.SaveAs(path + fileName);
            return(Request.CreateResponse(HttpStatusCode.OK, SessionResourceRepository.Instance.GetSessionResources(id)));
        }