Beispiel #1
0
 public SourceTableProvider(TableLink sourceTableLink, RowLink[] sourceRows)
 {
   this.sourceTableLink = sourceTableLink;
   //this.table = sourceTableLink.Table.Copy();
   this.table = sourceTableLink.Table.Clone();
   foreach (RowLink sourceRow in sourceRows)
   {
     table.ImportRow(sourceRow.DataRow);
   }
 }
Beispiel #2
0
 public static List<int> GetSelectedLetterIds(JsonData json, TableLink letterTable)
 {
   List<int> selectedLetterIds = new List<int>();
   foreach (RowLink letter in letterTable.AllRows)
   {
     int letterId = letter.Get(LetterType.Id);
     if (json.GetText(string.Format("check_{0}", letterId)) == "True")
       selectedLetterIds.Add(letterId);
   }
   return selectedLetterIds;
 }
Beispiel #3
0
    public static TableLink LoadTableLink(IDataLayer dbConnection, IPrimaryKeyCreator primaryKeyCreator,
      FieldBlank[] fields, IndexBlank[] indicies, LinkConstraint[] constraints,
      string database, string select, string conditionWithoutWhere, params DbParameter[] conditionParameters)
    {
      TableLink link = new TableLink(
        new DatabaseTableProvider(dbConnection, database, select, conditionWithoutWhere, conditionParameters),
        primaryKeyCreator, fields, indicies, constraints);

      if (primaryKeyCreator != null)
        link.Table.PrimaryKey = new DataColumn[] { link.Table.Columns[0] };

      return link;
    }
Beispiel #4
0
    //public SourceTableProvider(TableLink sourceTableLink, RowLink[] sourceRows)
    //{
    //  this.sourceTableLink = sourceTableLink;

    //  this.table = sourceTableLink.Table.Clone();

    //  foreach (RowLink sourceRow in sourceRows)
    //  {
    //    DataRow newRow = table.NewRow();
    //    for (int i = 0; i < table.Columns.Count; ++i)
    //    {
    //      newRow[i] = sourceRow.DataRow[i];
    //    }
    //    table.Rows.Add(newRow);
    //  }

    //  table.AcceptChanges();
    //}

    public SourceTableProvider(TableLink sourceTableLink, IndexBlank index, params object[] keyParts) :
      this(sourceTableLink, sourceTableLink.FindRows(index, keyParts))
    {
    }
Beispiel #5
0
 public UniversalKey CreateKey(TableLink tableLink, IRowLink rowLink)
 {
   object[] partKeys = new object[IndexColumns.Length];
   for (int i = 0; i < partKeys.Length; ++i)
   {
     FieldLink fieldLink = tableLink.GetFieldLink(IndexColumns[i]);
     partKeys[i] = fieldLink.FieldBlank.GetValue(rowLink);
   }
   return new UniversalKey(partKeys);
 }
Beispiel #6
0
    //public static HButton IconButton(string caption, string fontIcon)
    //{
    //  return std.Button(caption,
    //    new HBefore().FontFamily("sept").Content(fontIcon).VAlign(-2).MarginRight("4px")
    //  );
    //  //return std.Button(caption, new HLabel("",
    //  //  new HBefore().FontFamily("sept").Content(fontIcon).VAlign(-2))
    //  //);
    //}

    public static IHtmlControl MoreComboButton(MailState state, TableLink letterTable)
    {
      return std.ComboButton(
        new HBefore().FontFamily("sept").Content(@"\2261").VAlign(-2).MarginRight("3px").MarginLeft(-1),
        "Ещё", false,
        new HLabel("Отметьте галочками нужные письма").Unselectable().Color(Color.Gray).Padding(4, 8).NoWrap(),
        std.Separator(),
        new HButton("Пометить прочитанным")
          .Event("letter_to_read", "mailListData", delegate(JsonData json)
          {
            List<int> selectedLetterIds = DataHlp.GetSelectedLetterIds(json, letterTable);
            if (selectedLetterIds.Count == 0)
            {
              state.Operation.Error = "Нет выбранных писем";
              return;
            }
            dbConnection.GetScalar("", string.Format(
              "update letter Set read = 1 Where id in ({0})",
              StringHlp.Join(", ", "{0}", selectedLetterIds)
            ));
          }),
        new HButton("Пометить непрочитанным")
          .Event("letter_to_unread", "mailListData", delegate(JsonData json)
          {
            List<int> selectedLetterIds = DataHlp.GetSelectedLetterIds(json, letterTable);
            if (selectedLetterIds.Count == 0)
            {
              state.Operation.Error = "Нет выбранных писем";
              return;
            }
            dbConnection.GetScalar("", string.Format(
              "update letter Set read = 0 Where id in ({0})",
              StringHlp.Join(", ", "{0}", selectedLetterIds)
            ));
          })
      );

      //return new HDropdown2(
      //  false,
      //  new HDropStyle().
      //    DropList(new HTone()
      //      .Right("0px").Top("31px")
      //      .Background(Color.FromArgb(247, 247, 247))
      //      .Border("1px", "solid", Color.FromArgb(224, 224, 224), "2px")
      //      .CssAttribute("border-top", "none")
      //      .Padding(4, 0)
      //    ).
      //    RootWhenDropped(new HTone()
      //      .Background(Color.FromArgb(247, 247, 247))
      //      .Border("1px", "solid", Color.FromArgb(224, 224, 224), "0px")
      //      .CssAttribute("border-bottom", "none")
      //    ).
      //    AnyItem(new HTone().Padding(4, 8)).
      //    SelectedItem(new HTone()
      //      .Color(Color.FromArgb(245, 255, 230))
      //      .Background(Color.FromArgb(99, 99, 99))
      //    ),
      //  new HButton("Выделенные письма",
      //    new HAfter().Content(@"▼").FontSize("60%").MarginLeft(4).MarginRight(-2).VAlign(1),
      //    new HHover().Border("1px", "solid", Color.FromArgb(170, 170, 170), "2px").
      //      LinearGradient("to top right", Color.FromArgb(204, 204, 204), Color.FromArgb(234, 234, 234))
      //  )
      //  .Padding(6, 12)
      //  .LinearGradient("to top right", Color.FromArgb(221, 221, 221), Color.FromArgb(241, 241, 241))
      //  .Border("1px", "solid", Color.FromArgb(187, 187, 187), "2px"),
      //  new HLabel("Отметьте галочками нужные письма", 
      //    new HHover().Background(Color.FromArgb(247, 247, 247)).Color(Color.Gray)
      //  ).Color(Color.Gray),
      //  std.Separator(),
      //  new HButton("Пометить прочитанным"),
      //  new HButton("Пометить непрочитанным")
      //);

      //return new HDropdown(
      //  new HButton("Выделенные письма",
      //    new HAfter().Content(@"▼").FontSize("60%").MarginLeft(4).VAlign(1)).Padding(6, 12),
      //  //std.Button("Выделенные письма",
      //  //  new HAfter().Content(@"▼").FontSize("60%").MarginLeft(4).VAlign(1)
      //  //),
      //  false,
      //  new HLabel("Пометить прочитанным").Padding(4, 8),
      //  new HLabel("Пометить непрочитанным").Padding(4, 8)
      //).Background(Color.FromArgb(247, 247, 247))
      //.Border("1px", "solid", Color.FromArgb(187, 187, 187), "2px")
      //.Padding(4, 0)
      //.CssAttribute("border-top", "none")
      //.Right("0px").Top("30px");
    }