UserControls/BaseCustomerDgvControl.cs

using ChatworkBulkSender.Daos;
using ChatworkBulkSender.Dtos;
using ChatworkBulkSender.Forms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics.CodeAnalysis;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ChatworkBulkSender.UserControls
{
    /// <summary>
    /// 顧客マスタDGVへの派生として中間クラスを定義。
    /// </summary>
    [DesignerCategory("")] // デザイナーで表示しない
    public partial class BaseCustomerDgvControl : AbstractBaseMasterDgvControl<CustomerMasterDto, CustomerMasterDao, M_CustomerMasterIndividualEdit>
    {
        protected override int EditButtonColumnIndex => 0;

        protected override int SortableColumnMaxIndex => 0;

        protected override string InitialSortColumnName => string.Empty;

        public BaseCustomerDgvControl() : base() {}

        protected override List<CustomerMasterDto> GetDataFromDao() 
        {
            if (IsInDesignMode()) { return new List<CustomerMasterDto>(); }

            throw new NotImplementedException("この実装は派生クラスでオーバーライドしてください。");        
        }

        protected override bool HasUpdateAfter(DateTime? lastLoadTime)
        {
            if (IsInDesignMode()) { return false; }

            throw new NotImplementedException("この実装は派生クラスでオーバーライドしてください。");
        }

        protected override void ShowEditForm(CustomerMasterDto selectedItem) 
        {
            if (!IsInDesignMode()) { }

            throw new NotImplementedException("この実装は派生クラスでオーバーライドしてください。");
        }
    }
}