public void PopulateForm(RecordMail m)
        {
            if (m == null)
            {
                Clear();
                return;
            }

            curr                                    = m;
            Operator                                = dicOper.ContainsKey(m.OperatorId) ? dicOper[m.OperatorId] : null;
            textBoxDetail.Text                      = m.Detail;
            textBoxMemo.Text                        = m.Memo;
            dateTimePickerDmcDate.Value             = m.Date;
            dateTimePickerMonth.Value               = m.Monthly;
            transactionControl1.Button_Prev.Enabled = Prev != null;
            transactionControl1.Button_Next.Enabled = true;
            buttonAdd.Text                          = "Update";
            if (dicOper.ContainsKey(m.OperatorSendId))
            {
                comboBoxSender.SelectedItem = dicOper[m.OperatorSendId];
            }
            else
            {
                comboBoxSender.SelectedIndex = -1;
            }
            Enable(false);
        }
 private void Clear()
 {
     curr = null;
     transactionControl1.Button_Next.Enabled = false;
     transactionControl1.Button_Prev.Enabled = Prev != null;
     Operator = null;
     comboBoxSender.SelectedIndex = -1;
     textBoxDetail.Text           = string.Empty;
     textBoxMemo.Text             = string.Empty;
     dateTimePickerMonth.Value    = DateTime.Today;
     dateTimePickerDmcDate.Value  = DateTime.Today;
     buttonAdd.Text = "Add";
     grid.Rows.Clear();
     FileInMemory.Clear();
     Enable(true);
 }
        List <RecordMail> GetExcel()
        {
            if (string.IsNullOrWhiteSpace(path))
            {
                return(null);
            }
            Dictionary <string, Operator> dicOperators = facade.GetOperators().ToDictionary(p => p.Name.ToLower());
            var       mails    = new List <RecordMail>();
            var       excelmgr = new ExcelManager();
            DataTable dt       = excelmgr.ReadExcel(path);

            foreach (DataRow dr in dt.Rows)
            {
                string op     = $"{dr["operator"]}".ToLower();
                string send   = $"{dr["sender"]}".ToLower();
                string detail = $"{dr["detail"]}";
                if (!dicOperators.ContainsKey(op))
                {
                    throw new ValidatingException($"operator {op} not found");
                }
                if (!dicOperators.ContainsKey(send))
                {
                    throw new ValidatingException($"sender {send} not found");
                }

                DateTime date;
                if (!DateTime.TryParse($"{dr["date"]:dd-MMM-yyyy}", out date))
                {
                    throw new ValidatingException($"Invalid date format! on row operator {op}");
                }
                var rec = new RecordMail()
                {
                    OperatorId     = dicOperators[op].Id,
                    OperatorSendId = dicOperators[send].Id,
                    Detail         = detail,
                    Date           = date,
                };
                mails.Add(rec);
            }
            return(mails);
        }