public void AddMessage(ReportProcessModel instance) { context.ExecuteCommand(new RepositoryCommand { CommandName = "spInsertReportProcessMessage", Parameters = new Dictionary <string, object> { { "ReportProcessId", instance.Id }, { "Messages", instance.Messages } } }); }
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 } } }); }
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); }
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 } } }); }
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); } }
public void StartProcess(ReportProcessModel instance) { instance.StartAt = DateTime.Now; reportProcessRepository.Update(instance); //Load Data using report procedure }
public void Insert(ReportProcessModel instance) { instance.CreatedAt = DateTime.Now; reportProcessRepository.Insert(instance); }
public void Delete(ReportProcessModel instance) { reportProcessRepository.Delete(instance); }
public void AddMessage(ReportProcessModel instance) { reportProcessRepository.AddMessage(instance); }
public void Update(ReportProcessModel instance) { instance.UpdateAt = DateTime.Now; reportProcessRepository.Update(instance); }
public void ErrorProcess(ReportProcessModel instance) { instance.EndAt = DateTime.Now; instance.Status = eReportProcessStatus.Error; reportProcessRepository.Update(instance); }
public void DoneProcess(ReportProcessModel instance) { instance.EndAt = DateTime.Now; instance.Status = eReportProcessStatus.DoneSucessfully; reportProcessRepository.Update(instance); }
public void Delete(ReportProcessModel instance) { Delete(instance.Id); }