Ejemplo n.º 1
0
 protected bool ImportFileInternal(IExportImport model)
 {
     try
     {
         Settings settings = SettingsDao.LoadFirst();
         if (settings == null)
             throw new ArgumentException("Отсутствуют настройки в базе данных.");
         string importFilePath = settings.DownloadDictionaryFilePath;
         Log.DebugFormat("Загрузка, файл {0}", importFilePath);
         bool hasWarnings;
         List<ImportDto> dtos = ReadFromFile(importFilePath, out hasWarnings);
         SetUsersToDatabase(dtos, ref hasWarnings);
         if (hasWarnings)
         {
             model.Error = "В файле найдены ошибки, некоторые записи были пропущены.";
             Log.Debug(model.Error);
         }
         ExportImportAction action = new ExportImportAction
         {
             Type = (int)ExportImportType.Import,
             Date = DateTime.Now,
         };
         ExportImportActionDao.MergeAndFlush(action);
         Log.DebugFormat("Загрузка, файл {0} успешна.", importFilePath);
         SendEmail(settings, model, settings.ExportImportEmail, "Загрузка файла",
                 string.Format("Файл был успешно загружен {0}", DateTime.Now));
         if (!string.IsNullOrEmpty(model.EmailDto.Error))
         {
             string sendMessageError =
             string.Format(@"Файл был успешно загружен {0},
                            однако письмо об этом не было отправлено.
                            Ошибка: {1}", DateTime.Now, model.EmailDto.Error);
             model.Error = string.IsNullOrEmpty(model.Error)
                               ? sendMessageError
                               : model.Error + " " + sendMessageError;
         }
         return true;
     }
     catch (Exception ex)
     {
         Log.Error("Exception", ex);
         model.Error = "Исключение: " + ex.GetBaseException().Message;
         return false;
     }
 }
Ejemplo n.º 2
0
 protected bool ExportFileInternal(IExportImport model)
 {
     try
     {
         Settings settings = SettingsDao.LoadFirst();
         if (settings == null)
             throw new ArgumentException("Отсутствуют настройки в базе данных.");
         string exportFilePath = settings.UploadTimesheetFilePath;
         DateTime exportMonth = model.Month;
         Log.DebugFormat("Выгрузка за {0}, файл {1}",GetMonth(exportMonth),exportFilePath);
         IList<Timesheet> timesheets = TimesheetDao.LoadTimesheetsForMonth(exportMonth);
         List<string> result = SerializeTimesheets(timesheets);
         Encoding encoding = Encoding.GetEncoding(1251);
         System.IO.File.WriteAllLines(exportFilePath,result, encoding);
         ExportImportAction action = new ExportImportAction
         {
             Type = (int)ExportImportType.Export,
             Date = DateTime.Now,
             Month = exportMonth,
         };
         ExportImportActionDao.MergeAndFlush(action);
         string exportMonthString = GetMonth(exportMonth);
             //exportMonth.ToString("MMMM") + " " + exportMonth.Year;
         Log.DebugFormat("Выгрузка за {0} (файл {1}) успешна.", exportMonthString,exportFilePath);
         SendEmail(settings, model, settings.ExportImportEmail, "Выгрузка файла",
                 string.Format("Файл за {0} был успешно выгружен {1}",
                 exportMonthString , DateTime.Now));
         if (!string.IsNullOrEmpty(model.EmailDto.Error))
         {
             string sendMessageError =
             string.Format(@"Файл за {0} успешно выгружен {1},
                            однако письмо об этом не было отправлено.
                            Ошибка: {2}", exportMonthString,
                             DateTime.Now, model.EmailDto.Error);
             model.Error = sendMessageError;
         }
         return true;
     }
     catch (Exception ex)
     {
         Log.Error("Exception", ex);
         model.Error = "Исключение: " + ex.GetBaseException().Message;
         return false;
     }
 }