Example #1
0
        protected int RunCommand()
        {
            IEnumerable <ExcelRosterFileInfo> rosters;

            if (_arg.Values.Count == 0)
            {
                Out.WriteLine("No table name specified - default to All");
                rosters = Storage.GetRosters();
            }
            else if (_allOption.Equals(_arg.Values[0], StringComparison.InvariantCultureIgnoreCase))
            {
                rosters = Storage.GetRosters();
            }
            else
            {
                var r = new List <ExcelRosterFileInfo>(_arg.Values.Count);
                foreach (var v in _arg.Values)
                {
                    var rfi = Storage.Find(v);
                    if (rfi == null)
                    {
                        Out.WriteLine("Unknown roster " + v);
                        return(1);
                    }
                    r.Add(rfi);
                }
                rosters = r;
            }
            foreach (var r in rosters)
            {
                if (r.RosterType == ExcelRosterFileInfo.RosterTypes.ImplicitNames)
                {
                    var sheetName = new TypeMap <ColumnMap>().SheetName;
                    using (var mapSS = new XLWorkbook(r.MapPath, XLEventTracking.Disabled))
                    {
                        var sheet = mapSS.Worksheets.FirstOrDefault(s => s.Name.Equals(sheetName, StringComparison.InvariantCultureIgnoreCase));
                        var map   = FromSheet.DictionaryFromSheet(sheet, "Column", "ShiftCode");
                        IEnumerable <Appointment> roster;
                        if (r.MapPath == r.RosterPath)
                        {
                            roster = GetRows.FromInitialDict(mapSS, map, r.DateColumn);
                        }
                        else
                        {
                            using (var rosterSS = new XLWorkbook(r.RosterPath, XLEventTracking.Disabled))
                            {
                                roster = GetRows.FromInitialDict(rosterSS, map, r.DateColumn);
                            }
                        }
                        SendEntities.PostRosterUpsert(r.RosterId, r.Base64Secret, roster, Out, Error);
                    }
                }
            }
            return(0);
        }
Example #2
0
        protected int RunCommand()
        {
            if (string.IsNullOrEmpty(_arg.Value))
            {
                Error.WriteLine("no roster specified. Syntax: " + Syntax);
                return(1);
            }
            var rosterInfo = Storage.Find(_arg.Value);

            if (rosterInfo == null)
            {
                Error.WriteLine("unknown roster - use syntax " + Syntax);
                return(1);
            }

            string tableName = _tableOption.Value();

            if (string.IsNullOrEmpty(tableName))
            {
                Out.WriteLine("No table name specified - default to " + _allOption + " option");
                tableName = _allOption;
            }
            IEnumerable <TypeMap> selectedTypes = tableName.Equals(_allOption, StringComparison.InvariantCultureIgnoreCase)
                ? selectedTypes = App._typeMaps
                :App._typeMaps.Where(e => e.SheetName.Equals(tableName, StringComparison.InvariantCultureIgnoreCase)).ToList();

            if (!selectedTypes.Any())
            {
                Error.Write("An entity with that name was not found - use syntax " + Syntax);
                return(1);
            }

            try
            {
                /*
                 * using (var document = SpreadsheetDocument.Open(rosterInfo.MapPath, false))
                 * {
                 *  var sheets = document.WorkbookPart.Workbook.Descendants<Sheet>();
                 *  foreach (var s in selectedTypes)
                 *  {
                 *      var data = s.FromSheets(sheets);
                 *      SendEntities.PostRosterUpsert(rosterInfo.RosterId, rosterInfo.Base64Secret, data, Out, Error);
                 *  }
                 * }
                 */
                using (var wb = new XLWorkbook(rosterInfo.MapPath, XLEventTracking.Disabled))
                {
                    foreach (var s in selectedTypes)
                    {
                        var data = s.FromXLWorkbook(wb, rosterInfo.RosterId);
                        SendEntities.PostRosterUpsert(rosterInfo.RosterId, rosterInfo.Base64Secret, data, Out, Error);
                    }
                }
            }
            catch (IOException e)
            {
                Error.WriteLine(e.Message);
                return(1);
            }


            return(0);
        }