Beispiel #1
0
        public IEnumerable <IdpExcelRow> Convert(IDictionary <Competency, List <IdpAction> > source, IEnumerable <IdpExcelRow> destination, ResolutionContext context)
        {
            var result = new List <IdpExcelRow>();

            foreach (var comp in source)
            {
                foreach (var action in comp.Value)
                {
                    var row = new IdpExcelRow();
                    row.CompetencyName          = comp.Key.Name;
                    row.CompetencyLevel         = Int32.Parse(comp.Key.Level.Name);
                    row.ActionSourceDescription = action.Name;
                    row.Taken = action.Updated;
                    switch (action.ActionType.Value)
                    {
                    case 0: row.ActionPercentage = 10;
                        break;

                    case 1:
                        row.ActionPercentage = 20;
                        break;

                    case 2:
                        row.ActionPercentage = 70;
                        break;
                    }
                    result.Add(row);
                }
            }
            return(result);
        }
Beispiel #2
0
        public IEnumerable <IdpExcelRow> GetAllRows(IEnumerable <IdpColumn> columnDefinitions, bool ignoreFirstRow = true)
        {
            var result = new List <IdpExcelRow>();

            foreach (var ws in _ePackage.Workbook.Worksheets)
            {
                if (ws.Hidden == eWorkSheetHidden.Hidden)
                {
                    continue;
                }
                var lastRow    = ws.Dimension.End.Row;
                var lastColumn = ws.Dimension.End.Column;
                for (var i = ignoreFirstRow ? 2 : 1; i < lastRow + 1; i++)
                {
                    //if first cell empty, continue from next row
                    if (ws.Cells[i, 1].Value == null)
                    {
                        continue;
                    }

                    //if whole row empty - stop iteration on ws
                    if (ws.Cells[i, 1, i, lastColumn].All(_ => _.Value == null))
                    {
                        break;
                    }

                    var c = new IdpExcelRow
                    {
                        CompetencyName          = ws.GetValue <string>(i, columnDefinitions.First(_ => _.ColumnType == ColumnActionType.CompetencyName).ColumnIndex),
                        CompetencyLevel         = ws.GetValue <int>(i, columnDefinitions.First(_ => _.ColumnType == ColumnActionType.CompetencyLevel).ColumnIndex),
                        ActionPercentage        = ws.GetValue <int>(i, columnDefinitions.First(_ => _.ColumnType == ColumnActionType.ActionPercentage).ColumnIndex),
                        ActionSourceDescription = ws.GetValue <string>(i, columnDefinitions.First(_ => _.ColumnType == ColumnActionType.SourceText).ColumnIndex),
                        Translations            = new List <Translation>()
                    };
                    foreach (var translation in columnDefinitions.Where(_ => _.ColumnType == ColumnActionType.Translation))
                    {
                        c.Translations.Add(new Translation {
                            Language = translation.Language.ToString().ToLower(),
                            Name     = ws.GetValue <string>(i, translation.ColumnIndex)
                        });
                    }
                    result.Add(c);
                }
            }
            return(result);
        }