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); }
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))); }