예제 #1
0
 public void AddMessage(ReportProcessModel instance)
 {
     context.ExecuteCommand(new RepositoryCommand
     {
         CommandName = "spInsertReportProcessMessage",
         Parameters  = new Dictionary <string, object> {
             { "ReportProcessId", instance.Id },
             { "Messages", instance.Messages }
         }
     });
 }
예제 #2
0
 public void Insert(ReportProcessModel instance)
 {
     instance.Id = context.ExecuteInsert(new RepositoryCommand
     {
         CommandName = "spInsertReportProcess",
         Parameters  = new Dictionary <string, object> {
             { "FileName", instance.FileName },
             { "ReportId", instance.ReportId },
             { "ApplicationUserId", instance.ApplicationUserId },
             { "CreatedAt", instance.CreatedAt },
             { "Parameters", instance.Parameters }
         }
     });
 }
예제 #3
0
        public void GenerateFile(ReportProcessModel instance, string path)
        {
            var command = new RepositoryCommand {
                CommandName = instance.StoredProcedureName
            };

            foreach (var parameter in instance.Parameters)
            {
                command.Parameters.Add(parameter.ParameterName, parameter.ParameterValue);
            }

            var table = repositoryForSql.GetDataTable(command);

            datatableExportService.Save(table, path);
        }
예제 #4
0
 public void Update(ReportProcessModel instance)
 {
     context.ExecuteCommand(new RepositoryCommand
     {
         CommandName = "spUpdateReportProcess",
         Parameters  = new Dictionary <string, object> {
             { "FileName", instance.FileName },
             { "ReportId", instance.ReportId },
             { "ReportProcessId", instance.Id },
             { "ApplicationUserId", instance.ApplicationUserId },
             { "UpdateAt", instance.UpdateAt },
             { "LastUpdateUserName", instance.LastUpdateUserName },
             { "Status", instance.Status.GetHashCode() },
             { "StartAt", instance.StartAt },
             { "EndAt", instance.EndAt },
             { "Parameters", instance.Parameters }
         }
     });
 }
예제 #5
0
 public void ExecuteProcess(ReportProcessModel instance)
 {
     try
     {
         instance.FileName = $"{instance.ReportId}_{instance.ApplicationUserId}_{DateTime.Now.ToString("yyyyMMdd-HHmmss")}.xlsx";
         var path = Path.Combine(globalConfig.PathToExportExcelFiles, instance.FileName);
         //update status to inProgress
         StartProcess(instance);
         //Load Data using report procedure
         GenerateFile(instance, path);
         //update status to done
         DoneProcess(instance);
     }
     catch (Exception ex)
     {
         //update status to error
         instance.Messages.Add(new ReportProcessMessageModel {
             Message = ex.Message, StackTrace = ex.ToString()
         });
         AddMessage(instance);
         ErrorProcess(instance);
     }
 }
예제 #6
0
 public void StartProcess(ReportProcessModel instance)
 {
     instance.StartAt = DateTime.Now;
     reportProcessRepository.Update(instance);
     //Load Data using report procedure
 }
예제 #7
0
 public void Insert(ReportProcessModel instance)
 {
     instance.CreatedAt = DateTime.Now;
     reportProcessRepository.Insert(instance);
 }
예제 #8
0
 public void Delete(ReportProcessModel instance)
 {
     reportProcessRepository.Delete(instance);
 }
예제 #9
0
 public void AddMessage(ReportProcessModel instance)
 {
     reportProcessRepository.AddMessage(instance);
 }
예제 #10
0
 public void Update(ReportProcessModel instance)
 {
     instance.UpdateAt = DateTime.Now;
     reportProcessRepository.Update(instance);
 }
예제 #11
0
 public void ErrorProcess(ReportProcessModel instance)
 {
     instance.EndAt  = DateTime.Now;
     instance.Status = eReportProcessStatus.Error;
     reportProcessRepository.Update(instance);
 }
예제 #12
0
 public void DoneProcess(ReportProcessModel instance)
 {
     instance.EndAt  = DateTime.Now;
     instance.Status = eReportProcessStatus.DoneSucessfully;
     reportProcessRepository.Update(instance);
 }
예제 #13
0
 public void Delete(ReportProcessModel instance)
 {
     Delete(instance.Id);
 }