Exemple #1
0
        /// <summary>
        /// Get helper for processing a document, based on document extension
        /// </summary>
        /// <param name="path">Source document full path</param>
        /// <returns></returns>
        private static DocumentHelper GetHelperForDocument(String path)
        {
            DocumentHelper helper = null;
            FileInfo       fi     = new FileInfo(path);
            String         ext    = fi.Extension.Substring(1).ToLower();

            if (ext.Equals("docx"))
            {
                helper = new WordDocumentHelper();
            }
            else if (ext.Equals("xlsx"))
            {
                helper = new ExcelDocumentHelper();
            }
            else if (ext.Equals("pptx"))
            {
                helper = new PowerPointDocumentHelper();
            }
            else if (ext.Equals("jpeg") || ext.Equals("jpg") || ext.Equals("png") || ext.Equals("bmp") || ext.Equals("gif") || ext.Equals("tiff"))
            {
                helper = new PictureDocumentHelper();
            }
            else
            {
                if (TextHighlightConfiguration.GetTextHighlightForTextFile(path) != null)
                {
                    helper = new TextDocumentHelper();
                }
            }
            return(helper);
        }
Exemple #2
0
        /// <summary>
        /// Need to be removed, not used anymore
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static Document LoadExistingDocument(String path)
        {
            DocumentHelper helper = new ExcelDocumentHelper();

            Document document = null;

            return(document);
        }
Exemple #3
0
        public async Task <IActionResult> PrintDismissalRecruitsReport()
        {
            var dismissals = await _appDb.Dismissals
                             .Include(m => m.Recruit)
                             .ThenInclude(m => m.MilitaryComissariat)
                             .OrderBy(m => m.Recruit.MilitaryComissariat.ShortName)
                             .ThenBy(m => m.Recruit.FullName)
                             .ToListAsync();

            return(File(ExcelDocumentHelper.GenerateDismissalRecruitsReport(dismissals),
                        ExcelDocumentHelper.OutputFormatType,
                        "Списка призывников в увольнении.xlsx"));
        }
Exemple #4
0
        public async Task <IActionResult> PrintConscriptionPeriodReport(int conscriptionPeriodId,
                                                                        string dateAndOutgoingNumber)
        {
            var recruits = await _appDb.Recruits
                           .Where(m => m.ConscriptionPeriodId == conscriptionPeriodId &&
                                  m.DactyloscopyStatusId == DactyloscopyStatus.Selected)
                           .Include(m => m.MilitaryComissariat)
                           .AsNoTracking().ToListAsync();

            return(File(ExcelDocumentHelper.GenerateConscriptionPeriodReport(recruits, dateAndOutgoingNumber),
                        ExcelDocumentHelper.OutputFormatType,
                        "Журнал учета военослужащих.xlsx"));
        }
Exemple #5
0
        private IEnumerable <T> LoadRecords <T>(string fileName)
            where T : new()
        {
            var records = new List <T>();

            using (var dataTable = new DataTable())
            {
                ExcelDocumentHelper.LoadFromSheet(fileName, dataTable, inferColumns: true);
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    var allEmpty = dataRow.ItemArray.All(o => o == null || Convert.IsDBNull(o));
                    if (allEmpty)
                    {
                        break;
                    }
                    var record = new T();
                    foreach (DataColumn dataColumn in dataTable.Columns)
                    {
                        var propertyInfo = dataColumn.ExtendedProperties["Property"] as PropertyInfo;
                        if (propertyInfo == null)
                        {
                            propertyInfo = typeof(T).GetProperty(dataColumn.ColumnName);
                            dataColumn.ExtendedProperties["Property"] = propertyInfo;
                        }
                        if (propertyInfo == null)
                        {
                            throw new ArgumentException("Column '{0}' is invalid".ParseTemplate(dataColumn.ColumnName));
                        }

                        var value = dataRow[dataColumn.ColumnName];
                        if (value != null && !Convert.IsDBNull(value) && value != string.Empty)
                        {
                            try
                            {
                                value = ConvertValue(propertyInfo.PropertyType, value.ToString());
                            }
                            catch (Exception anyException)
                            {
                                throw new ApplicationException("Column '{0}' contains invalid value, see inner exception".ParseTemplate(dataColumn.ColumnName), anyException);
                            }
                            if (value != null)
                            {
                                propertyInfo.SetValue(record, value);
                            }
                        }
                    }
                    records.Add(record);
                }
            }
            return(records.ToArray());
        }
Exemple #6
0
        public async Task <IActionResult> PrintReturnTodayDismissalRecruitsReport()
        {
            var dismissals = await _appDb.Dismissals
                             .Include(m => m.Recruit)
                             .ThenInclude(m => m.MilitaryComissariat)
                             .Where(m => m.ReturnDate.DayOfYear == DateTime.Now.DayOfYear)
                             .OrderBy(m => m.Recruit.MilitaryComissariat.ShortName)
                             .ThenBy(m => m.Recruit.FullName)
                             .ToListAsync();

            return(File(ExcelDocumentHelper.GenerateReturnTodayDismissalRecruitsReport(dismissals),
                        ExcelDocumentHelper.OutputFormatType,
                        "Списка призывников, возвращающихся с увольнения.xlsx"));
        }
Exemple #7
0
        public async Task <IActionResult> PrintMilitaryComissariatReport(string militaryComissariatId,
                                                                         int conscriptionPeriodId)
        {
            var militaryComissariat = await _appDb.MilitaryComissariats.AsNoTracking()
                                      .FirstOrDefaultAsync(m => m.Id == militaryComissariatId);

            var recruits = await _appDb.Recruits
                           .Where(m => m.MilitaryComissariatCode == militaryComissariatId &&
                                  m.ConscriptionPeriodId == conscriptionPeriodId)
                           .OrderBy(m => m.LastName).AsNoTracking().ToListAsync();

            return(File(ExcelDocumentHelper.GenerateMilitaryComissariatReport(recruits, militaryComissariat),
                        ExcelDocumentHelper.OutputFormatType,
                        "Именной список.xlsx"));
        }
Exemple #8
0
        public async Task <IActionResult> PrintRecruitsPhoneReport(
            DateTime startDate,
            DateTime endDate,
            string printMode             = "today",
            string militaryComissariatId = "")
        {
            string header;
            var    qRecruits = _zarnicaDb.Recruits.Include(m => m.MilitaryComissariat).AsNoTracking().AsQueryable();

            if (!string.IsNullOrEmpty(militaryComissariatId))
            {
                qRecruits = qRecruits.Where(m => m.MilitaryComissariatId == militaryComissariatId);
            }
            switch (printMode)
            {
            case "today":
                qRecruits = qRecruits.Where(m => m.DelivaryDate.DayOfYear == DateTime.Today.DayOfYear);
                header    = DateTime.Today.ToShortDateString();
                break;

            case "full":
                var conscriptionPeriod = await _appDb.ConscriptionPeriods.AsNoTracking().FirstOrDefaultAsync(c => !c.IsArchive);

                header = conscriptionPeriod.Name;
                break;

            case "period":
                qRecruits = qRecruits.Where(m => m.DelivaryDate.DayOfYear > startDate.DayOfYear);
                header    = "период с " + startDate.ToShortDateString() + " по " + endDate.ToShortDateString();
                break;

            default:
                return(RedirectToAction("Index"));
            }

            var recruits = await qRecruits.ToListAsync();

            if (!string.IsNullOrEmpty(militaryComissariatId))
            {
                header += " из " + recruits[0].MilitaryComissariat.ShortName;
            }
            return(File(ExcelDocumentHelper.GenerateRecruitsPhoneReport(recruits, header),
                        ExcelDocumentHelper.OutputFormatType,
                        $"Список призывников.xlsx"));
        }
Exemple #9
0
        /// <summary>
        /// After document was parsed, now it's time for charts, processed concurrent with presentation
        /// </summary>
        /// <param name="path">Source document path</param>
        /// <param name="worker">Background Worker</param>
        /// <param name="document">Current KineSis Document</param>
        public static void CreateNewDocumentCharts(String path, BackgroundWorker worker, Document document)
        {
            FileInfo file = new FileInfo(path);

            DocumentHelper helper = GetHelperForDocument(path);

            if (helper != null)
            {
                ProcessingProgress pp = new ProcessingProgress(worker);
                try
                {
                    if (helper is PowerPointDocumentHelper)
                    {
                        PowerPointDocumentHelper h = (PowerPointDocumentHelper)helper;
                        h.ParseNewDocumentCharts(path, pp, document);
                    }
                    else if (helper is ExcelDocumentHelper)
                    {
                        ExcelDocumentHelper h = (ExcelDocumentHelper)helper;
                        h.ParseNewDocumentCharts(path, pp, document);
                    }
                    else if (helper is WordDocumentHelper)
                    {
                        WordDocumentHelper h = (WordDocumentHelper)helper;
                        h.ParseNewDocumentCharts(path, pp, document);
                    }
                }
                catch (Exception ex)
                {
                    pp.OverallOperationName = "[Exception] " + ex.Message;
                    //    pp.OverallOperationTotalElements = 1;
                    //    MessageBox.Show(ex.Message);
                }

                Document.serialize(document, TEMP_DIRECTORY + "\\" + document.Location + ".xml");

                ProfileManager.AddDocumentToActive(document.Name, document.Location);
                ProfileManager.Serialize();
            }
        }