Example #1
0
        public string BuildReport(Statistic statistic, DateTime @from, DateTime to)
        {
            var result = new StringBuilder($"From: {FomratDate(from)} To: {FomratDate(to)}{Environment.NewLine}");

            result.Append(reportBuilder.BuildReport(statistic));
            return(result.ToString());
        }
Example #2
0
        public string Merge(Command.Infrastructure.Models.Command command)
        {
            var authors   = command.Args.Split(' ');
            var statistic = storage.Get();

            if (CheckAuthors(authors, statistic) != null)
            {
                return(CheckAuthors(authors, statistic));
            }

            var mergeModel = ParseMergeModel(authors, statistic);

            if (mergeModel.ErrorMessage != null)
            {
                return(mergeModel.ErrorMessage);
            }

            var commits = statistic.Commits
                          .Select(commit =>
                                  mergeModel.Duplicates.Contains(commit.Author.Id)
                        ? new Commit(commit.Name, mergeModel.MainAuthor, commit.Insertions, commit.Deletions, commit.Date)
                        : commit).ToList();

            var newStatistic = new StatisticCalculationHelper(commits).Calculte();

            storage.Save(newStatistic);

            return(ReportBuilder.BuildReport(newStatistic));
        }
Example #3
0
        public string Execute(_Command command)
        {
            var statistic = GetStatistic(command);

            statisticStorage.Save(statistic);
            return(reportBuilder.BuildReport(statistic));
        }
Example #4
0
        string Run()
        {
            var model = new Example {
                Name = "Alex", Email = "*****@*****.**", Values = new Dictionary <object, object> {
                    { "Compiled", "No" }, { "Worked", "Yes" }
                }, Image = GetTestImage()
            };

            return(builder.BuildReport(model));
        }
Example #5
0
        public string GetStatisticBetween(Command.Infrastructure.Models.Command command)
        {
            var commits   = command.Args.Split(' ');
            var statistic = statisticStorage.Get();

            if (Check(commits, statistic) != null)
            {
                return(Check(commits, statistic));
            }

            var searchResult = FindCommits(commits, statistic);

            if (searchResult.ErrorMessage != null)
            {
                return(searchResult.ErrorMessage);
            }

            var recalculatedStatistic = RecalculateStatistic(searchResult.Commtis);

            return(reportBuilder.BuildReport(recalculatedStatistic));
        }
Example #6
0
        public async Task <ActionResult> GetAsync(int reportSettingID = 1)
        {
            try
            {
                IEnumerable <ConstructionObject> constructionObjects;
                IEnumerable <DataVersion>        dataVersions;

                using (var client = new HttpClient())
                {
                    HttpResponseMessage response;
                    string requestResult = string.Empty;

                    bool IsNeedtest = false;

                    if (IsNeedtest)
                    {
                        // Этот метод делает все воможные запросы к сервису DirectoryService (чисто в рамках демонстрации)
                        await Utils.TestDirectoryServiceApiAsync(urlSettings);
                    }

                    // Запрашиваем весь справочник "Объекты Строительства"
                    response = await client.GetAsync($"{urlSettings.ConstructionObjectUrl}GetAllDirectory");

                    constructionObjects = await response.Content.ReadAsAsync <IEnumerable <ConstructionObject> >();

                    // Запрашиваем весь справочник "Версии данных"
                    response = await client.GetAsync($"{urlSettings.DataVersionUrl}GetAllDirectory");

                    dataVersions = await response.Content.ReadAsAsync <IEnumerable <DataVersion> >();
                }

                // Берём из настроек конфигурацию отчёта
                ReportSetting reportSetting = new ReportSetting();

                try
                {
                    var reportSettingCol = reportSettings.Where(set => set.ConfigurationID == reportSettingID);

                    if (reportSettingCol.Any())
                    {
                        reportSetting = reportSettingCol.First();
                    }
                    else
                    {
                        // Если настойка не найдена, говорим 404.
                        return(this.StatusCode(404));
                    }
                }
                catch (Exception ex) { }

                // Билдим отчёт.
                DataTable report = reportBuilder.BuildReport(reportSetting, constructionObjects, dataVersions);

                return(View("~/Views/ReportView.cshtml", report));
            }
            catch (Exception ex)
            {
                // Что-то пошло не так,
                return(this.StatusCode(500));

                // TODO: пишем в логи ошибку
            }
        }
        /// <summary>
        /// 產生報表
        /// </summary>
        public void Print()
        {
            // 取得異動名冊畫面上所選擇異動名冊ID
            _SelectBRecID = UpdateRecordModule_SH_D.BL.Get.UpdateBatchSelectID();
            // 透過異動名冊ID取得異動名冊
            _SelectBRec = UpdateRecordModule_SH_D.BL.Get.StudUpdateRecBatchRecByID(_SelectBRecID);

            try
            {
                ReportSelector rs      = new ReportSelector(_SelectBRec);
                IReportBuilder builder = rs.GetReport() as IReportBuilder;

                progressBarX1.Value = 0;
                pnlReport.Visible   = true;

                builder.ProgressChanged += new ProgressChangedEventHandler(builder_ProgressChanged);
                builder.Completed       += new RunWorkerCompletedEventHandler(builder_Completed);
                path = Path.Combine(Application.StartupPath, "Reports");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                path = Path.Combine(path, _SelectBRec.UpdateType + ".xls");

                if (File.Exists(path))
                {
                    int i = 1;
                    while (true)
                    {
                        string newPath = Path.GetDirectoryName(path) + "\\" + Path.GetFileNameWithoutExtension(path) + (i++) + Path.GetExtension(path);
                        if (!File.Exists(newPath))
                        {
                            path = newPath;
                            break;
                        }
                    }
                }
                try
                {
                    File.Create(path).Close();
                }
                catch
                {
                    SaveFileDialog sd = new SaveFileDialog();
                    sd.Title    = "另存新檔";
                    sd.FileName = Path.GetFileNameWithoutExtension(path) + ".xls";
                    sd.Filter   = "Excel檔案 (*.xls)|*.xls|所有檔案 (*.*)|*.*";
                    if (sd.ShowDialog() == DialogResult.OK)
                    {
                        try
                        {
                            File.Create(sd.FileName);
                            path = sd.FileName;
                        }
                        catch
                        {
                            FISCA.Presentation.Controls.MsgBox.Show("指定路徑無法存取。", "建立檔案失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                }

                builder.BuildReport((XmlElement)_SelectBRec.Content.FirstChild, path);


                // 產生異動名冊的過程,系統佔用之記憶體,回收之
                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
            }
            catch (Exception ex)
            {
                FISCA.Presentation.Controls.MsgBox.Show("產生電子報表失敗." + ex.Message);
            }
        }
Example #8
0
 public string GetMissionReport()
 {
     return(_reportBuilder.BuildReport(_rovers));
 }
Example #9
0
        private void buttonX1_Click(object sender, EventArgs e)
        {
            if (provider == null)
            {
                return;
            }
            if (ReportBuilderManager.Items[provider.Type].Count == 0)
            {
                MsgBox.Show("敬請期待");
                return;
            }
            progressBarX1.Value = 0;
            pnlReport.Visible   = true;

            IReportBuilder builder = ReportBuilderManager.Items[provider.Type][0];

            if (!registedBuilder.Contains(builder))
            {
                builder.Completed       += new RunWorkerCompletedEventHandler(builder_Completed);
                builder.ProgressChanged += new ProgressChangedEventHandler(builder_ProgressChanged);
                registedBuilder.Add(builder);
            }

            if (builder.Status == Status.Busy)
            {
                return;
            }

            path = Path.Combine(Application.StartupPath, "Reports");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, provider.Type + ".xlt");

            if (File.Exists(path))
            {
                int i = 1;
                while (true)
                {
                    string newPath = Path.GetDirectoryName(path) + "\\" + Path.GetFileNameWithoutExtension(path) + (i++) + Path.GetExtension(path);
                    if (!File.Exists(newPath))
                    {
                        path = newPath;
                        break;
                    }
                }
            }
            try
            {
                File.Create(path).Close();
            }
            catch
            {
                SaveFileDialog sd = new SaveFileDialog();
                sd.Title    = "另存新檔";
                sd.FileName = Path.GetFileNameWithoutExtension(path) + ".xls";
                sd.Filter   = "Excel檔案 (*.xls)|*.xls|所有檔案 (*.*)|*.*";
                if (sd.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        File.Create(sd.FileName);
                        path = sd.FileName;
                    }
                    catch
                    {
                        MsgBox.Show("指定路徑無法存取。", "建立檔案失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
            }
            builder.BuildReport(source, path);
        }