Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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);
                 }
             }
         }
     }
 }
Beispiel #4
0
 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);
      *  }
      * }
      */
 }