public IHttpActionResult Post(OrganizationRolePostRequest requestData)
        {
            var requestService  = new Service.Utility.RequestDataHelper <OrganizationRolePostRequest>();
            var response        = new Infrastructure.ViewModel.Base.BaseResponse <List <OrganizationRole> >();
            var checkColumnKeys = new string[3] {
                "token", "orgcode", "orgRoles"
            };
            var checkDataEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys);

            if (checkDataEmpty == false)
            {
                response.Message = "遺漏參數";
                response.State   = Infrastructure.ViewModel.Base.LogState.RequestDataError;
                response.Success = false;
                return(Content(HttpStatusCode.BadRequest, response));
            }
            var organizationRoleService = new OrganizationRoleService();
            var responseData            = organizationRoleService.PostByRequest(requestData);

            if (responseData == null)
            {
                response.Success = false;
                response.Message = "處理失敗";
                response.State   = Infrastructure.ViewModel.Base.LogState.Error;
                return(Ok(response));
            }
            response.Success = true;
            response.Message = "處理成功";
            response.Data    = responseData;
            return(Ok(response));
        }
        /// <summary>
        /// 處理多筆資料 - 新增 刪除 修改
        /// </summary>
        /// <param name="requestData"></param>
        /// <returns></returns>
        public List <OrganizationRole> PostByRequest(OrganizationRolePostRequest requestData)
        {
            var db = _uow.DbContext;
            var organizationInfo = _uow.OrganizationRepo.Get(t => t.OrgCode == requestData.OrgCode).FirstOrDefault();

            if (organizationInfo == null)
            {
                return(null);
            }

            var dbDatas = GetListByRequest(requestData);

            if (dbDatas == null)
            {
                return(null);
            }
            var insertDatas = requestData.OrgRoles.Where(t => t.Id <= 0).ToList();

            foreach (var insertData in insertDatas)
            {
                insertData.OrgId = organizationInfo.Id;
                db.OrganizationRole.Add(insertData);
            }
            var updateDatas = requestData.OrgRoles.Where(t => t.Id > 0).ToList();

            foreach (var updateData in updateDatas)
            {
                var changeData = db.OrganizationRole.Find(updateData.Id);
                if (changeData == null)
                {
                    continue;
                }
                changeData.RoleCode = updateData.RoleCode;
                changeData.Name     = updateData.Name;
                changeData.IsAdmin  = updateData.IsAdmin;
                if (updateData.Level > 0)
                {
                    changeData.Level = updateData.Level;
                }
            }
            var unionDatas  = updateDatas.Select(t => t.Id).Union(dbDatas.Select(t => t.Id));
            var deleteDatas = unionDatas.Except(updateDatas.Select(t => t.Id));

            foreach (var deleteData in deleteDatas)
            {
                var removeData = db.OrganizationRole.Find(deleteData);
                if (removeData == null)
                {
                    continue;
                }
                db.OrganizationRole.Remove(removeData);
            }
            try
            {
                _uow.SaveChanges();
                db.SaveChanges();
                var responseData = GetListByRequest(requestData);
                return(responseData);
            }
            catch (Exception ex)
            {
                return(null);

                throw ex;
            }
        }