/// <summary>
        /// Confirm data user input.<br />
        /// - Generate customer full address.<br />
        /// - Check is site change.
        /// </summary>
        /// <param name="doSite"></param>
        /// <returns></returns>
        public ActionResult MAS040_ConfirmData(MAS040_CheckRequiredField doSite)
        {
            ObjectResultData res = new ObjectResultData();

            res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;

            try
            {
                if (ModelState.IsValid == false)
                {
                    ValidatorUtil.BuildErrorMessage(res, this);
                    return(Json(res));
                }

                #region Create Customer Address Full

                doCustomer     cust     = CommonUtil.CloneObject <doSite, doCustomer>(doSite);
                IMasterHandler mhandler = ServiceContainer.GetService <IMasterHandler>() as IMasterHandler;
                mhandler.CreateAddressFull(cust);

                doSite.AddressFullEN = cust.AddressFullEN;
                doSite.AddressFullLC = cust.AddressFullLC;

                #endregion
                #region Check is changed

                if (doSite != null)
                {
                    if (MAS040_IsSiteChanged(doSite) == true)
                    {
                        doSite.SiteCode = null;
                    }
                    else
                    {
                        CommonUtil cmm = new CommonUtil();
                        doSite.SiteCode = cmm.ConvertSiteCode(doSite.SiteCode, CommonUtil.CONVERT_TYPE.TO_LONG);
                    }
                }
                #endregion

                res.ResultData = doSite;
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex);
            }

            return(Json(res));
        }
        /// <summary>
        /// Validate user inputed data.<br />
        /// - Set usage.<br />
        /// - Set province.<br />
        /// - Set district.<br />
        /// - Check require field.
        /// </summary>
        /// <returns></returns>
        public ActionResult MAS040_ValidateData()
        {
            ObjectResultData res = new ObjectResultData();

            res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;

            try
            {
                doSite doSite = null;

                MAS040_ScreenParameter siteData = GetScreenObject <MAS040_ScreenParameter>();
                if (siteData != null)
                {
                    if (siteData.doSite != null)
                    {
                        doSite = siteData.doSite;
                    }
                }

                if (doSite != null)
                {
                    IMasterHandler mhandler = ServiceContainer.GetService <IMasterHandler>() as IMasterHandler;

                    #region Usage

                    if (CommonUtil.IsNullOrEmpty(doSite.BuildingUsageCode) == false)
                    {
                        List <tbm_BuildingUsage> ulst = mhandler.GetTbm_BiuldingUsage();
                        if (ulst.Count > 0)
                        {
                            foreach (tbm_BuildingUsage u in ulst)
                            {
                                if (doSite.BuildingUsageCode == u.BuildingUsageCode)
                                {
                                    doSite.BuildingUsageName = u.BuildingUsageName;
                                    break;
                                }
                            }
                        }
                    }

                    #endregion
                    #region Province Data

                    if (CommonUtil.IsNullOrEmpty(doSite.ProvinceCode) == false)
                    {
                        List <tbm_Province> plst = mhandler.GetTbm_Province();
                        if (plst.Count > 0)
                        {
                            foreach (tbm_Province pv in plst)
                            {
                                if (doSite.ProvinceCode == pv.ProvinceCode)
                                {
                                    doSite.ProvinceNameEN = pv.ProvinceNameEN;
                                    doSite.ProvinceNameLC = pv.ProvinceNameLC;
                                    break;
                                }
                            }
                        }
                    }

                    #endregion
                    #region District

                    if (CommonUtil.IsNullOrEmpty(doSite.DistrictCode) == false)
                    {
                        List <tbm_District> dlst = mhandler.GetTbm_District(doSite.ProvinceCode);
                        if (dlst.Count > 0)
                        {
                            foreach (tbm_District d in dlst)
                            {
                                if (doSite.ProvinceCode == d.ProvinceCode &&
                                    doSite.DistrictCode == d.DistrictCode)
                                {
                                    doSite.DistrictNameEN = d.DistrictNameEN;
                                    doSite.DistrictNameLC = d.DistrictNameLC;
                                    break;
                                }
                            }
                        }
                    }

                    #endregion
                }

                MAS040_ValidateCombo validate = CommonUtil.CloneObject <doSite, MAS040_ValidateCombo>(doSite);
                ValidatorUtil.BuildErrorMessage(res, new object[] { validate });

                if (doSite != null)
                {
                    if (doSite.ValidateSiteData == false)
                    {
                        MAS040_CheckRequiredField cSiteDo = CommonUtil.CloneObject <doSite, MAS040_CheckRequiredField>(doSite);

                        /*
                         * if (CommonUtil.IsNullOrEmpty(cSiteDo.BuildingUsageName))
                         *  cSiteDo.BuildingUsageCode = null;
                         */
                        if ((CommonUtil.IsNullOrEmpty(cSiteDo.ProvinceCode) == false) &&
                            (CommonUtil.IsNullOrEmpty(cSiteDo.ProvinceNameEN)) &&
                            (CommonUtil.IsNullOrEmpty(cSiteDo.ProvinceNameLC)))
                        {
                            cSiteDo.ProvinceNameEN = cSiteDo.ProvinceCode;
                            cSiteDo.ProvinceNameLC = cSiteDo.ProvinceCode;
                        }

                        if ((CommonUtil.IsNullOrEmpty(cSiteDo.DistrictCode) == false) &&
                            (CommonUtil.IsNullOrEmpty(cSiteDo.DistrictNameEN)) &&
                            (CommonUtil.IsNullOrEmpty(cSiteDo.DistrictNameLC)))
                        {
                            cSiteDo.DistrictNameEN = cSiteDo.DistrictCode;
                            cSiteDo.DistrictNameLC = cSiteDo.DistrictCode;
                        }

                        ValidatorUtil.BuildErrorMessage(res, new object[] { cSiteDo });
                    }
                }
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex);
            }

            return(Json(res));
        }