protected void ValidationViewSubmitButton_Click(object sender, EventArgs e) { /* if (this.FedoraContentObject == null || String.IsNullOrEmpty(this.FedoraContentObject.PID)) * { * FedoraContentObject = DAL.GetContentObjectById(ContentObjectID, false, false); ; * }*/ vwarDAL.IDataRepository dal = (new vwarDAL.DataAccessFactory()).CreateDataRepositorProxy();; FedoraContentObject = dal.GetContentObjectById(ContentObjectID, false, false); if (!string.IsNullOrEmpty(this.UnitScaleTextBox.Text)) { this.FedoraContentObject.UnitScale = this.UnitScaleTextBox.Text.Trim(); } this.FedoraContentObject.UpAxis = this.UpAxisRadioButtonList.SelectedValue.Trim(); //polygons int numPolys = 0; if (int.TryParse(NumPolygonsTextBox.Text, out numPolys)) { FedoraContentObject.NumPolygons = numPolys; } int numTextures = 0; if (int.TryParse(NumTexturesTextBox.Text, out numTextures)) { FedoraContentObject.NumTextures = numTextures; } FedoraContentObject.Enabled = true; dal.UpdateContentObject(this.FedoraContentObject); //redirect Response.Redirect(Website.Pages.Types.FormatModel(this.ContentObjectID)); dal.Dispose(); }
protected void Step1NextButton_Click(object sender, EventArgs e) { //update if (IsModelUpload) { vwarDAL.IDataRepository dal = (new vwarDAL.DataAccessFactory()).CreateDataRepositorProxy();; if (this.IsNew) { //create new & add to session ContentObject co = new ContentObject(dal); co.Title = this.TitleTextBox.Text.Trim(); co.UploadedDate = DateTime.Now; co.LastModified = DateTime.Now; co.Views = 0; co.SubmitterEmail = Context.User.Identity.Name.Trim(); dal.InsertContentObject(co); FedoraContentObject = co; this.ContentObjectID = co.PID; } else { FedoraContentObject.Title = TitleTextBox.Text.Trim(); } if (this.FedoraContentObject != null) { //asset type this.FedoraContentObject.AssetType = "Model"; string newFileName = TitleTextBox.Text.ToLower().Replace(' ', '_') + Path.GetExtension(this.ContentFileUpload.PostedFile.FileName); //model upload Utility_3D.ConvertedModel model = null; if (this.ContentFileUpload.HasFile) { string newOriginalFileName = "original_" + newFileName; if (IsNew) { using (MemoryStream stream = new MemoryStream()) { stream.Write(this.ContentFileUpload.FileBytes, 0, this.ContentFileUpload.FileBytes.Length); FedoraContentObject.OriginalFileId = dal.SetContentFile(stream, FedoraContentObject.PID, newOriginalFileName); } } else { //Update the original file dal.UpdateFile(this.ContentFileUpload.FileBytes, FedoraContentObject.PID, FedoraContentObject.OriginalFileName, newOriginalFileName); } FedoraContentObject.OriginalFileName = newOriginalFileName; Utility_3D.Model_Packager pack = new Utility_3D.Model_Packager(); Utility_3D _3d = new Utility_3D(); Utility_3D.ConverterOptions cOptions = new Utility_3D.ConverterOptions(); cOptions.EnableTextureConversion(Utility_3D.ConverterOptions.PNG); cOptions.EnableScaleTextures(Website.Config.MaxTextureDimension); _3d.Initialize(Website.Config.ConversionLibarayLocation); string UploadedFilename = newFileName; if (Path.GetExtension(UploadedFilename) != ".zip") { UploadedFilename = Path.ChangeExtension(newFileName, ".zip"); } try { model = pack.Convert(this.ContentFileUpload.PostedFile.InputStream, this.ContentFileUpload.PostedFile.FileName, cOptions); } catch { Response.Redirect(Page.ResolveClientUrl("~/Public/Model.aspx?ContentObjectID=" + this.ContentObjectID)); } var displayFilePath = ""; string convertedFileName = newFileName.Replace(Path.GetExtension(newFileName).ToLower(), ".zip"); if (this.ContentFileUpload.HasFile) { using (Stream stream = new MemoryStream()) { stream.Write(model.data, 0, model.data.Length); stream.Seek(0, SeekOrigin.Begin); FedoraContentObject.Location = UploadedFilename; //FedoraContentObject.DisplayFileId = dal.SetContentFile(stream, FedoraContentObject, UploadedFilename); } } else { using (MemoryStream stream = new MemoryStream()) { stream.Write(model.data, 0, model.data.Length); stream.Seek(0, SeekOrigin.Begin); dal.SetContentFile(stream, FedoraContentObject, UploadedFilename); FedoraContentObject.Location = UploadedFilename; } } FedoraContentObject.Location = convertedFileName; if (model.type != "UNKNOWN") { string optionalPath = (newFileName.LastIndexOf("o3d", StringComparison.CurrentCultureIgnoreCase) != -1) ? "viewerTemp/" : "converterTemp/"; string pathToTempFile = "~/App_Data/" + optionalPath; string destPath = Path.Combine(Context.Server.MapPath(pathToTempFile), newFileName); System.IO.FileStream savefile = new FileStream(destPath, FileMode.OpenOrCreate); byte[] filedata = new Byte[model.data.Length]; model.data.CopyTo(filedata, 0); savefile.Write(model.data, 0, (int)model.data.Length); savefile.Close(); string outfilename = Context.Server.MapPath("~/App_Data/viewerTemp/") + newFileName.Replace(".zip", ".o3d"); string convertedtempfile = ConvertFileToO3D(destPath, outfilename); displayFilePath = FedoraContentObject.DisplayFile; string o3dFileName = newFileName.Replace(Path.GetExtension(newFileName).ToLower(), ".o3d"); if (this.ContentFileUpload.HasFile) { using (FileStream stream = new FileStream(convertedtempfile, FileMode.Open)) { FedoraContentObject.DisplayFileId = dal.SetContentFile(stream, FedoraContentObject, o3dFileName); } } else { using (MemoryStream stream = new MemoryStream()) { stream.Write(filedata, 0, filedata.Length); stream.Seek(0, SeekOrigin.Begin); dal.SetContentFile(stream, FedoraContentObject, UploadedFilename); FedoraContentObject.DisplayFile = Path.GetFileName(FedoraContentObject.DisplayFile); } } FedoraContentObject.DisplayFile = o3dFileName; } else { FedoraContentObject.DisplayFile = string.Empty; } FedoraContentObject.UnitScale = model._ModelData.TransformProperties.UnitMeters.ToString(); FedoraContentObject.UpAxis = model._ModelData.TransformProperties.UpAxis; FedoraContentObject.NumPolygons = model._ModelData.VertexCount.Polys; FedoraContentObject.NumTextures = model._ModelData.ReferencedTextures.Length; PopulateValidationViewMetadata(FedoraContentObject); } //upload thumbnail if (this.ThumbnailFileUpload.HasFile) { int length = (int)this.ThumbnailFileUpload.PostedFile.InputStream.Length; if (IsNew || FedoraContentObject.ScreenShot == "")// order counts here have to set screenshot id after the update so we can find the correct dsid { this.FedoraContentObject.ScreenShot = "screenshot.png"; } FedoraContentObject.ScreenShotId = dal.SetContentFile(this.ThumbnailFileUpload.PostedFile.InputStream, this.FedoraContentObject, FedoraContentObject.ScreenShot); string ext = new FileInfo(ThumbnailFileUpload.PostedFile.FileName).Extension.ToLower(); System.Drawing.Imaging.ImageFormat format; if (ext == ".png") { format = System.Drawing.Imaging.ImageFormat.Png; } else if (ext == ".jpg") { format = System.Drawing.Imaging.ImageFormat.Jpeg; } else if (ext == ".gif") { format = System.Drawing.Imaging.ImageFormat.Gif; } else { ScreenshotValidator.Visible = true; ScreenshotValidator.Text = "Nice job generating a POST request without the interface. Don't you feel special?"; return; } //Avoid wasting space by removing old thumbnails //if (!String.IsNullOrEmpty(FedoraContentObject.ThumbnailId)) // File.Delete("~/thumbnails/" + FedoraContentObject.ThumbnailId); //Use the original file bytes to remain consistent with the new file upload ID creation for thumbnails FedoraContentObject.ThumbnailId = Website.Common.GetFileSHA1AndSalt(ThumbnailFileUpload.PostedFile.InputStream) + ext; //using (FileStream outFile = new FileStream(HttpContext.Current.Server.MapPath("~/thumbnails/" + FedoraContentObject.ThumbnailId), FileMode.Create)) // Website.Common.GenerateThumbnail(ThumbnailFileUpload.PostedFile.InputStream, outFile, format); } //creative commons license url if (this.CCLicenseDropDownList.SelectedItem != null && this.CCLicenseDropDownList.SelectedValue != "None") { this.FedoraContentObject.CreativeCommonsLicenseURL = this.CCLicenseDropDownList.SelectedValue.Trim(); } //Require Resubmit Checkbox FedoraContentObject.RequireResubmit = this.RequireResubmitCheckbox.Checked; //developer logo this.UploadDeveloperLogo(dal, this.FedoraContentObject); //developer name if (!string.IsNullOrEmpty(this.DeveloperNameTextBox.Text)) { this.FedoraContentObject.DeveloperName = this.DeveloperNameTextBox.Text.Trim(); } //sponsor logo this.UploadSponsorLogo(dal, this.FedoraContentObject); //sponsor name if (!string.IsNullOrEmpty(this.SponsorNameTextBox.Text)) { this.FedoraContentObject.SponsorName = this.SponsorNameTextBox.Text.Trim(); } //artist name if (!string.IsNullOrEmpty(this.ArtistNameTextBox.Text)) { this.FedoraContentObject.ArtistName = this.ArtistNameTextBox.Text.Trim(); } //format if (!string.IsNullOrEmpty(this.FormatTextBox.Text)) { this.FedoraContentObject.Format = this.FormatTextBox.Text.Trim(); } //description if (!string.IsNullOrEmpty(this.DescriptionTextBox.Text)) { this.FedoraContentObject.Description = this.DescriptionTextBox.Text.Trim(); } //more information url if (!string.IsNullOrEmpty(this.MoreInformationURLTextBox.Text)) { this.FedoraContentObject.MoreInformationURL = this.MoreInformationURLTextBox.Text.Trim(); } //keywords string cleanTags = ""; foreach (string s in KeywordsTextBox.Text.Split(',')) { cleanTags += s.Trim() + ","; } cleanTags = HttpContext.Current.Server.HtmlEncode(cleanTags.Trim(',')); this.FedoraContentObject.Keywords = cleanTags; } dal.UpdateContentObject(FedoraContentObject); if (IsNew) { PermissionsManager perm = new PermissionsManager(); perm.SetModelToGroupLevel(System.Configuration.ConfigurationManager.AppSettings["DefaultAdminName"], FedoraContentObject.PID, vwarDAL.DefaultGroups.AllUsers, ModelPermissionLevel.Fetchable); perm.SetModelToGroupLevel(System.Configuration.ConfigurationManager.AppSettings["DefaultAdminName"], FedoraContentObject.PID, vwarDAL.DefaultGroups.AnonymousUsers, ModelPermissionLevel.Searchable); perm.Dispose(); } SetModelDisplay(); this.PopulateValidationViewMetadata(FedoraContentObject); this.MultiView1.SetActiveView(this.ValidationView); var admins = UserProfileDB.GetAllAdministrativeUsers(); foreach (DataRow row in admins.Rows) { var url = Request.Url.OriginalString.Replace(Request.Url.PathAndQuery, this.ResolveUrl(Website.Pages.Types.FormatModel(this.ContentObjectID))); Website.Mail.SendModelUploaded(FedoraContentObject); } dal.Dispose(); } }
public string UpdateThumbnailCache(string pid) { vwarDAL.IDataRepository dal = (new vwarDAL.DataAccessFactory()).CreateDataRepositorProxy(); foreach (vwarDAL.ContentObject co in allpids) { if (co.PID == pid) { try { System.IO.Stream screenshotdata = dal.GetContentFile(co.PID, co.ScreenShot); if (screenshotdata != null) { int length = (int)screenshotdata.Length; if (length != 0) { string ext = new FileInfo(co.ScreenShot).Extension.ToLower(); System.Drawing.Imaging.ImageFormat format; format = System.Drawing.Imaging.ImageFormat.Png; if (ext == ".png") { format = System.Drawing.Imaging.ImageFormat.Png; } else if (ext == ".jpg") { format = System.Drawing.Imaging.ImageFormat.Jpeg; } else if (ext == ".gif") { format = System.Drawing.Imaging.ImageFormat.Gif; } //Use the original file bytes to remain consistent with the new file upload ID creation for thumbnails co.ThumbnailId = Website.Common.GetFileSHA1AndSalt(screenshotdata) + ext; dal.UpdateContentObject(co); try { File.Delete(HttpContext.Current.Server.MapPath("~/thumbnails/" + co.ThumbnailId)); } catch (System.IO.FileNotFoundException t) { } using (FileStream outFile = new FileStream(HttpContext.Current.Server.MapPath("~/thumbnails/" + co.ThumbnailId), FileMode.Create)) Website.Common.GenerateThumbnail(screenshotdata, outFile, format); } else { dal.Dispose(); return("No screenshot data"); } } else { dal.Dispose(); return("No screenshot data"); } } catch (System.Exception ex) { return(ex.Message); } } } dal.Dispose(); return("OK"); }