using System;
using System.Collections.Generic;
using System.Text;

namespace MyKarte.Service.Sample
{
    /// <summary>
    /// サンプルクラス
    /// </summary>
    public class SampleClass : MyKarte.Service.Impl.IAttachment
    {
        // 患者ID
        private string _patientId = string.Empty;

        // タイプ
        private string _type = string.Empty;

        // 属性
        private string _attribute = string.Empty;

        /// <summary>
        /// 認証する。
        /// </summary>
        /// <param name="args">引数</param>
        /// <returns>true: OK, false: NG</returns>
        public bool Authenticate(string[] args)
        {
            return true;
        }

        /// <summary>
        /// 患者IDを取得する。
        /// </summary>
        /// <returns>患者ID</returns>
        public string GetPatient()
        {
            return _patientId;
        }

        /// <summary>
        /// 患者IDを設定する。
        /// </summary>
        /// <param name="patientId">患者ID</param>
        public void SetPatient(string patientId)
        {
            _patientId = patientId;
        }

        /// <summary>
        /// type, attribute を設定する。
        /// </summary>
        /// <param name="props">type, attribute</param>
        public void SetProperties(string[] props)
        {
            // タイプ
            _type = props[0];

            // 属性
            _attribute = props[1];
        }

        /// <summary>
        /// 日付を取得する。
        /// </summary>
        /// <param name="startDate">開始日</param>
        /// <param name="endDate">終了日</param>
        /// <param name="diff">差分</param>
        /// <returns>日付</returns>
        public DateTime[] GetDates(DateTime startDate, DateTime endDate, bool diff)
        {
            // TODO: 日付を返す。
            return new DateTime[] { DateTime.Now };
        }

        /// <summary>
        /// 指定した日付のデータを文字列として取得する。
        /// </summary>
        /// <param name="date">日付</param>
        /// <returns>文字列</returns>
        public string GetContent(DateTime date)
        {
            // TODO: 文字列を返す。
            return string.Empty;
        }

        /// <summary>
        /// 指定した日付のデータをファイルとして取得する。
        /// </summary>
        /// <param name="date">日付</param>
        /// <returns>ファイルパス, descriptionId</returns>
        public Dictionary<string, string> GetFiles(DateTime date)
        {
            // TODO: ファイルパスを返す。
            return new Dictionary<string, string>();
        }
    }
}
