public DataResult GetNotifyConfig([FromQuery] int qId, int wId, bool menu)
        {
            var result = new DataResult();

            result.datas.AddRange(menu
                ? NotifyWebhookHelper.GetMenu(wId, qId)
                : NotifyWebhookHelper.GetDetail(wId, qId));
            if (qId != 0 && !result.datas.Any())
            {
                result.errno = Error.NotifyWebhookNotExist;
                return(result);
            }
            return(result);
        }
        public object PutNotifyConfig([FromBody] IEnumerable <NotifyWebhookDetail> details)
        {
            if (details == null || !details.Any())
            {
                return(Result.GenError <Result>(Error.ParamError));
            }
            if (details.Any(x => x.Name.IsNullOrEmpty()))
            {
                return(Result.GenError <Result>(Error.NotifyWebhookNotEmpty));
            }
            if (details.GroupBy(x => x.Name).Any(y => y.Count() > 1))
            {
                return(Result.GenError <Result>(Error.NotifyWebhookDuplicate));
            }

            var wId   = details.FirstOrDefault()?.WorkshopId ?? 0;
            var sames = details.Select(x => x.Name);
            var ids   = details.Select(x => x.Id);

            if (NotifyWebhookHelper.GetHaveSame(wId, sames, ids))
            {
                return(Result.GenError <Result>(Error.NotifyWebhookIsExist));
            }

            var cnt = NotifyWebhookHelper.Instance.GetCountByIds(ids);

            if (cnt != details.Count())
            {
                return(Result.GenError <Result>(Error.NotifyWebhookNotExist));
            }

            var markedDateTime = DateTime.Now;

            foreach (var detail in details)
            {
                detail.MarkedDateTime = markedDateTime;
                detail.Remark         = detail.Remark ?? "";
            }
            NotifyWebhookHelper.Instance.Update(details);
            return(Result.GenError <Result>(Error.Success));
        }
        public object PostNotifyConfig([FromBody] IEnumerable <NotifyWebhookDetail> details)
        {
            if (details == null || !details.Any())
            {
                return(Result.GenError <Result>(Error.ParamError));
            }
            if (details.Any(x => x.Name.IsNullOrEmpty()))
            {
                return(Result.GenError <Result>(Error.NotifyWebhookNotEmpty));
            }
            if (details.GroupBy(x => x.Name).Any(y => y.Count() > 1))
            {
                return(Result.GenError <Result>(Error.NotifyWebhookDuplicate));
            }

            var wId   = details.FirstOrDefault()?.WorkshopId ?? 0;
            var sames = details.Select(x => x.Name);

            if (NotifyWebhookHelper.GetHaveSame(wId, sames))
            {
                return(Result.GenError <Result>(Error.NotifyWebhookIsExist));
            }

            if (details.Any(x => x.Name.IsNullOrEmpty()))
            {
                return(Result.GenError <Result>(Error.NotifyWebhookNotEmpty));
            }

            var userId         = Request.GetIdentityInformation();
            var markedDateTime = DateTime.Now;

            foreach (var detail in details)
            {
                detail.CreateUserId   = userId;
                detail.MarkedDateTime = markedDateTime;
                detail.Remark         = detail.Remark ?? "";
            }
            NotifyWebhookHelper.Instance.Add(details);
            return(Result.GenError <Result>(Error.Success));
        }