Example #1
0
        public async Task <IActionResult> SendAdminRequest([FromBody] SendAdminRequestModel model)
        {
            var topicId = XUtils.ParseId(model.TopicId);

            // Topic is group topic
            var topic = await Context.Topics.FirstOrDefaultAsync(p => p.Id == topicId);

            if (topic == null)
            {
                return(new ApiError(MyErrorCode.IdNotFound, "Topic id not found").Wrap());
            }
            if (topic.IsGroup == false)
            {
                return(new ApiError(MyErrorCode.TypeMismatch, "This topic is not group").Wrap());
            }

            // should be normal member
            var member = await Context.TopicMembers.FirstOrDefaultAsync(p => p.TopicId == topicId && p.UserId == AuthStore.UserId);

            if (member?.Role != MemberRole.Normal)
            {
                return(new ApiError(MyErrorCode.RoleMismatch, "You are not normal row of the topic").Wrap());
            }

            // unhandled request exist?
            var previous = await Context.AdminRequests.FirstOrDefaultAsync(
                p => p.TopicId == topicId && p.SenderId == AuthStore.UserId && p.Status == RequestStatus.Unhandled);

            if (previous != null)
            {
                return(new ApiError(MyErrorCode.ExistUnhandledReuqest, "你已经发送过请求,但未被处理").Wrap());
            }

            // send request
            var request = new AdminRequest(topicId.Value, AuthStore.UserId.Value, model.Text);

            await Context.AddAsync(request);

            await Context.GoAsync();

            return(Ok(new IdResponse(request.Id)));
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sendAdminRequestModel"> (optional)</param>
        /// <returns>Task of ApiResponse (IdResponse)</returns>
        public async System.Threading.Tasks.Task <Org.OpenAPITools.Client.ApiResponse <IdResponse> > SendAdminRequestAsyncWithHttpInfo(SendAdminRequestModel sendAdminRequestModel = default(SendAdminRequestModel))
        {
            Org.OpenAPITools.Client.RequestOptions localVarRequestOptions = new Org.OpenAPITools.Client.RequestOptions();

            String[] _contentTypes = new String[] {
                "application/json"
            };

            // to determine the Accept header
            String[] _accepts = new String[] {
                "text/plain",
                "application/json",
                "text/json"
            };

            foreach (var _contentType in _contentTypes)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", _contentType);
            }

            foreach (var _accept in _accepts)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", _accept);
            }

            localVarRequestOptions.Data = sendAdminRequestModel;


            // make the HTTP request

            var localVarResponse = await this.AsynchronousClient.PostAsync <IdResponse>("/api/group-management/send-admin-request", localVarRequestOptions, this.Configuration);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("SendAdminRequest", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return(localVarResponse);
        }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sendAdminRequestModel"> (optional)</param>
        /// <returns>ApiResponse of IdResponse</returns>
        public Org.OpenAPITools.Client.ApiResponse <IdResponse> SendAdminRequestWithHttpInfo(SendAdminRequestModel sendAdminRequestModel = default(SendAdminRequestModel))
        {
            Org.OpenAPITools.Client.RequestOptions localVarRequestOptions = new Org.OpenAPITools.Client.RequestOptions();

            String[] _contentTypes = new String[] {
                "application/json"
            };

            // to determine the Accept header
            String[] _accepts = new String[] {
                "text/plain",
                "application/json",
                "text/json"
            };

            var localVarContentType = Org.OpenAPITools.Client.ClientUtils.SelectHeaderContentType(_contentTypes);

            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Org.OpenAPITools.Client.ClientUtils.SelectHeaderAccept(_accepts);

            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = sendAdminRequestModel;


            // make the HTTP request
            var localVarResponse = this.Client.Post <IdResponse>("/api/group-management/send-admin-request", localVarRequestOptions, this.Configuration);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("SendAdminRequest", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return(localVarResponse);
        }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="sendAdminRequestModel"> (optional)</param>
        /// <returns>Task of IdResponse</returns>
        public async System.Threading.Tasks.Task <IdResponse> SendAdminRequestAsync(SendAdminRequestModel sendAdminRequestModel = default(SendAdminRequestModel))
        {
            Org.OpenAPITools.Client.ApiResponse <IdResponse> localVarResponse = await SendAdminRequestAsyncWithHttpInfo(sendAdminRequestModel);

            return(localVarResponse.Data);
        }
Example #5
0
 /// <summary>
 ///
 /// </summary>
 /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="sendAdminRequestModel"> (optional)</param>
 /// <returns>IdResponse</returns>
 public IdResponse SendAdminRequest(SendAdminRequestModel sendAdminRequestModel = default(SendAdminRequestModel))
 {
     Org.OpenAPITools.Client.ApiResponse <IdResponse> localVarResponse = SendAdminRequestWithHttpInfo(sendAdminRequestModel);
     return(localVarResponse.Data);
 }