private void cmdSend_Click(object sender, EventArgs e)
        {
            frmLoginSendHaxCom oLogin = new frmLoginSendHaxCom {
                LoginURL = TimeKeeperBaseURL
            };

            oLogin.openMode        = frmLoginSendHaxCom.OpenMode.Submit;
            oLogin.optDays.Enabled = lvwHistory.SelectedItems.Count > 0;
            oLogin.optSel.Enabled  = oLogin.optDays.Enabled;
            if (oLogin.ShowDialog() == DialogResult.OK)
            {
                var Clients = GetHaxcomClients(oLogin.PHPSession);
                List <ListViewItem> Items;
                switch (oLogin.SendSelected)
                {
                case SendSelected.Selected:
                    Items = lvwHistory.SelectedItems.Cast <ListViewItem>().ToList();
                    ListViewGroup grp;
                    foreach (ListViewItem item in Items)
                    {
                        grp = item.Group;
                        lvwHistory.Items.Remove(item);
                        lvwHistory.Items.Add(SendItemToHaxCom(item, oLogin.PHPSession, Clients, grp));
                    }
                    break;

                case SendSelected.Days:
                    List <ListViewGroup> oLvgs = new List <ListViewGroup>();
                    foreach (ListViewItem item in lvwHistory.SelectedItems)
                    {
                        if (!oLvgs.Any(x => x == item.Group))
                        {
                            oLvgs.Add(item.Group);
                        }
                    }
                    foreach (var oLvg in oLvgs)
                    {
                        Items = oLvg.Items.Cast <ListViewItem>().ToList();
                        foreach (ListViewItem oItem in Items)
                        {
                            lvwHistory.Items.Remove(oItem);
                            lvwHistory.Items.Add(SendItemToHaxCom(oItem, oLogin.PHPSession, Clients, oLvg));
                        }
                    }
                    break;

                case SendSelected.All:
                    Items = lvwHistory.Items.Cast <ListViewItem>().ToList();
                    foreach (ListViewItem item in Items)
                    {
                        grp = item.Group;
                        lvwHistory.Items.Remove(item);
                        lvwHistory.Items.Add(SendItemToHaxCom(item, oLogin.PHPSession, Clients, grp));
                    }
                    break;
                }
            }
        }
        private void LoadTFSCSV()
        {
            frmLoginSendHaxCom oLogin = new frmLoginSendHaxCom {
                LoginURL = TimeKeeperBaseURL
            };

            oLogin.openMode        = frmLoginSendHaxCom.OpenMode.Search;
            oLogin.optDays.Enabled = false;
            oLogin.optSel.Enabled  = false;
            if (oLogin.ShowDialog() == DialogResult.OK)
            {
                List <WorkItemsDay> oItems = new List <WorkItemsDay>();
                List <CsvReg>       regs   = getHaxComTFSTime(oLogin.PHPSession, dtpFrom.Value, DateTime.Today, oLogin.chkAll.Checked, (oLogin.CHKBug.Checked || oLogin.chkPBI.Checked || oLogin.chkOther.Checked), oLogin.chkMeeting.Checked, oLogin.chkPrjtLess.Checked, oLogin.chkNonBillable.Checked, oLogin.chkCapitalized.Checked);
                var oDataSource            = oDataSources.First(x => x.Type == Datasourcetype.TFS);
                var outlookDataSource      = oDataSources.FirstOrDefault(x => x.Type == Datasourcetype.Outlook);
                //gets rest of TFS data using the TFS IDS
                var tfsItems = WorkItemMapper.GetHistoricalWorkitemsByIDs(oDataSource.ServerUrl, oDataSource.ProjectName, oDataSource.User, regs.Select(x => x.TFSId).Distinct());
                //assembles the listview
                foreach (DateTime dDate in regs.Select(x => x.Date).Distinct())
                {
                    var oTemp = new WorkItemsDay(dDate);
                    foreach (CsvReg oReg in regs.Where(x => x.Date == dDate))
                    {
                        if (oReg.TFSId == 0) //meetings
                        {
                            var oWI = new WorkItemHours();
                            oWI.HaxComID       = oReg.EntryID;
                            oWI.ID             = "meeting";
                            oWI.ProjectId      = 0;
                            oWI.ClientId       = 166;
                            oWI.SubClientId    = 5;
                            oWI.Function       = 41; //dev meeting
                            oWI.Description    = oReg.Title;
                            oWI.Title          = oReg.Title;
                            oWI.FromDatasource = outlookDataSource;
                            oWI.BillingType    = BillingType.Capitalized;
                            oWI.HaxComHours    = oReg.Hours;
                            oTemp.WorkItems.Add(oWI);
                        }
                        else
                        {
                            var oTFSI = tfsItems.FirstOrDefault(x => x.ID == oReg.TFSId.ToString());
                            if (oTFSI != null)
                            {
                                string sType = oTFSI.Type.ToUpperInvariant();
                                if (oLogin.chkAll.Checked || (sType == "BUG" && oLogin.CHKBug.Checked) || (sType == "USER STORY" && oLogin.chkPBI.Checked) ||
                                    (sType != "BUG" && sType != "PRODUCT BACKLOG ITEM" && oLogin.chkOther.Checked))
                                {
                                    oTemp.WorkItems.Add(WorkItemToWIHours(oTFSI, oReg.EntryID, oDataSource, oReg.Hours));
                                }
                            }
                        }
                    }
                    oItems.Add(oTemp);
                }
                UpdateListview(oItems, false);
            }
        }