예제 #1
0
        private ProjectListViewModel CreateProjectListViewModel(ProjectListData data, int start)
        {
            var listViewModel = Mapper.Map <List <ProjectItemViewModel> >(data.List);

            return(new ProjectListViewModel
            {
                TotalCount = data.TotalCount,
                List = listViewModel,
                PageSize = ProjectListPageSize,
                Start = start
            });
        }
예제 #2
0
        public ProjectListData GetProjectList(int start, int count)
        {
            var work           = new GetProjectListWork(m_projectRepository, start, count);
            var resultEntities = work.Execute();

            var result = new ProjectListData
            {
                List       = Mapper.Map <List <ProjectContract> >(resultEntities),
                TotalCount = work.GetResultCount()
            };

            return(result);
        }
예제 #3
0
        private void GenerateScript()
        {
            ArrayList ProjectIds = new ArrayList();

            switch (ProjectListType)
            {
            case "All":
                using (IDataReader reader = Project.GetListProjects())
                {
                    while (reader.Read())
                    {
                        ProjectIds.Add(int.Parse(reader["ProjectId"].ToString()));
                    }
                }
                break;

            case "Portfolio":
                DataTable dt = Project.GetListProjectGroupedByPortfolio(int.Parse(ProjectListData), 0, 0);
                if (dt != null && dt.Rows.Count > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        int prid = int.Parse(dr["ProjectId"].ToString());
                        if (prid > 0)
                        {
                            ProjectIds.Add(prid);
                        }
                    }
                }
                break;

            case "Custom":
                if (ProjectListData != null && ProjectListData.Length > 0)
                {
                    string[] Ids = ProjectListData.Split(';');
                    if (Ids != null && Ids.Length > 0)
                    {
                        for (int i = 0; i < Ids.Length; i++)
                        {
                            ProjectIds.Add(int.Parse(Ids[i]));
                        }
                    }
                }
                break;

            default:
                break;
            }
            SpreadSheetDocumentType type = SpreadSheetDocumentType.Total;

            switch (FinanceType)
            {
            case "1":
                type = SpreadSheetDocumentType.WeekYear;
                break;

            case "2":
                type = SpreadSheetDocumentType.MonthQuarterYear;
                break;

            case "3":
                type = SpreadSheetDocumentType.QuarterYear;
                break;

            case "4":
                type = SpreadSheetDocumentType.Year;
                break;

            case "5":
                type = SpreadSheetDocumentType.Total;
                break;
            }

            SpreadSheetView view = null;

            if (!Reverse)
            {
                view = ProjectSpreadSheet.CompareProjects(ProjectIds, type, BasePlan1, FromYear, ToYear);
            }
            else
            {
                view = ProjectSpreadSheet.CompareProjectsReverse(ProjectIds, type, BasePlan1, FromYear, ToYear);
            }
            SpreadSheetView view2;

            if (BasePlan2 != -2)
            {
                if (!Reverse)
                {
                    view2 = ProjectSpreadSheet.CompareProjects(ProjectIds, type, BasePlan2, FromYear, ToYear);
                }
                else
                {
                    view2 = ProjectSpreadSheet.CompareProjectsReverse(ProjectIds, type, BasePlan2, FromYear, ToYear);
                }
            }


            int colCount = view.Columns.Length;
            //int maxWidth = 950;

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("<script type='text/javascript'>");
            sb.AppendLine("//<![CDATA[");
            sb.AppendLine("if (mygrid2 == null)");
            sb.AppendLine("	mygrid2 = new dhtmlXGridObject('gridbox');");
            //sb.Append("");


            #region Bind: Header Caption

            if (view.Document.DocumentType != SpreadSheetDocumentType.Total && view.Document.DocumentType != SpreadSheetDocumentType.Year)
            {
                sb.AppendFormat("mygrid2.setHeader(\"{0}", LocRM.GetString("tProjects"));
                int YearCounter = ToYear - FromYear + 1;
                int ColSpanRate = -1;

                #region Year
                if (view.Document.DocumentType == SpreadSheetDocumentType.QuarterYear)
                {
                    ColSpanRate = 5;
                }
                else if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                {
                    ColSpanRate = 17;
                }
                else if (view.Document.DocumentType == SpreadSheetDocumentType.WeekYear)
                {
                    ColSpanRate = 53;
                }

                int RowSpanRate = (view.Columns.Length - YearCounter) / (YearCounter * 4);
                //int RowSpanRate = 45;
                int yearCount = 0;

                for (int i = 0; i < view.Columns.Length - 1; i++)
                {
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        if (i % (ColSpanRate) == 0)
                        {
                            sb.AppendFormat(",{0}", FromYear + yearCount);
                        }
                        else if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                        {
                            sb.AppendFormat(",{0}", LocRM.GetString("tYear"));
                        }
                        else
                        {
                            sb.Append(",#cspan");
                        }
                    }
                    else
                    {
                        if (i % (ColSpanRate) == 0)
                        {
                            sb.AppendFormat(",{0}", FromYear + yearCount);
                        }
                        else if (((i - yearCount + 1) % (ColSpanRate - 1) == 0) && (i - yearCount + 1 != 0))
                        {
                            sb.AppendFormat(",{0}", LocRM.GetString("tYear"));
                        }
                        else
                        {
                            sb.Append(",#cspan");
                        }
                    }
                    if (i % (ColSpanRate) == 0)
                    {
                        yearCount++;
                    }
                }
                //}
                sb.AppendFormat(",{0}\");", LocRM.GetString("tTotalSum"));
                #endregion

                #region Quartals
                if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                {
                    sb.Append("mygrid2.attachHeader([\"#rspan\"");
                    for (int i = 0; i < view.Columns.Length - 1; i++)
                    {
                        int counter = i % ColSpanRate;

                        if (counter % (RowSpanRate) == 0 && counter != 16)
                        {
                            sb.AppendFormat(",\"{0} {1}\"", LocRM.GetString("tQuarterYear"), /*(((i + 1) / RowSpanRate) % 4) + 1*/ (counter / 4) + 1);
                        }
                        else
                        if ((counter + 1) % RowSpanRate == 0)
                        {
                            sb.AppendFormat(", \"{0}\"", LocRM.GetString("tQuarterTotal"));
                        }
                        else
                        if (counter == 16)
                        {
                            sb.Append(",\"#rspan\"");
                        }

                        else
                        {
                            sb.Append(",\"#cspan\"");
                        }
                    }
                    sb.Append(",\"#rspan\"]);");
                }
                #endregion

                #region BindServerData
                sb.AppendFormat("mygrid2.attachHeader([\"#rspan\", \"{0}\"", ((Column)view.Columns[0]).Name);
                int _counter = 0;
                for (int i = 1; i < view.Columns.Length - 1; i++)
                {
                    if (view.Document.DocumentType == SpreadSheetDocumentType.MonthQuarterYear)
                    {
                        if (i % ColSpanRate == 0)
                        {
                            _counter++;
                        }
                        if ((i + 1 - _counter) % RowSpanRate == 0)
                        {
                            sb.Append(",\"#rspan\"");
                        }
                        else
                        if ((i + 1) % ColSpanRate == 0)
                        {
                            sb.Append(",\"#rspan\"");
                        }
                        else
                        {
                            sb.AppendFormat(",\" {0}\"", ((Column)view.Columns[i]).Name);
                        }
                    }
                    else
                    {
                        if ((i + 1) % ColSpanRate == 0)
                        {
                            sb.Append(",\"#rspan\"");
                        }
                        else
                        {
                            sb.AppendFormat(",\" {0}\"", ((Column)view.Columns[i]).Name);
                        }
                    }
                }
                sb.Append(",\"#rspan\"]);");
                #endregion
            }
            else
            {
                //for scales: Year, Project Total
                sb.AppendFormat("mygrid2.setHeader(\"{0}", LocRM.GetString("tProjects"));

                for (int i = 0; i < view.Columns.Length; i++)
                {
                    sb.AppendFormat(",{0}", ((Column)view.Columns[i]).Name);
                }
                sb.Append("\");");
            }
            #endregion

            #region Bind: Header Width
            sb.AppendFormat("mygrid2.setImagePath('{0}');", ResolveUrl("~/Layouts/Images/dhtmlGrid/imgs"));

            sb.Append("mygrid2.setInitWidths(\"100");
            for (int i = 0; i < view.Columns.Length; i++)
            {
                sb.AppendFormat(",{0}", 60 /*(int)(maxWidth / view.Columns.Length)*/);
            }
            sb.Append("\");");
            #endregion

            #region Bind: Header Align
            sb.Append("mygrid2.setColAlign(\"left");
            for (int i = 0; i < view.Columns.Length; i++)
            {
                sb.Append(",right");
            }
            sb.Append("\");");
            #endregion

            #region Bind: Cols CanEdit
            sb.Append("mygrid2.setColTypes(\"tree");

            for (int i = 0; i < colCount; i++)
            {
                sb.Append(",ro");
            }
            sb.Append("\");");
            #endregion

            #region Bind: Cols Color
            sb.Append("mygrid2.setColumnColor(\"#E1ECFC");
            for (int i = 1; i < colCount; i++)
            {
                sb.Append(",white");
            }
            sb.Append("\");");
            #endregion


            sb.AppendLine("mygrid2.enableKeyboardSupport(false);mygrid2.setOnLoadingEnd('EnableApplyButton');mygrid2.enableEditEvents(false,false,false);mygrid2.init();");

            if (ddBasePlan2.SelectedValue != "-2")
            {
                sb.AppendLine("qstring2='&compare=1';");
                sb.AppendFormat("var xmlurl='{0}?ProjectFinanceCompare=1'+qstring2;", ResolveUrl("~/Modules/XmlForTreeView.aspx"));
                sb.AppendLine("mygrid2.loadXML(xmlurl);");
                sb.AppendLine("compareMode=1;");
            }
            else
            {
                sb.AppendFormat("var xmlurl='{0}?ProjectFinanceCompare=1';", ResolveUrl("~/Modules/XmlForTreeView.aspx"));
                sb.AppendLine("mygrid2.loadXML(xmlurl);");

                sb.AppendLine("compareMode=0;");
            }

            sb.AppendLine("//]]>");
            sb.AppendLine("</script>");
            this.Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), sb.ToString());
        }