Example #1
0
        public EntityCrosstabReportDTO ToEntityCrosstabReportDTO(DR_Requester requester, EntityCrosstabReport item, bool withDetails)
        {
            EntityCrosstabReportDTO result = new EntityCrosstabReportDTO();

            result.ID = item.ID;
            bizEntitySearchableReport.ToEntitySearchableReportDTO(item.EntitySearchableReport, result, withDetails);
            result.EntityListViewID = item.EntityListViewID;
            if (withDetails)
            {
                BizEntityListView bizEntityListView = new BizEntityListView();
                result.EntityListView = bizEntityListView.GetEntityListView(requester, item.EntityListViewID);
                if (result.EntityListView == null)
                {
                    throw new Exception("عدم دسترسی به لیست نمایش به شناسه" + " " + item.EntityListViewID);
                }
                BizEntityRelationshipTail bizEntityRelationshipTail = new MyModelManager.BizEntityRelationshipTail();
                foreach (var sub in item.CrosstabReportColumns)
                {
                    CrosstabReportColumnDTO rColumn = new CrosstabReportColumnDTO();
                    rColumn.ID = sub.ID;
                    rColumn.EntityListViewColumnID = sub.EntityListViewColumnsID;
                    rColumn.EntityListViewColumn   = result.EntityListView.EntityListViewAllColumns.FirstOrDefault(x => x.ID == sub.EntityListViewColumnsID);
                    if (rColumn.EntityListViewColumn == null)
                    {
                        throw new Exception("Crosstab report column" + " " + sub.ID + " " + "is not accessable!");
                    }
                    result.Columns.Add(rColumn);
                }
                foreach (var sub in item.CrosstabReportRows)
                {
                    CrosstabReportRowDTO rColumn = new CrosstabReportRowDTO();

                    rColumn.ID = sub.ID;
                    rColumn.EntityListViewColumnID = sub.EntityListViewColumnsID;
                    rColumn.EntityListViewColumn   = result.EntityListView.EntityListViewAllColumns.FirstOrDefault(x => x.ID == sub.EntityListViewColumnsID);
                    if (rColumn.EntityListViewColumn == null)
                    {
                        throw new Exception("Crosstab report row" + " " + sub.ID + " " + "is not accessable!");
                    }
                    result.Rows.Add(rColumn);
                }
                foreach (var sub in item.CrosstabReportValues)
                {
                    CrosstabReportValueDTO rColumn = new CrosstabReportValueDTO();

                    rColumn.ID = sub.ID;
                    rColumn.EntityListViewColumnID = sub.EntityListViewColumnsID;
                    rColumn.EntityListViewColumn   = result.EntityListView.EntityListViewAllColumns.First(x => x.ID == sub.EntityListViewColumnsID);
                    if (rColumn.EntityListViewColumn == null)
                    {
                        throw new Exception("Crosstab report value" + " " + sub.ID + " " + "is not accessable!");
                    }
                    rColumn.ValueFunction = (ChartReportValueFunction)sub.FunctoinType;

                    result.Values.Add(rColumn);
                }
            }

            return(result);
        }
        public frmEntityCrosstabReport(int entityID, int CrosstabReportID)
        {
            InitializeComponent();
            Message  = new ModelEntites.EntityCrosstabReportDTO();
            EntityID = entityID;
            SetEntityListViews();
            SetEntityPreDefinedSearchList();
            SetFunctoinTypes();
            if (CrosstabReportID != 0)
            {
                GetEntityCrosstabReport(CrosstabReportID);
            }
            else
            {
                Message = new EntityCrosstabReportDTO();
                ShowMessage();
            }
            lokEntityListView.SelectionChanged += LokEntityListView_SelectionChanged;

            ControlHelper.GenerateContextMenu(dtgColumns);
            ControlHelper.GenerateContextMenu(dtgRows);
            ControlHelper.GenerateContextMenu(dtgValues);
        }
Example #3
0
        public int UpdateEntityCrosstabReports(EntityCrosstabReportDTO message)
        {
            using (var projectContext = new DataAccess.MyProjectEntities())
            {
                var dbEntitySpecifiedReport = projectContext.EntityCrosstabReport.FirstOrDefault(x => x.ID == message.ID);
                if (dbEntitySpecifiedReport == null)
                {
                    message.ReportType           = ReportType.SearchableReport;
                    message.SearchableReportType = SearchableReportType.CrosstabReport;
                    dbEntitySpecifiedReport      = new DataAccess.EntityCrosstabReport();
                    dbEntitySpecifiedReport.EntitySearchableReport = bizEntitySearchableReport.ToNewEntitySearchableReport(message);
                }
                else
                {
                    bizEntitySearchableReport.ToUpdateEntitySearchableReport(dbEntitySpecifiedReport.EntitySearchableReport, message);
                }
                dbEntitySpecifiedReport.EntityListViewID = message.EntityListViewID;

                while (dbEntitySpecifiedReport.CrosstabReportColumns.Any())
                {
                    projectContext.CrosstabReportColumns.Remove(dbEntitySpecifiedReport.CrosstabReportColumns.First());
                }
                foreach (var sub in message.Columns)
                {
                    CrosstabReportColumns rColumn = new CrosstabReportColumns();
                    rColumn.EntityListViewColumnsID = sub.EntityListViewColumnID;
                    dbEntitySpecifiedReport.CrosstabReportColumns.Add(rColumn);
                }
                while (dbEntitySpecifiedReport.CrosstabReportRows.Any())
                {
                    projectContext.CrosstabReportRows.Remove(dbEntitySpecifiedReport.CrosstabReportRows.First());
                }
                foreach (var sub in message.Rows)
                {
                    CrosstabReportRows rRow = new CrosstabReportRows();
                    rRow.EntityListViewColumnsID = sub.EntityListViewColumnID;
                    dbEntitySpecifiedReport.CrosstabReportRows.Add(rRow);
                }



                while (dbEntitySpecifiedReport.CrosstabReportValues.Any())
                {
                    projectContext.CrosstabReportValues.Remove(dbEntitySpecifiedReport.CrosstabReportValues.First());
                }
                foreach (var sub in message.Values)
                {
                    CrosstabReportValues rColumn = new CrosstabReportValues();
                    rColumn.EntityListViewColumnsID = sub.EntityListViewColumnID;
                    rColumn.FunctoinType            = (short)sub.ValueFunction;
                    dbEntitySpecifiedReport.CrosstabReportValues.Add(rColumn);
                }

                if (dbEntitySpecifiedReport.ID == 0)
                {
                    projectContext.EntityCrosstabReport.Add(dbEntitySpecifiedReport);
                }
                projectContext.SaveChanges();
                return(dbEntitySpecifiedReport.ID);
            }
        }
 private void btnNew_Click(object sender, RoutedEventArgs e)
 {
     Message = new EntityCrosstabReportDTO();
     ShowMessage();
 }