private static string GetLastModified(PCAxis.Paxiom.PXMeta meta) { string date = ""; DateTime maxDate = DateTime.MinValue; if (meta.ContentVariable != null) { foreach (var value in meta.ContentVariable.Values) { if (value.ContentInfo != null) { if (value.ContentInfo.LastUpdated != "") { DateTime d = GetDate(value.ContentInfo.LastUpdated); maxDate = maxDate > d?maxDate:d; } } } if (meta.ContentInfo != null) { if (meta.ContentInfo.LastUpdated != "") { DateTime d = GetDate(meta.ContentInfo.LastUpdated); maxDate = maxDate > d ? maxDate : d; } } if (maxDate != DateTime.MinValue) { //TODO Use Date format //date = maxDate.ToString(); // Store date in the PC-Axis date format date = maxDate.ToString(PCAxis.Paxiom.PXConstant.PXDATEFORMAT); } } else { if (meta.ContentInfo != null) { date = meta.ContentInfo.LastUpdated; } } if (string.IsNullOrEmpty(date)) { //date = maxDate.ToString(); date = ""; } return(date); }
private TableLink CreateTableLink(PCAxis.Paxiom.PXMeta meta, string path) { ItemSelection cid = new ItemSelection(System.IO.Path.GetDirectoryName(path.Substring(System.Web.HttpContext.Current.Server.MapPath(Settings.Current.General.Paths.PxDatabasesPath).Length)), path.Substring(System.Web.HttpContext.Current.Server.MapPath(Settings.Current.General.Paths.PxDatabasesPath).Length)); //TableLink tbl = new TableLink(meta.DescriptionDefault ? meta.Description : meta.Title ?? meta.Description, meta.Matrix, meta.DescriptionDefault ? meta.Description : meta.Title ?? meta.Description, cid.Menu, cid.Selection, meta.Description ?? "", // LinkType.PX, TableStatus.AccessibleToAll, null, "", "", meta.TableID ?? "", // PresCategory.Official); //TableLink tbl = new TableLink(!string.IsNullOrEmpty(meta.Description) ? meta.Description : meta.Title, meta.Matrix, !string.IsNullOrEmpty(meta.Description) ? meta.Description : meta.Title, path.Substring(System.Web.HttpContext.Current.Server.MapPath(Settings.Current.General.Paths.PxDatabasesPath).Length), meta.Description ?? "", // LinkType.PX, TableStatus.AccessibleToAll, null, "", "", meta.TableID ?? "", // PresCategory.Official); TableLink tbl = new TableLink(!string.IsNullOrEmpty(meta.Description) ? meta.Description : meta.Title, meta.Matrix, _sortOrder(meta, path), cid.Menu, cid.Selection, meta.Description ?? "", LinkType.PX, TableStatus.AccessibleToAll, null, "", "", meta.TableID ?? "", PresCategory.Official); int cellCount = 1; for (int i = 0; i < meta.Variables.Count; i++) { tbl.SetAttribute("Var" + (i + 1) + "Name", meta.Variables[i].Name); tbl.SetAttribute("Var" + (i + 1) + "Values", GetNames(meta.Variables[i])); tbl.SetAttribute("Var" + (i + 1) + "NumberOfValues", meta.Variables[i].Values.Count.ToString()); cellCount *= meta.Variables[i].Values.Count; } System.IO.FileInfo info = new System.IO.FileInfo(path); tbl.SetAttribute("size", info.Length); tbl.SetAttribute("cells", cellCount.ToString()); if (meta.AutoOpen) { tbl.SetAttribute("autoOpen", "true"); } //TODO Use Data format //tbl.SetAttribute("updated", info.LastWriteTime.ToString()); // Store dates in the PC-Axis date format tbl.SetAttribute("updated", info.LastWriteTime.ToString(PCAxis.Paxiom.PXConstant.PXDATEFORMAT)); tbl.SetAttribute("modified", GetLastModified(meta)); string lastUpdated = GetLastModified(meta); if (PxDate.IsPxDate(lastUpdated)) { tbl.LastUpdated = PxDate.PxDateStringToDateTime(lastUpdated); } tbl.Published = info.LastWriteTime; return(tbl); }
public void NewItem(object item, string path) { if (item is AliasItem) { AliasItem alias = (AliasItem)item; if (Array.IndexOf(_languages, alias.Language) >= 0) { if (_currentItems[alias.Language].Text == _currentItems[alias.Language].SortCode) { _currentItems[alias.Language].SortCode = alias.Alias; } _currentItems[alias.Language].Text = alias.Alias; } } else if (item is LinkItem) { LinkItem itm = (LinkItem)item; if (Array.IndexOf(_languages, itm.Language) >= 0) { if (CheckIfLinkShallBeAdded(path, _currentItems[itm.Language])) { //Url url = new Url(itm.Text, "", path, "", PresCategory.NotSet, itm.Location, LinkPres.NotSet); Url url = new Url(itm.Text, "", "MENU_TEST", itm.Location, "", PresCategory.NotSet, itm.Location, LinkPres.NotSet); _currentItems[itm.Language].SubItems.Add(url); } } } else if (item is MenuSortItem) { MenuSortItem sort = item as MenuSortItem; if (Array.IndexOf(_languages, sort.Language) >= 0) { _currentItems[sort.Language].SortCode = sort.SortString; } } else if (item is PCAxis.Paxiom.PXMeta) { PCAxis.Paxiom.PXMeta meta = (PCAxis.Paxiom.PXMeta)item; foreach (var language in _languages) { if (meta.HasLanguage(language)) { meta.SetLanguage(language); TableLink tbl = CreateTableLink(meta, path); _currentItems[language].AddSubItem(tbl); } else { if (!_languageDependent) { if (meta.HasLanguage(Settings.Current.General.Language.DefaultLanguage)) { meta.SetLanguage(Settings.Current.General.Language.DefaultLanguage); } else { meta.SetLanguage("default"); } TableLink tbl = CreateTableLink(meta, path); _currentItems[language].AddSubItem(tbl); } } } } }
public static void ApplyEliminationIfSupported(PCAxis.Paxiom.Selection[] selections, SqlDbConfig config, InfoForDbConnection dbInfo, PCAxis.Paxiom.PXMeta pxMeta) { /* * SqlDbConfig_24 DB = config as SqlDbConfig_24; * * if (DB != null && config.MetaModel.Equals("2.4")) * { * PxSqlCommand mSqlCommand = new PxSqlCommand(dbInfo.DataBaseType, dbInfo.DataProvider, dbInfo.ConnectionString); * string eliminationMethodC = "C"; * * foreach (var selection in selections.Where(x => x.ValueCodes.Count == 0).ToArray()) * { * StringBuilder sqlString = new StringBuilder(""); * sqlString.AppendLine("SELECT DISTINCT "); * sqlString.AppendLine(DB.ValueSet.EliminationCodeCol.ForSelect()); * sqlString.AppendLine(" FROM " + DB.ValueSet.GetNameAndAlias()); * sqlString.AppendLine(" INNER JOIN " + DB.SubTableVariable.GetNameAndAlias()); * sqlString.AppendLine(" ON " + DB.ValueSet.Alias + "." + DB.ValueSet.ValueSetCol.PureColumnName() + " = " + DB.SubTableVariable.Alias + "." + DB.SubTableVariable.ValueSetCol.PureColumnName()); * sqlString.AppendLine(" WHERE " + DB.SubTableVariable.MainTableCol.Is()); * sqlString.AppendLine(" AND " + DB.SubTableVariable.VariableCol.Is()); * sqlString.AppendLine(" AND " + DB.ValueSet.EliminationMethodCol.Is()); * * System.Data.Common.DbParameter[] parameters = new System.Data.Common.DbParameter[3]; * parameters[0] = DB.SubTableVariable.MainTableCol.GetStringParameter(pxMeta.MainTable); * parameters[1] = DB.SubTableVariable.VariableCol.GetStringParameter(selection.VariableCode); * parameters[2] = DB.SubTableVariable.VariableCol.GetStringParameter(eliminationMethodC); * * var ds = mSqlCommand.ExecuteSelect(sqlString.ToString(), parameters); * var dt = ds.Tables[0]; * * if(dt.Rows.Count != 1) throw new Exception("Could not resolve eliminination code"); * * var eliminationCode = (string)dt.Rows[0][0]; * selection.ValueCodes.Add(eliminationCode); * } * } */ }