public void Save() { MetaObject obj = null; if (ObjectId > 0) { obj = MetaDataWrapper.LoadMetaObject(ObjectId, MetaClassName, Security.CurrentUser.UserID, DateTime.UtcNow); } if (obj == null) { obj = MetaDataWrapper.NewMetaObject(ObjectId, MetaClassName); } foreach (HtmlTableRow row in tblCustomFields.Rows) { if (row.Cells.Count > 1) { HtmlTableCell cell = row.Cells[1]; if (cell.Controls.Count > 0) { ICustomField ctrl = (ICustomField)cell.Controls[0]; object FieldValue = ctrl.Value; string FieldName = ctrl.FieldName; obj[FieldName] = FieldValue; } } } ObjectId = MetaDataWrapper.AcceptChanges(obj); }
/// <summary> /// Gets the web dav URL by WebDavTicket. /// </summary> /// <param name="ticket">The ticket.</param> /// <returns></returns> public static string GetWebDavUrl(string ticket) { string retVal = string.Empty; WebDavTicket webDavTicket = WebDavTicket.Parse(ticket); //Попытаемся определить имя файла if (String.IsNullOrEmpty(webDavTicket.AbsolutePath.FileName)) { if (webDavTicket.AbsolutePath.StorageType == ObjectTypes.File_FileStorage) { FileStorageAbsolutePath fsAbsPath = webDavTicket.AbsolutePath as FileStorageAbsolutePath; if (fsAbsPath != null) { FileStorage fs = new FileStorage(); Mediachase.IBN.Business.ControlSystem.FileInfo fileInfo = fs.GetFile(fsAbsPath.UniqueId); if (fileInfo != null) { webDavTicket.AbsolutePath.FileName = fileInfo.Name; } } } else if (webDavTicket.AbsolutePath.StorageType == ObjectTypes.File_MetaData) { MetaDataAbsolutePath mdAbsPath = webDavTicket.AbsolutePath as MetaDataAbsolutePath; if (mdAbsPath != null) { Mediachase.Ibn.Data.Meta.FileInfo fileInfo = new Mediachase.Ibn.Data.Meta.FileInfo(mdAbsPath.FileUID); webDavTicket.AbsolutePath.FileName = fileInfo.Name; } } else if (webDavTicket.AbsolutePath.StorageType == ObjectTypes.File_MetaDataPlus) { MetaDataPlusAbsolutePath mdpAbsPath = webDavTicket.AbsolutePath as MetaDataPlusAbsolutePath; if (mdpAbsPath != null) { Mediachase.MetaDataPlus.MetaObject obj = MetaDataWrapper.LoadMetaObject(mdpAbsPath.MetaObjectId, mdpAbsPath.MetaObjectType); MetaFile mf = obj[mdpAbsPath.MetaFieldName] as MetaFile; if (mf != null) { webDavTicket.AbsolutePath.FileName = mf.Name; } } } else if (webDavTicket.AbsolutePath.StorageType == ObjectTypes.File_Incident) { EmailStorageAbsolutePath emlAbsPath = webDavTicket.AbsolutePath as EmailStorageAbsolutePath; if (emlAbsPath != null) { EMailMessageInfo emlInfo = EMailMessageInfo.Load(emlAbsPath.EmailMsgId); AttachmentInfo attachInfo = emlInfo.Attachments[emlAbsPath.EmailAttachmentIndex]; webDavTicket.AbsolutePath.FileName = attachInfo.FileName; } } } retVal = GetWebDavUrl(webDavTicket.AbsolutePath, true); return(retVal); }
/// <summary> /// Gets the web dav URL. /// </summary> /// <param name="storageType">Type of the storage.</param> /// <param name="objectId">The object id.</param> /// <param name="objectName">Name of the object.</param> /// <returns></returns> public static string GetMetaDataPlusWebDavUrl(int objectId, string objectType, string fieldName, bool withAuthToken) { string retVal = string.Empty; Mediachase.MetaDataPlus.MetaObject obj = MetaDataWrapper.LoadMetaObject(objectId, objectType); retVal = GetMetaDataPlusWebDavUrl(obj, fieldName, withAuthToken); return(retVal); }
protected void btnDelete_Click(object sender, System.EventArgs e) { int objectId = ObjectId.HasValue ? ObjectId.Value : Convert.ToInt32(Request.QueryString["id"]); string metaClassName = !String.IsNullOrEmpty(MetaClassName) ? MetaClassName : Request.QueryString["class"]; MetaObject obj = MetaDataWrapper.LoadMetaObject(objectId, metaClassName); obj[FieldName] = null; MetaDataWrapper.AcceptChanges(obj); Value = null; }
protected void btnDelete_Click(object sender, System.EventArgs e) { int objectId = ObjectId.HasValue ? ObjectId.Value : Convert.ToInt32(Request.QueryString["id"]); string metaClassName = !String.IsNullOrEmpty(MetaClassName) ? MetaClassName : Request.QueryString["class"]; MetaObject obj = MetaDataWrapper.LoadMetaObject(objectId, metaClassName); obj[FieldName] = null; MetaDataWrapper.AcceptChanges(obj); imgPhoto.Src = "~/layouts/images/transparentpoint.gif"; btnDelete.Visible = false; }
protected void Page_Load(object sender, System.EventArgs e) { int ObjectId = int.Parse(Request.QueryString["Id"]); string MetaClassName = Request.QueryString["Class"]; string FieldName = Request.QueryString["Field"]; MetaObject obj = MetaDataWrapper.LoadMetaObject(ObjectId, MetaClassName); Mediachase.MetaDataPlus.MetaFile mf = (Mediachase.MetaDataPlus.MetaFile)obj[FieldName]; Response.ContentType = "image/jpeg"; Response.BinaryWrite(mf.Buffer); Response.End(); }
public void Save(int objectId) { obj = MetaDataWrapper.LoadMetaObject(objectId, MetaClassName); if (obj == null) { obj = MetaDataWrapper.NewMetaObject(objectId, MetaClassName); } if (mainTable.Controls.Count > 0) { ProcessCollection(mainTable.Controls, obj); } MetaDataWrapper.AcceptChanges(obj); }
private void BindData(bool needToBind) { pageView = new PageView(false, PageViewType.Static, string.Empty, this.Page, MetaClassName); mc = MetaClass.Load(MetaClassName); if (ObjectId > 0) { obj = MetaDataWrapper.LoadMetaObject(ObjectId, MetaClassName); } if (obj == null) { obj = MetaDataWrapper.NewMetaObject(ObjectId, MetaClassName); } GenerateMainTable(); LoadControls(needToBind); wasBound = true; }
protected void btnSave_ServerClick(object sender, System.EventArgs e) { Page.Validate(); if (!Page.IsValid) { return; } MetaObject obj = null; if (ObjectId > 0) { obj = MetaDataWrapper.LoadMetaObject(ObjectId, MetaClassName, Security.CurrentUser.UserID, DateTime.UtcNow); } if (obj == null) { obj = MetaDataWrapper.NewMetaObject(ObjectId, MetaClassName); } foreach (HtmlTableRow row in tblCustomFields.Rows) { HtmlTableCell cell = row.Cells[1]; ICustomField ctrl = (ICustomField)cell.Controls[0]; object FieldValue = ctrl.Value; string FieldName = ctrl.FieldName; obj[FieldName] = FieldValue; } ObjectId = MetaDataWrapper.AcceptChanges(obj); Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "<script language=javascript>" + "try {var str=window.opener.location.href;" + "window.opener.location.href=str;}" + "catch (e){} window.close();</script>"); }
protected virtual ResourceInfo GetResourceInfo(WebDavTicket ticket) { if (ticket == null) { throw new ArgumentNullException("ticket"); } MetaDataPlusAbsolutePath metaAbsPath = ticket.AbsolutePath as MetaDataPlusAbsolutePath; if (metaAbsPath == null) { throw new NullReferenceException("metaAbsPath"); } ResourceInfo retVal = new ResourceInfo(); MetaObject obj = MetaDataWrapper.LoadMetaObject(metaAbsPath.MetaObjectId, metaAbsPath.MetaObjectType); if (obj == null) { throw new NullReferenceException("obj"); } MetaFile metaFile = (MetaFile)obj[metaAbsPath.MetaFieldName]; if (metaFile != null) { retVal.AbsolutePath = ticket.ToString(); retVal.Tag = new object[] { obj, metaFile, metaAbsPath }; retVal.Name = metaFile.Name; retVal.ContentType = ContentTypeResolver.Resolve(Path.GetExtension(metaFile.Name)); retVal.ContentLength = metaFile.Size; retVal.ParentName = "root"; retVal.Modified = metaFile.LastWriteTime; retVal.Created = metaFile.CreationTime; } return(retVal); }
private void BindCustomFields() { int ObjectId = GetObjectId(); string MetaClassName = GetMetaClassName(); MetaObject obj = MetaDataWrapper.LoadMetaObject(ObjectId, MetaClassName); if (obj != null) { int cur_weight = 0; for (int irow = 0; irow < _mflist.Count; irow++) { tblCustomFields.Rows.Add(new HtmlTableRow()); } foreach (MetaField field in obj.MetaClass.UserMetaFields) { if (ContainsMetaField(field.Name)) { cur_weight = _mflist.IndexOf(field.Name); HtmlTableRow row = new HtmlTableRow(); HtmlTableCell cellTitle = new HtmlTableCell(); HtmlTableCell cellValue = new HtmlTableCell(); cellTitle.NoWrap = true; cellTitle.VAlign = "Top"; cellTitle.InnerHtml = String.Format("<span class=ibn-label>{0}:</span>", field.FriendlyName); cellValue.Width = "90%"; object fieldValue = obj[field.Name]; if (fieldValue != null) { switch (field.DataType) { case MetaDataType.File: Mediachase.MetaDataPlus.MetaFile mf = (Mediachase.MetaDataPlus.MetaFile)fieldValue; int ContentTypeId = DSFile.GetContentTypeByFileName(mf.Name); string sInnerHTML = "<img src='../Common/ContentIcon.aspx?IconID=" + +ContentTypeId + "' border='0' align='middle' width='16px' height='16px' /> " + mf.Name; string metaFileUrl = WebDavUrlBuilder.GetMetaDataPlusWebDavUrl(ObjectId, MetaClassName, field.Name, true); string sNameLocked = Util.CommonHelper.GetLockerText(metaFileUrl); cellValue.InnerHtml = String.Format("<a href='{0}'>{1}</a> {2}", metaFileUrl, sInnerHTML, sNameLocked); //cellValue.InnerHtml = "<a href='../Modules/DownloadMetaFile.aspx?Id="+ObjectId.ToString()+ // "&Class="+MetaClassName+"&Field="+field.Name+"'>"+sInnerHTML+"</a>"; break; case MetaDataType.ImageFile: cellValue.InnerHtml = "<img align='middle' border='0' src='../Modules/GetMetaImageFile.aspx?Id=" + ObjectId.ToString() + "&Class=" + MetaClassName + "&Field=" + field.Name + "' />"; break; case MetaDataType.Binary: case MetaDataType.VarBinary: cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", "[BinaryData]"); break; case MetaDataType.Bit: case MetaDataType.Boolean: if ((bool)fieldValue) { cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", LocRM.GetString("BooleanYes")); } else { cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", LocRM.GetString("BooleanNo")); } break; case MetaDataType.Date: cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", ((DateTime)fieldValue).ToShortDateString()); break; case MetaDataType.Email: cellValue.InnerHtml = String.Format("<a href='mailto:{0}'>{0}</a>", fieldValue.ToString()); break; case MetaDataType.Image: cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", "[Image]"); break; case MetaDataType.LongHtmlString: cellValue.InnerHtml = String.Format("<span class=ibn-description>{0}</span>", fieldValue.ToString()); break; case MetaDataType.DateTime: case MetaDataType.SmallDateTime: case MetaDataType.Timestamp: cellValue.InnerHtml = String.Format("<span class=ibn-value>{0} {1}</span>", ((DateTime)fieldValue).ToShortDateString(), ((DateTime)fieldValue).ToShortTimeString()); break; case MetaDataType.Url: cellValue.InnerHtml = String.Format("<a href='{0}' target='_blank'>{0}</a>", Server.UrlDecode(fieldValue.ToString())); break; case MetaDataType.Money: cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", ((decimal)fieldValue).ToString("f")); break; case MetaDataType.Float: cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", fieldValue.ToString()); break; case MetaDataType.EnumSingleValue: case MetaDataType.DictionarySingleValue: MetaDictionaryItem item = (MetaDictionaryItem)fieldValue; cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", item.Value); break; case MetaDataType.EnumMultivalue: case MetaDataType.DictionaryMultivalue: MetaDictionaryItem[] items = (MetaDictionaryItem[])fieldValue; string sItems = String.Empty; foreach (MetaDictionaryItem mdItem in items) { if (sItems != "") { sItems += "<br>"; } sItems += mdItem.Value; } sItems = String.Format(CultureInfo.InvariantCulture, "<span class=ibn-value>{0}</span>", sItems); cellValue.InnerHtml = sItems; break; default: try { cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", fieldValue.ToString()); } catch { cellValue.InnerHtml = ""; } break; } } cellTitle.Attributes.Add("class", "text"); cellValue.Attributes.Add("class", "text"); row.Cells.Add(cellTitle); row.Cells.Add(cellValue); //tblCustomFields.Rows.Add(row); tblCustomFields.Rows.Insert(cur_weight, row); tblCustomFields.Rows.RemoveAt(cur_weight + 1); } } } }
private void BindCustomFields() { MetaObject obj = null; if (ObjectId > 0) { obj = MetaDataWrapper.LoadMetaObject(ObjectId, MetaClassName); } if (obj == null) { obj = MetaDataWrapper.NewMetaObject(ObjectId, MetaClassName); } foreach (MetaField field in obj.MetaClass.UserMetaFields) { HtmlTableRow row = new HtmlTableRow(); HtmlTableCell cellTitle = new HtmlTableCell(); HtmlTableCell cellValue = new HtmlTableCell(); cellTitle.Attributes.Add("class", "ibn-label"); cellTitle.Width = "110px"; cellTitle.VAlign = "middle"; cellTitle.InnerHtml = String.Format("{0}:", field.FriendlyName); object fieldValue = obj[field.Name]; System.Web.UI.UserControl control = null; switch (field.DataType) { case MetaDataType.Binary: cellValue.InnerText = "[BinaryData]"; break; case MetaDataType.File: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/FileValue.ascx"); break; case MetaDataType.ImageFile: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/ImageFileValue.ascx"); break; case MetaDataType.DateTime: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/DateTimeValue.ascx"); break; case MetaDataType.Money: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/MoneyValue.ascx"); break; case MetaDataType.Float: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/FloatValue.ascx"); break; case MetaDataType.Integer: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/IntValue.ascx"); break; case MetaDataType.Boolean: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/BooleanValue.ascx"); break; case MetaDataType.Date: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/DateValue.ascx"); break; case MetaDataType.Email: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/EmailValue.ascx"); break; case MetaDataType.Url: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/URLValue.ascx"); break; case MetaDataType.ShortString: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/ShortStringValue.ascx"); break; case MetaDataType.LongString: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/LongStringValue.ascx"); break; case MetaDataType.LongHtmlString: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/LongHTMLStringValue.ascx"); break; case MetaDataType.DictionarySingleValue: case MetaDataType.EnumSingleValue: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/DictionarySingleValue.ascx"); ((DictionarySingleValue)control).InitControl(field.Id, (field.AllowNulls ? !field.IsRequired : field.AllowNulls)); break; case MetaDataType.DictionaryMultivalue: case MetaDataType.EnumMultivalue: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/DictionaryMultivalue.ascx"); ((DictionaryMultivalue)control).InitControl(field.Id); break; default: if (fieldValue != null) { cellValue.InnerText = fieldValue.ToString(); } break; } if (control != null) { cellValue.Controls.Add(control); } row.Cells.Add(cellTitle); row.Cells.Add(cellValue); tblCustomFields.Rows.Add(row); if (control != null) { ICustomField iCustomField = ((ICustomField)control); iCustomField.FieldName = field.Name; if (fieldValue != null) { iCustomField.Value = fieldValue; } if (field.AllowNulls) { iCustomField.AllowEmptyValues = !field.IsRequired; } else { iCustomField.AllowEmptyValues = false; } } } }
private void BindCustomFields() { MetaObject obj = null; if (ObjectId > 0) { obj = MetaDataWrapper.LoadMetaObject(ObjectId, MetaClassName); } if (obj == null) { obj = MetaDataWrapper.NewMetaObject(ObjectId, MetaClassName); } MetaClass mc = obj.MetaClass; SortedList <int, MetaField> userMetaFields = new SortedList <int, MetaField>(); foreach (MetaField field in mc.UserMetaFields) { if (ContainsMetaField(field.Name)) { int cur_weight = _mflist.IndexOf(field.Name); userMetaFields.Add(cur_weight, field); } } foreach (MetaField field in userMetaFields.Values) { HtmlTableRow row = new HtmlTableRow(); HtmlTableCell cellTitle = new HtmlTableCell(); HtmlTableCell cellValue = new HtmlTableCell(); cellTitle.VAlign = "middle"; cellTitle.InnerHtml = String.Format("<b>{0}</b>:", field.FriendlyName); object fieldValue = obj[field.Name]; System.Web.UI.UserControl control = null; switch (field.DataType) { case MetaDataType.Binary: cellValue.InnerText = "[BinaryData]"; break; case MetaDataType.File: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/FileValue.ascx"); break; case MetaDataType.ImageFile: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/ImageFileValue.ascx"); break; case MetaDataType.DateTime: //control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/DateTimeValue.ascx"); Mediachase.UI.Web.Modules.EditControls.DateTimeValue control_datetime = (Mediachase.UI.Web.Modules.EditControls.DateTimeValue)Page.LoadControl("~/Modules/EditControls/DateTimeValue.ascx"); control_datetime.Path_JS = "../../Scripts/"; control = (System.Web.UI.UserControl)control_datetime; break; case MetaDataType.Money: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/MoneyValue.ascx"); break; case MetaDataType.Float: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/FloatValue.ascx"); break; case MetaDataType.Integer: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/IntValue.ascx"); break; case MetaDataType.Boolean: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/BooleanValue.ascx"); break; case MetaDataType.Date: //control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/DateValue.ascx"); Mediachase.UI.Web.Modules.EditControls.DateValue control_date = (Mediachase.UI.Web.Modules.EditControls.DateValue)Page.LoadControl("~/Modules/EditControls/DateValue.ascx"); control_date.Path_JS = "../../Scripts/"; control = (System.Web.UI.UserControl)control_date; break; case MetaDataType.Email: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/EmailValue.ascx"); break; case MetaDataType.Url: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/URLValue.ascx"); break; case MetaDataType.ShortString: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/ShortStringValue.ascx"); break; case MetaDataType.LongString: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/LongStringValue.ascx"); break; case MetaDataType.LongHtmlString: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/LongHTMLStringValue.ascx"); break; case MetaDataType.DictionarySingleValue: case MetaDataType.EnumSingleValue: control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/DictionarySingleValue.ascx"); ((DictionarySingleValue)control).InitControl(field.Id, (field.AllowNulls ? !field.IsRequired : field.AllowNulls)); break; case MetaDataType.DictionaryMultivalue: case MetaDataType.EnumMultivalue: cellTitle.VAlign = "top"; control = (System.Web.UI.UserControl)Page.LoadControl("~/Modules/EditControls/DictionaryMultivalue.ascx"); ((DictionaryMultivalue)control).InitControl(field.Id); break; default: if (fieldValue != null) { cellValue.InnerText = fieldValue.ToString(); } break; } if (control != null) { cellValue.Controls.Add(control); } row.Cells.Add(cellTitle); row.Cells.Add(cellValue); tblCustomFields.Rows.Add(row); if (control != null) { ICustomField iCustomField = ((ICustomField)control); iCustomField.FieldName = field.Name; if (fieldValue != null) { iCustomField.Value = fieldValue; } iCustomField.AllowEmptyValues = !mc.GetFieldIsRequired(field); } } }