/// <summary>
        /// Get Headcount by Id
        /// </summary>
        /// <param name="r"></param>
        /// <returns></returns>
        public HeadCountDTO Get(HeadCountList r)
        {
            HeadCount headcount = null;
            List <UploadFileDetail> uploadedFiles = null;

            using (var dbCmd = Db.CreateCommand())
            {
                dbCmd.CommandType    = CommandType.StoredProcedure;
                dbCmd.CommandTimeout = 300;
                dbCmd.Parameters.Add(new SqlParameter("@Id", r.Id));
                dbCmd.CommandText = "sp_GetHeadcountDetailById";
                using (var reader = dbCmd.ExecuteReader())
                {
                    headcount = reader.ConvertTo <HeadCount>();
                }
            }

            var result = new HeadCountDTO();

            result.HeadCountItem = headcount == null ? new HeadCount() : headcount;

            //Get File Name with Id
            using (var dbCmd = Db.CreateCommand())
            {
                dbCmd.CommandType    = CommandType.StoredProcedure;
                dbCmd.CommandTimeout = 300;
                dbCmd.Parameters.Add(new SqlParameter("@Id", r.Id));
                dbCmd.CommandText = "sp_GetUploadedFilesByHeadcountId";
                using (var reader = dbCmd.ExecuteReader())
                {
                    uploadedFiles = reader.ConvertToList <UploadFileDetail>();
                }
            }

            if (uploadedFiles.Count > 0)
            {
                result.UploadFileDetails = uploadedFiles;
            }
            else
            {
                result.UploadFileDetails = new List <UploadFileDetail>();
            }

            return(result);
        }
        public HeadCountDTO Put(HeadCountUpdate req)
        {
            List <UploadFileDetail> uploadedFiles = null;

            req.Headcount.UpdatedBy   = WindowsHelper.WindowsUserName;
            req.Headcount.UpdatedDate = DateTime.Now;
            Db.Update <HeadCount>(req.Headcount);

            Db.Delete <UploadFileDetail>(x => x.HeadCountID == req.Headcount.Id);

            foreach (var item in req.UploadFileDetailList)
            {
                Db.Save <UploadFileDetail>(item);
            }

            //Get File Name with Id
            using (var dbCmd = Db.CreateCommand())
            {
                dbCmd.CommandType    = CommandType.StoredProcedure;
                dbCmd.CommandTimeout = 300;
                dbCmd.Parameters.Add(new SqlParameter("@Id", req.Headcount.Id));
                dbCmd.CommandText = "sp_GetUploadedFilesByHeadcountId";
                using (var reader = dbCmd.ExecuteReader())
                {
                    uploadedFiles = reader.ConvertToList <UploadFileDetail>();
                }
            }

            var result = new HeadCountDTO
            {
                HeadCountItem = Db.GetById <HeadCount>(req.Headcount.Id)
            };

            if (uploadedFiles.Count > 0)
            {
                result.UploadFileDetails = uploadedFiles;
            }
            else
            {
                result.UploadFileDetails = new List <UploadFileDetail>();
            }

            return(result);
        }