示例#1
0
        public static List <MetaReportItemModel> GetItemsForReport(Guid reportId)
        {
            MetaReportItemModel.CreateMap();
            List <MetaReportItem> items = MetaReportHelper.GetItemsByEntityId(reportId).ToList();

            List <MetaReportItemModel> res = Mapper.Map <IList <MetaReportItem>, List <MetaReportItemModel> >(items);

            return(res);
        }
示例#2
0
        private void SyncReportItems(MetaReport target, List <MetaReportItemModel> itemModel, DBEntities context)
        {
            MetaReportItemModel.CreateMap();
            var reportItems = context.MetaReportItem.Where(c => c.MetaReportId == target.Id).ToList();

            foreach (var item in itemModel)
            {
                var reportItem = reportItems.FirstOrDefault(c => c.Id == item.Id);
                if (reportItem == null)
                {
                    reportItem = new MetaReportItem()
                    {
                        Id = item.Id
                    };
                    Mapper.Map(item, reportItem);
                    reportItem.MetaReportId = target.Id;
                    context.MetaReportItem.AddObject(reportItem);
                }
                else
                {
                    Mapper.Map(item, reportItem);
                    reportItem.MetaReportId = target.Id;
                }
            }

            for (int i = 0; i < reportItems.Count; i++)
            {
                var reportItem = reportItems[i];
                var item       = itemModel.FirstOrDefault(c => c.Id == reportItem.Id);
                if (item == null)
                {
                    context.MetaReportItem.DeleteObject(reportItems[i]);
                    reportItems.RemoveAt(i);
                    i--;
                }
            }
        }