示例#1
0
        public static DataTable GetNewSubscribers(int bookmarkId, View view, View mailngServiceView, int dataActionId, string[] fields, string emailFieldName)
        {
            SqlAccess                 sqlAccess  = new SqlAccess();
            HashSet <string>          subscribed = GetSubscribed(mailngServiceView, sqlAccess, dataActionId);
            Dictionary <string, Type> fd         = new Dictionary <string, Type>();

            if (fields == null || fields.Length == 0)
            {
                //subscribers.SetColumnsOrder(fields);
                fd = view.Fields.Values.OrderBy(x => x.Order).Where(w => !w.HideInTable).ToDictionary(f => f.DisplayName, f => f.View.DataTable.Columns[f.DatabaseNames].DataType);
            }
            else
            {
                fd = fields.ToDictionary(f => f, f => typeof(string));
            }
            //DataTable subscribers=new DataTable("Subscribers");
            //foreach (KeyValuePair<string,Type> f in fd)
            //{
            //    subscribers.Columns.Add(f.Key, f.Value);
            //}

            Durados.Bookmark bookmark = BookmarksHelper.GetBookmark(bookmarkId);

            int    rowCount;
            Filter filter = GetBookmarkFilter(view, bookmark, sqlAccess);

            Durados.SortDirection direction = (SortDirection)Enum.Parse(typeof(SortDirection), bookmark.SortDirection);
            DataTable             dt        = sqlAccess.FillDataTable(view, 1, GetMaxPageSize(), filter, bookmark.SortColumn, direction, out rowCount, null, null, null, null).Copy();

            //dt.SetColumnsOrder(fd.Keys.ToArray());

            dt.Columns.Add("PK", typeof(string));

            SetRows(view, subscribed, dt, emailFieldName);

            SetColumns(view, fd.Keys.ToArray(), dt);

            //dt.SetColumnsOrder(fd.Keys.ToArray());

            return(dt);
        }
示例#2
0
        public static Filter GetBookmarkFilter(View view, Durados.Bookmark bookmark, SqlAccess sqlAccess)
        {
            System.Web.Mvc.FormCollection filterCollection = new System.Web.Mvc.FormCollection(new UI.Json.NameValueCollectionSerializer(bookmark.Filter).NameValueCollection);
            //HttpContext.Current.Session[guid] = c;

            UI.Json.Filter jsonFilter = ViewHelper.GetJsonFilter(filterCollection, bookmark.ViewName);


            Dictionary <string, object> values = new Dictionary <string, object>();

            if (jsonFilter != null)
            {
                foreach (UI.Json.Field jsonField in jsonFilter.Fields.Values)
                {
                    if (jsonField.Value != null && !string.IsNullOrEmpty(jsonField.Value.ToString()))
                    {
                        values.Add(jsonField.Name, jsonField.Value);
                    }
                }
            }
            Filter filter = sqlAccess.GetFilter(view, values);

            return(filter);
        }