Exemple #1
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--;
                }
            }
        }
        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--;
                }
            }
        }