public async Task <OperationDataResult <OuterInnerResourceSettings> > GetSettings() { try { var option = _options.Value; if (option.Token == "...") { const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var random = new Random(); var result = new string(chars.Select(c => chars[random.Next(chars.Length)]).Take(32).ToArray()); await _options.UpdateDb(settings => { settings.Token = result; }, _dbContext, _userService.UserId); } if (option.SdkConnectionString == "...") { var connectionString = _dbContext.Database.GetDbConnection().ConnectionString; var dbNameSection = Regex.Match(connectionString, @"(Database=(...)_eform-angular-outer-inner-resource-plugin;)").Groups[0].Value; var dbPrefix = Regex.Match(connectionString, @"Database=(\d*)_").Groups[1].Value; var sdk = $"Database={dbPrefix}_SDK;"; connectionString = connectionString.Replace(dbNameSection, sdk); await _options.UpdateDb(settings => { settings.SdkConnectionString = connectionString; }, _dbContext, _userService.UserId); } return(new OperationDataResult <OuterInnerResourceSettings>(true, option)); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationDataResult <OuterInnerResourceSettings>(false, _outerInnerResourceLocalizationService.GetString("ErrorWhileObtainingTrashInspectionSettings") + e.Message)); } }
public OperationDataResult <ReportNamesModel> GetReportNames() { var reportNamesModel = new ReportNamesModel { ReportNameModels = new List <ReportNameModel>() }; var outerResourceName = _options.Value.OuterResourceName; var innerResourceName = _options.Value.InnerResourceName; reportNamesModel.ReportNameModels.Add(new ReportNameModel { Id = 1, Name = _outerInnerResourceLocalizationService.GetString("Employee") }); reportNamesModel.ReportNameModels.Add(new ReportNameModel { Id = 2, Name = innerResourceName }); reportNamesModel.ReportNameModels.Add(new ReportNameModel { Id = 3, Name = outerResourceName }); reportNamesModel.ReportNameModels.Add(new ReportNameModel { Id = 4, Name = _outerInnerResourceLocalizationService.GetString("Employee") + "-" + outerResourceName }); reportNamesModel.ReportNameModels.Add(new ReportNameModel { Id = 5, Name = _outerInnerResourceLocalizationService.GetString("Employee") + "-" + innerResourceName }); reportNamesModel.ReportNameModels.Add(new ReportNameModel { Id = 6, Name = _outerInnerResourceLocalizationService.GetString("Employee") + "-Total" }); reportNamesModel.ReportNameModels.Add(new ReportNameModel { Id = 7, Name = $"{outerResourceName} {innerResourceName}", }); reportNamesModel.ReportNameModels.Add(new ReportNameModel { Id = 8, Name = $"{innerResourceName} {outerResourceName}", }); return(new OperationDataResult <ReportNamesModel>(true, reportNamesModel)); }
public async Task <OperationDataResult <InnerResourcesModel> > Index(InnerResourceRequestModel requestModel) { try { var innerResourcesModel = new InnerResourcesModel(); var query = _dbContext.InnerResources .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed) .AsNoTracking() .AsQueryable(); query = QueryHelper.AddSortToQuery(query, requestModel.Sort, requestModel.IsSortDsc); innerResourcesModel.Total = await query.Select(x => x.Id).CountAsync(); query = query .Skip(requestModel.Offset) .Take(requestModel.PageSize); innerResourcesModel.InnerResourceList = await query .Select(x => new InnerResourceModel { Name = x.Name, Id = x.Id, ExternalId = x.ExternalId, RelatedOuterResourcesIds = _dbContext.OuterInnerResources.Where(y => y.InnerResourceId == x.Id && y.WorkflowState != Constants.WorkflowStates.Removed).Select(z => z.OuterResourceId).ToList() }).ToListAsync(); innerResourcesModel.Name = _dbContext.PluginConfigurationValues .FirstOrDefault(x => x.Name == "OuterInnerResourceSettings:InnerResourceName") ?.Value; return(new OperationDataResult <InnerResourcesModel>(true, innerResourcesModel)); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationDataResult <InnerResourcesModel>(false, _localizationService.GetString("ErrorObtainInnerResources"))); } }
public bool WriteRecordsExportModelsToExcelFile(ReportModel reportModel, GenerateReportModel generateReportModel, string destFile) { FileInfo file = new FileInfo(destFile); using (ExcelPackage package = new ExcelPackage(file)) { ExcelWorksheet worksheet = package.Workbook.Worksheets[ExcelConsts.MachineAreaReportSheetNumber]; // Fill base info string periodFromTitle = _outerInnerResourceLocalizationService.GetString("DateFrom"); worksheet.Cells[ExcelConsts.EmployeeReport.PeriodFromTitleRow, ExcelConsts.EmployeeReport.PeriodFromTitleCol].Value = periodFromTitle; worksheet.Cells[ExcelConsts.EmployeeReport.PeriodFromRow, ExcelConsts.EmployeeReport.PeriodFromCol].Value = generateReportModel.DateFrom; string periodToTitle = _outerInnerResourceLocalizationService.GetString("DateTo"); worksheet.Cells[ExcelConsts.EmployeeReport.PeriodToTitleRow, ExcelConsts.EmployeeReport.PeriodToTitleCol].Value = periodToTitle; worksheet.Cells[ExcelConsts.EmployeeReport.PeriodToRow, ExcelConsts.EmployeeReport.PeriodToCol].Value = generateReportModel.DateTo; string showDataByTitle = _outerInnerResourceLocalizationService.GetString("ShowDataBy"); worksheet.Cells[ExcelConsts.EmployeeReport.PeriodTypeTitleRow, ExcelConsts.EmployeeReport.PeriodTypeTitleCol].Value = showDataByTitle; string showDataByValue = _outerInnerResourceLocalizationService.GetString(generateReportModel.Type.ToString()); worksheet.Cells[ExcelConsts.EmployeeReport.PeriodTypeRow, ExcelConsts.EmployeeReport.PeriodTypeCol].Value = showDataByValue; string reportTitle = _outerInnerResourceLocalizationService.GetString("Report"); worksheet.Cells[ExcelConsts.EmployeeReport.ReportTitleRow, ExcelConsts.EmployeeReport.ReportTitleCol].Value = reportTitle; string reportName = _outerInnerResourceLocalizationService.GetString(reportModel.HumanReadableName); worksheet.Cells[ExcelConsts.EmployeeReport.ReportNameRow, ExcelConsts.EmployeeReport.ReportNameCol].Value = reportName; // Debugger.Break(); int entityPosition = 0; foreach (SubReportModel subReport in reportModel.SubReports) { // entity names for (int i = 0; i < subReport.Entities.Count; i++) { int rowIndex = ExcelConsts.EmployeeReport.EntityNameStartRow + i + entityPosition; ReportEntityModel reportEntity = subReport.Entities[i]; worksheet.UpdateValue(rowIndex, ExcelConsts.EmployeeReport.EntityNameStartCol, reportEntity?.EntityName, true); } // related entity names for (int i = 0; i < subReport.Entities.Count; i++) { int rowIndex = ExcelConsts.EmployeeReport.RelatedEntityNameStartRow + i + entityPosition; ReportEntityModel reportEntity = subReport.Entities[i]; worksheet.UpdateValue(rowIndex, ExcelConsts.EmployeeReport.RelatedEntityNameStartCol, reportEntity?.RelatedEntityName, true); } // headers for (int i = 0; i < reportModel.ReportHeaders.Count; i++) { ReportEntityHeaderModel reportHeader = reportModel.ReportHeaders[i]; int colIndex = ExcelConsts.EmployeeReport.HeaderStartCol + i; int rowIndex = ExcelConsts.EmployeeReport.HeaderStartRow + entityPosition; worksheet.UpdateValue(rowIndex, colIndex, reportHeader?.HeaderValue, true, true, Color.Wheat); } // vertical sum for (int i = 0; i < subReport.Entities.Count; i++) { int rowIndex = ExcelConsts.EmployeeReport.VerticalSumStartRow + i + entityPosition; ReportEntityModel reportEntity = subReport.Entities[i]; worksheet.UpdateValue(rowIndex, ExcelConsts.EmployeeReport.VerticalSumStartCol, reportEntity?.TotalTime, true, "0"); } // vertical sum title worksheet.UpdateValue(ExcelConsts.EmployeeReport.VerticalSumTitleRow + entityPosition, ExcelConsts.EmployeeReport.VerticalSumTitleCol, "Sum", true, true); // data for (int i = 0; i < subReport.Entities.Count; i++) { ReportEntityModel reportEntity = subReport.Entities[i]; int rowIndex = ExcelConsts.EmployeeReport.DataStartRow + i + entityPosition; for (int y = 0; y < reportEntity.TimePerTimeUnit.Count; y++) { decimal time = reportEntity.TimePerTimeUnit[y]; int colIndex = ExcelConsts.EmployeeReport.DataStartCol + y; worksheet.UpdateValue(rowIndex, colIndex, time, true, "0"); } } // horizontal sum int horizontalSumRowIndex = ExcelConsts.EmployeeReport.DataStartRow + subReport.Entities.Count + entityPosition; for (int i = 0; i < subReport.TotalTimePerTimeUnit.Count; i++) { decimal time = subReport.TotalTimePerTimeUnit[i]; int colIndex = ExcelConsts.EmployeeReport.HorizontalSumStartCol + i; worksheet.UpdateValue(horizontalSumRowIndex, colIndex, time, true, "0"); } // Report sum int totalSumRowIndex = ExcelConsts.EmployeeReport.DataStartRow + subReport.Entities.Count + entityPosition; decimal totalSum = subReport.TotalTime; worksheet.UpdateValue(totalSumRowIndex, ExcelConsts.EmployeeReport.TotalSumCol, totalSum, true); worksheet.UpdateValue(totalSumRowIndex, ExcelConsts.EmployeeReport.TotalSumTitleCol, "Sum", true); entityPosition += subReport.Entities.Count + 3; } package.Save(); //Save the workbook. } return(true); }
public async Task <OperationDataResult <OuterResourcesModel> > Index(OuterResourceRequestModel requestModel) { try { var outerResourcesModel = new OuterResourcesModel(); var query = _dbContext.OuterResources.AsQueryable(); if (!string.IsNullOrEmpty(requestModel.Sort)) { if (requestModel.IsSortDsc) { query = query .CustomOrderByDescending(requestModel.Sort); } else { query = query .CustomOrderBy(requestModel.Sort); } } else { query = _dbContext.OuterResources .OrderBy(x => x.Id); } query = query.Where(x => x.WorkflowState != Constants.WorkflowStates.Removed); if (requestModel.PageSize != null) { query = query .Skip(requestModel.Offset) .Take((int)requestModel.PageSize); } var outerResourceList = await query.Select(x => new OuterResourceModel() { Name = x.Name, Id = x.Id, ExternalId = x.ExternalId, RelatedInnerResourcesIds = _dbContext.OuterInnerResources.AsNoTracking().Where(y => y.OuterResourceId == x.Id && y.WorkflowState != Constants.WorkflowStates.Removed).Select(z => z.InnerResourceId).ToList() }).AsNoTracking().ToListAsync(); outerResourcesModel.Total = await _dbContext.OuterResources.AsNoTracking().Where(x => x.WorkflowState != Constants.WorkflowStates.Removed).CountAsync(); outerResourcesModel.OuterResourceList = outerResourceList; try { outerResourcesModel.Name = _dbContext.PluginConfigurationValues.SingleOrDefault(x => x.Name == "OuterInnerResourceSettings:OuterResourceName") ?.Value; } catch (Exception) { // ignored } return(new OperationDataResult <OuterResourcesModel>(true, outerResourcesModel)); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationDataResult <OuterResourcesModel>(false, _localizationService.GetString("ErrorObtainOuterResources"))); } }