public Organisation( User createdByUser, string name, string description, string website, MediaResource avatar, MediaResource background, IEnumerable<string> categories, DateTime createdDateTime, Group parentGroup) : base(createdByUser, name, createdDateTime, parentGroup) { Check.RequireNotNull(categories != null, "categories"); InitMembers(); SetOrganisationDetails( description, website, avatar, background, categories); ApplyEvent(new DomainModelCreatedEvent<Organisation>(this, createdByUser, this)); }
public User( string password, string email, string name, MediaResource avatar, string defaultLicence, string timezone, DateTime joined) : base() { InitMembers(); Email = email; PasswordSalt = Guid.NewGuid(); HashedPassword = GetHashedPassword(password); LastLoggedIn = DateTime.UtcNow; Joined = joined; SetDetails( name, avatar, string.Empty, defaultLicence, timezone); AddCallToAction("user-welcome"); AddCallToAction("first-create-project-welcome"); AddCallToAction("first-create-observation-welcome"); AddCallToAction("first-record-welcome"); AddCallToAction("project-explore-welcome"); AddCallToAction("organisation-explore-welcome"); ApplyEvent(new DomainModelCreatedEvent<User>(this, this, this)); }
public ObservationMedia( MediaResource mediaResource, string description, string licence, bool isPrimaryMedia) : base() { Check.RequireNotNull(mediaResource, "mediaResource"); MediaResource = mediaResource; SetDetails( description, licence, isPrimaryMedia); }
public Organisation UpdateDetails(User updatedByUser, string name, string description, string website, MediaResource avatar, MediaResource background, IEnumerable <string> categories) { Check.RequireNotNull(updatedByUser, "updatedByUser"); Check.RequireNotNullOrWhitespace(name, "name"); Check.RequireNotNull(categories != null, "categories"); SetGroupDetails(name); SetOrganisationDetails( description, website, avatar, background, categories); ApplyEvent(new DomainModelUpdatedEvent <Organisation>(this, updatedByUser, this)); return(this); }
public bool Save(MediaResourceCreateCommand command, User createdByUser, out string failureReason, out MediaResource mediaResource) { failureReason = string.Empty; mediaResource = null; if (!_documentSession.Load<AppRoot>(Constants.AppRootId).DocumentServiceStatus) { failureReason = "Word documents and PDF files cannot be uploaded at the moment. Please try again later."; return false; } bool returnValue; try { //var extension = Path.GetExtension(command.OriginalFileName) ?? string.Empty; //var acceptedFileTypes = new List<string>() // { // "doc", // "docx", // "pdf" // }; //if (acceptedFileTypes.Any(x => x.Contains(extension))) //{ // MakeDocumentMediaResourceFiles(mediaResource, command); //} returnValue = true; } catch (Exception exception) { _logger.ErrorException("Error saving document", exception); failureReason = "The file is corrupted or not a valid Word or PDF document and could not be saved. Please check the file and try again."; returnValue = false; } return returnValue; }
public Team( User createdByUser, string name, string description, string website, MediaResource avatar, DateTime createdDateTime, Group parentGroup) : base( createdByUser, name, createdDateTime, parentGroup) { SetTeamDetails( description, website, avatar); ApplyEvent(new DomainModelCreatedEvent <Team>(this, createdByUser, this)); }
public UserProject( User createdByUser, string name, string description, string website, MediaResource avatar, MediaResource background, DateTime createdDateTime, Group parentGroup) : base(createdByUser, name, createdDateTime, parentGroup) { SetUserProjectDetails( description, website, avatar, background); ApplyEvent(new DomainModelCreatedEvent<UserProject>(this, createdByUser, this)); }
public UserProject( User createdByUser, string name, string description, string website, MediaResource avatar, MediaResource background, DateTime createdDateTime, Group parentGroup) : base( createdByUser, name, createdDateTime, parentGroup) { SetUserProjectDetails( description, website, avatar, background); ApplyEvent(new DomainModelCreatedEvent <UserProject>(this, createdByUser, this)); }
private void SetUserProjectDetails(string description, string website, MediaResource avatar, MediaResource background) { Description = description; Website = website; Avatar = avatar; Background = background; }
public bool Save(MediaResourceCreateCommand command, User createdByUser, out string failureReason, out MediaResource mediaResource) { failureReason = string.Empty; mediaResource = null; if (!_documentSession.Load<AppRoot>(Constants.AppRootId).ImageServiceStatus) { failureReason = "Image files cannot be uploaded at the moment. Please try again later."; return false; } ImageUtility image = null; bool returnValue; try { var imageCreationTasks = new List<ImageCreationTask>(); image = ImageUtility.Load(command.FileStream); if (command.Usage == "contribution") { mediaResource = MakeContributionImage( createdByUser, image, imageCreationTasks, command); } else if (command.Usage == "avatar") { mediaResource = MakeAvatarImage( createdByUser, image, imageCreationTasks, command); } else if (command.Usage == "background") { mediaResource = MakeBackgroundImage( createdByUser, image, imageCreationTasks, command); } else { throw new ArgumentException("The specified usage '" + command.Usage + "' is not recognised."); } image.Save(mediaResource, imageCreationTasks, _mediaFilePathFactory); returnValue = true; } catch (Exception exception) { _logger.ErrorException("Error saving images", exception); failureReason = "The file is corrupted or not a valid JPEG and could not be saved. Please check the file and try again."; returnValue = false; } finally { if (image != null) { image.Cleanup(); } } return returnValue; }
public object Make(MediaResource mediaResource) { dynamic viewModel = new ExpandoObject(); viewModel.Id = mediaResource.Id; viewModel.Key = mediaResource.Key; viewModel.MediaResourceType = mediaResource.MediaResourceType; viewModel.UploadedOn = mediaResource.UploadedOn; viewModel.User = new { mediaResource.CreatedByUser.Id, mediaResource.CreatedByUser.Name }; if (mediaResource.Metadata != null) { viewModel.Metadata = mediaResource.Metadata.Select(x => new { x.Key, x.Value }); } if (mediaResource is ImageMediaResource) { var imageMediaResource = mediaResource as ImageMediaResource; viewModel.Image = new ExpandoObject(); if (imageMediaResource.Image.Original != null) { var uri = _mediaFilePathFactory.MakeMediaUri(imageMediaResource.Image.Original.Uri); viewModel.Image.Original = new { imageMediaResource.Image.Original.ExifData, imageMediaResource.Image.Original.Filename, imageMediaResource.Image.Original.Height, imageMediaResource.Image.Original.MimeType, imageMediaResource.Image.Original.Size, Uri = uri, imageMediaResource.Image.Original.Width }; } if (imageMediaResource.Image.Square50 != null) viewModel.Image.Square50 = MakeDerivedFile(imageMediaResource.Image.Square50); if (imageMediaResource.Image.Square100 != null) viewModel.Image.Square100 = MakeDerivedFile(imageMediaResource.Image.Square100); if (imageMediaResource.Image.Square200 != null) viewModel.Image.Square200 = MakeDerivedFile(imageMediaResource.Image.Square200); if (imageMediaResource.Image.Constrained240 != null) viewModel.Image.Constrained240 = MakeDerivedFile(imageMediaResource.Image.Constrained240); if (imageMediaResource.Image.Constrained480 != null) viewModel.Image.Constrained480 = MakeDerivedFile(imageMediaResource.Image.Constrained480); if (imageMediaResource.Image.Constrained600 != null) viewModel.Image.Constrained600 = MakeDerivedFile(imageMediaResource.Image.Constrained600); if (imageMediaResource.Image.Full640 != null) viewModel.Image.Full640 = MakeDerivedFile(imageMediaResource.Image.Full640); if (imageMediaResource.Image.Full800 != null) viewModel.Image.Full800 = MakeDerivedFile(imageMediaResource.Image.Full800); if (imageMediaResource.Image.Full1024 != null) viewModel.Image.Full1024 = MakeDerivedFile(imageMediaResource.Image.Full1024); if (imageMediaResource.Image.Small != null) viewModel.Image.Small = MakeDerivedFile(imageMediaResource.Image.Small); if (imageMediaResource.Image.Large != null) viewModel.Image.Large = MakeDerivedFile(imageMediaResource.Image.Large); } if (mediaResource is VideoMediaResource) { var videoMediaResource = mediaResource as VideoMediaResource; viewModel.Video = new ExpandoObject(); if (videoMediaResource.Video.Original != null) { viewModel.Video.Original = new { videoMediaResource.Video.Original.Height, videoMediaResource.Video.Original.Provider, videoMediaResource.Video.Original.ProviderData, videoMediaResource.Video.Original.Uri, videoMediaResource.Video.Original.VideoId, videoMediaResource.Video.Original.Width }; } if (videoMediaResource.Video.OriginalImage != null) { viewModel.Video.OriginalImage = new { videoMediaResource.Video.OriginalImage.ExifData, videoMediaResource.Video.OriginalImage.Filename, videoMediaResource.Video.OriginalImage.Height, videoMediaResource.Video.OriginalImage.MimeType, videoMediaResource.Video.OriginalImage.Size, videoMediaResource.Video.OriginalImage.Uri, videoMediaResource.Video.OriginalImage.Width }; } if (videoMediaResource.Video.Square50 != null) viewModel.Video.Square50 = MakeDerivedFile(videoMediaResource.Video.Square50); if (videoMediaResource.Video.Square100 != null) viewModel.Video.Square100 = MakeDerivedFile(videoMediaResource.Video.Square100); if (videoMediaResource.Video.Square200 != null) viewModel.Video.Square200 = MakeDerivedFile(videoMediaResource.Video.Square200); if (videoMediaResource.Video.Constrained240 != null) viewModel.Video.Constrained240 = MakeDerivedFile(videoMediaResource.Video.Constrained240); if (videoMediaResource.Video.Constrained480 != null) viewModel.Video.Constrained480 = MakeDerivedFile(videoMediaResource.Video.Constrained480); if (videoMediaResource.Video.Constrained600 != null) viewModel.Video.Constrained600 = MakeDerivedFile(videoMediaResource.Video.Constrained600); if (videoMediaResource.Video.Full640 != null) viewModel.Video.Full640 = MakeDerivedFile(videoMediaResource.Video.Full640); if (videoMediaResource.Video.Full800 != null) viewModel.Video.Full800 = MakeDerivedFile(videoMediaResource.Video.Full800); if (videoMediaResource.Video.Full1024 != null) viewModel.Video.Full1024 = MakeDerivedFile(videoMediaResource.Video.Full1024); } if (mediaResource is AudioMediaResource) { var audioMediaResource = mediaResource as AudioMediaResource; viewModel.Audio = new ExpandoObject(); if (audioMediaResource.Audio.Original != null) { viewModel.Audio.Original = new { audioMediaResource.Audio.Original.MimeType }; } if (audioMediaResource.Audio.Square50 != null) viewModel.Audio.Square50 = MakeDerivedFile(audioMediaResource.Audio.Square50); if (audioMediaResource.Audio.Square100 != null) viewModel.Audio.Square100 = MakeDerivedFile(audioMediaResource.Audio.Square100); if (audioMediaResource.Audio.Square200 != null) viewModel.Audio.Square200 = MakeDerivedFile(audioMediaResource.Audio.Square200); if (audioMediaResource.Audio.Constrained240 != null) viewModel.Audio.Constrained240 = MakeDerivedFile(audioMediaResource.Audio.Constrained240); if (audioMediaResource.Audio.Constrained480 != null) viewModel.Audio.Constrained480 = MakeDerivedFile(audioMediaResource.Audio.Constrained480); if (audioMediaResource.Audio.Constrained600 != null) viewModel.Audio.Constrained600 = MakeDerivedFile(audioMediaResource.Audio.Constrained600); if (audioMediaResource.Audio.Full640 != null) viewModel.Audio.Full640 = MakeDerivedFile(audioMediaResource.Audio.Full640); if (audioMediaResource.Audio.Full800 != null) viewModel.Audio.Full800 = MakeDerivedFile(audioMediaResource.Audio.Full800); if (audioMediaResource.Audio.Full1024 != null) viewModel.Audio.Full1024 = MakeDerivedFile(audioMediaResource.Audio.Full1024); } return viewModel; }
private dynamic MakeAvatar(MediaResource mediaResource) { var avatar = mediaResource as ImageMediaResource; dynamic viewModelAvatar = new ExpandoObject(); viewModelAvatar.Image = new ExpandoObject(); if (avatar != null && avatar.Image != null) { if (avatar.Image.Original != null) { var uri = _mediaFilePathFactory.MakeMediaUri(avatar.Image.Original.Uri); viewModelAvatar.Image.Original = new { avatar.Image.Original.ExifData, avatar.Image.Original.Filename, avatar.Image.Original.Height, avatar.Image.Original.MimeType, avatar.Image.Original.Size, Uri = uri, avatar.Image.Original.Width }; } if (avatar.Image.Square50 != null) viewModelAvatar.Image.Square50 = MakeDerivedFile(avatar.Image.Square50); if (avatar.Image.Square100 != null) viewModelAvatar.Image.Square100 = MakeDerivedFile(avatar.Image.Square100); if (avatar.Image.Square200 != null) viewModelAvatar.Image.Square200 = MakeDerivedFile(avatar.Image.Square200); } return viewModelAvatar; }
private void SetOrganisationDetails(string description, string website, MediaResource avatar, MediaResource background, IEnumerable<string> categories) { Description = description; Website = website; Avatar = avatar; Background = background; Categories = categories; }
public bool Save(MediaResourceCreateCommand command, User createdByUser, out string failureReason, out MediaResource mediaResource) { failureReason = string.Empty; mediaResource = null; if (!_documentSession.Load<AppRoot>(Constants.AppRootId).VimeoVideoServiceStatus) { failureReason = "Vimeo video files cannot be imported at the moment. Please try again later."; return false; } bool returnValue; try { string apiUri = string.Format(_apiUriFormat, command.VideoId); dynamic data = GetVideoDataFromApi(apiUri); // Get thumbnail URI var thumbnailUri = (string)data[0]["thumbnail_large"]; var videoWidth = (int) data[0]["width"]; var videoHeight = (int)data[0]["height"]; var imageCreationTasks = new List<ImageCreationTask>(); using (var stream = new MemoryStream(new WebClient().DownloadData(thumbnailUri))) { var image = ImageUtility.Load(stream); mediaResource = _mediaResourceFactory.MakeContributionExternalVideo( command.Key, createdByUser, command.UploadedOn, string.Format(_uriFormat, command.VideoId), "vimeo", data, command.VideoId, ImageDimensions.MakeRectangle(videoWidth, videoHeight), thumbnailUri, image.GetDimensions(), MediaTypeUtility.GetStandardMimeTypeForMimeType(image.GetMimeType()), GetVideoMetadata(data, command.VideoId), imageCreationTasks); image.Save(mediaResource, imageCreationTasks, _mediaFilePathFactory); image.Cleanup(); } returnValue = true; } catch (Exception exception) { _logger.ErrorException("Error saving video", exception); failureReason = "The video cannot be retrieved from Vimeo. Please check the video and try again."; returnValue = false; } return returnValue; }
public virtual User UpdateDetails(string name, string description, MediaResource avatar, string defaultLicence, string timezone) { SetDetails( name, avatar, description, defaultLicence, timezone); ApplyEvent(new DomainModelUpdatedEvent<User>(this, this, this)); return this; }
private string MakeUri(MediaResource mediaResource, string storedRepresentation, string mimeType) { return _mediaFilePathFactory.MakeRelativeMediaFileUri(mediaResource.Id, storedRepresentation, MediaTypeUtility.GetStandardExtensionForMimeType(mimeType)); }
public bool Save(MediaResourceCreateCommand command, User createdByUser, out string failureReason, out MediaResource mediaResource) { failureReason = string.Empty; mediaResource = null; if (!_documentSession.Load<AppRoot>(Constants.AppRootId).YouTubeVideoServiceStatus) { failureReason = "Youtube video files cannot be imported at the moment. Please try again later."; return false; } bool returnValue; try { string apiUri = string.Format(_apiUriFormat, command.VideoId); JObject data = GetVideoDataFromApi(apiUri); // Get thumbnail URI var mediaThumbnails = data["entry"]["media$group"]["media$thumbnail"]; var mediaThumbnail = mediaThumbnails.Single(x => (string)x["yt$name"] == "hqdefault"); var thumbnailUri = (string)mediaThumbnail["url"]; var imageCreationTasks = new List<ImageCreationTask>(); using (var stream = new MemoryStream(new WebClient().DownloadData(thumbnailUri))) { var image = ImageUtility.Load(stream); mediaResource = _mediaResourceFactory.MakeContributionExternalVideo( command.Key, createdByUser, command.UploadedOn, string.Format(_uriFormat, command.VideoId), "youtube", data, command.VideoId, ImageDimensions.MakeRectangle(1024, 576), // As at 08/2012, Youtube states that videos are encoded in 16:9 ratio. 1024x576px is the max size we present in Bowerbird at that ratio thumbnailUri, image.GetDimensions(), MediaTypeUtility.GetStandardMimeTypeForMimeType(image.GetMimeType()), GetVideoMetadata(data, command.VideoId), imageCreationTasks); image.Save(mediaResource, imageCreationTasks, _mediaFilePathFactory); image.Cleanup(); } returnValue = true; } catch (Exception exception) { _logger.ErrorException("Error saving video", exception); failureReason = "The video cannot be retrieved from Youtube. Please check the video and try again."; returnValue = false; } return returnValue; }
public UserProject UpdateDetails(User updatedByUser, string name, string description, string website, MediaResource avatar, MediaResource background) { Check.RequireNotNull(updatedByUser, "updatedByUser"); Check.RequireNotNullOrWhitespace(name, "name"); Check.RequireNotNullOrWhitespace(name, "avatar"); Check.RequireNotNullOrWhitespace(name, "background"); SetGroupDetails(name); SetUserProjectDetails( description, website, avatar, background); ApplyEvent(new DomainModelUpdatedEvent <Group>(this, updatedByUser, this)); return(this); }
private void SetUserProjectDetails(string description, string website, MediaResource avatar, MediaResource background) { Description = description; Website = website; Avatar = avatar; Background = background; }
public UserProject UpdateDetails(User updatedByUser, string name, string description, string website, MediaResource avatar, MediaResource background) { Check.RequireNotNull(updatedByUser, "updatedByUser"); Check.RequireNotNullOrWhitespace(name, "name"); Check.RequireNotNullOrWhitespace(name, "avatar"); Check.RequireNotNullOrWhitespace(name, "background"); SetGroupDetails(name); SetUserProjectDetails( description, website, avatar, background); ApplyEvent(new DomainModelUpdatedEvent<Group>(this, updatedByUser, this)); return this; }
public Organisation UpdateDetails(User updatedByUser, string name, string description, string website, MediaResource avatar, MediaResource background, IEnumerable<string> categories) { Check.RequireNotNull(updatedByUser, "updatedByUser"); Check.RequireNotNullOrWhitespace(name, "name"); Check.RequireNotNull(categories != null, "categories"); SetGroupDetails(name); SetOrganisationDetails( description, website, avatar, background, categories); ApplyEvent(new DomainModelUpdatedEvent<Organisation>(this, updatedByUser, this)); return this; }
private void SetTeamDetails(string description, string website, MediaResource avatar) { Description = description; Website = website; Avatar = avatar; }
public Team UpdateDetails(User updatedByUser, string name, string description, string website, MediaResource avatar) { Check.RequireNotNull(updatedByUser, "updatedByUser"); Check.RequireNotNullOrWhitespace(name, "name"); SetGroupDetails(name); SetTeamDetails( description, website, avatar); ApplyEvent(new DomainModelUpdatedEvent <Team>(this, updatedByUser, this)); return(this); }
private void SetDetails(string name, MediaResource avatar, string description, string defaultLicence, string timezone) { Name = name; Avatar = avatar; Description = description; DefaultLicence = defaultLicence; Timezone = timezone; }