예제 #1
0
        public IActionResult Login([FromBody] SysUserInfo model)
        {
            RespondResult result   = new RespondResult();
            SysUserInfo   userInfo = systemUserService.GetLoginUserInfo(model.UserName);

            //用户不存在
            if (userInfo == null)
            {
                result.is_success = false;
                result.msg        = "用户不存在";
                result.result     = null;
            }

            //判断密码
            string md5Password = Md5Helper.Md5(model.Password);

            //密码错误
            if (!userInfo.Password.Equals(md5Password))
            {
                result.is_success = false;
                result.msg        = "密码错误";
                result.result     = null;
            }
            var tokenStr = AuthConfiguer.GetJWT(model, _jwtSettings);

            result.is_success = true;
            result.msg        = "";
            result.result     = tokenStr;
            return(Ok(result));
        }
예제 #2
0
        /// <summary> 新增版本
        /// </summary>
        /// <param name="version">版本号</param>
        public async Task <bool> CreateVersion(JsonReleaseVersion jsonReleaseVersion)
        {
            using (HttpClient client = new HttpClient(new HttpClientHandler()
            {
                UseCookies = false
            }))                                                                                       //若想手动设置Cookie则必须设置UseCookies = false
            {
                StringContent stringContent = new StringContent(JsonConvert.SerializeObject(jsonReleaseVersion));
                stringContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
                try
                {
                    var result = await client.PostAsync(new Uri(this.url + "/createVersion"), stringContent);

                    if (result.IsSuccessStatusCode)
                    {
                        RespondResult respondResult = JsonConvert.DeserializeObject <RespondResult>(await result.Content.ReadAsStringAsync());
                        if (!respondResult.Result)
                        {
                            this.OnUpgradeError(new ErrorArgs(respondResult.Message));
                        }
                        return(respondResult.Result);
                    }
                }
                catch (Exception ex)
                {
                    this.OnUpgradeError(new ErrorArgs(ex.Message));
                    return(false);
                }
            }
            return(true);
        }
예제 #3
0
        protected override Task <RespondResult> SendResponseCoreAsync(object message)
        {
            var status = new RespondResult(ResponseStatus.Success);

            Response = new RequestResult(message, RequestStatus.Success);
            return(Task.FromResult(status));
        }
예제 #4
0
        /// <summary> 删除版本
        /// </summary>
        /// <param name="version">版本号</param>
        public async Task <bool> DeleteVersion(string version)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    HttpResponseMessage httpResponseMessage = await httpClient.DeleteAsync(this.url + "/deleteVersion?version=" + version);

                    if (httpResponseMessage.IsSuccessStatusCode)
                    {
                        RespondResult respondResult = JsonConvert.DeserializeObject <RespondResult>(await httpResponseMessage.Content.ReadAsStringAsync());
                        if (!respondResult.Result)
                        {
                            this.OnUpgradeError(new ErrorArgs(respondResult.Message));
                        }
                        return(respondResult.Result);
                    }
                }
                catch (Exception ex)
                {
                    this.OnUpgradeError(new ErrorArgs(ex.Message));
                    return(true);
                }
            }
            return(false);
        }
예제 #5
0
        /// <summary>
        /// 合并上传的分块
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="filePath"></param>
        /// <returns></returns>
        private async Task <bool> Merge(string filePath)
        {
            using (HttpClient httpClient = new HttpClient()
            {
                Timeout = TimeSpan.FromSeconds(30)
            })
            {
                try
                {
                    var result = await httpClient.GetAsync(this.mergeURL + "?fileName=" + (this.UploadFileNameAppendBefore == null ? string.Empty : this.UploadFileNameAppendBefore + "\\") + filePath.Replace(fileRoot + "\\", ""));

                    if (result.IsSuccessStatusCode)
                    {
                        RespondResult respondResult = JsonConvert.DeserializeObject <RespondResult>(await result.Content.ReadAsStringAsync());
                        if (!respondResult.Result)
                        {
                            this.OnUploadError(new ErrorArgs(respondResult.Message));
                        }
                        return(respondResult.Result);
                    }
                }
                catch (Exception ex)
                {
                    this.OnUploadError(new ErrorArgs(ex.Message));
                }
            }
            return(false);
        }
예제 #6
0
        /// <summary>
        /// 获取文件版本号
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public async Task <string> GetVersion(string fileName)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    HttpResponseMessage httpResponseMessage = await httpClient.GetAsync(this.url + "/getVersion?fileName=" + fileName);

                    if (httpResponseMessage.IsSuccessStatusCode)
                    {
                        RespondResult respondResult = JsonConvert.DeserializeObject <RespondResult>(await httpResponseMessage.Content.ReadAsStringAsync());
                        if (respondResult.Result)
                        {
                            return(respondResult.Message);
                        }
                        else
                        {
                            return(null);
                        }
                    }
                }
                catch (Exception ex)
                {
                    this.OnUpgradeError(new ErrorArgs(ex.Message));
                }
            }
            return(null);
        }
예제 #7
0
        /// <summary>
        /// 一次性上传
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="filePath"></param>
        /// <returns></returns>
        private async Task <bool> UploadOnce(string filePath)
        {
            using (FileStream fileStream = System.IO.File.OpenRead(filePath))
                using (HttpClient client = new HttpClient(new HttpClientHandler()
                {
                    UseCookies = false
                }))                                                                                   //若想手动设置Cookie则必须设置UseCookies = false
                {
                    MultipartFormDataContent multipartFormDataContent = new MultipartFormDataContent();
                    multipartFormDataContent.Add(new ProgressableStreamContent(fileStream, UploadBufferSize, (r, u) => this.OnUploadProgressChanged(new ProgressChangedArgs(r, u, fileStream.Length)), (s) => this.OnUploadSpeedChanged(new SpeedChangedArgs(s))), "file", (this.UploadFileNameAppendBefore == null ? string.Empty : this.UploadFileNameAppendBefore + "\\") + filePath.Replace(fileRoot + "\\", ""));
                    try
                    {
                        var result = await client.PostAsync(new Uri(this.uploadUrl), multipartFormDataContent);

                        if (result.IsSuccessStatusCode)
                        {
                            RespondResult respondResult = JsonConvert.DeserializeObject <RespondResult>(await result.Content.ReadAsStringAsync());
                            if (!respondResult.Result)
                            {
                                this.OnUploadError(new ErrorArgs(respondResult.Message));
                            }
                            return(respondResult.Result);
                        }
                    }
                    catch (Exception ex)
                    {
                        this.OnUploadError(new ErrorArgs(ex.Message));
                    }
                }
            return(false);
        }
예제 #8
0
        /// <summary>
        /// 合并上传的分块
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="filePath"></param>
        /// <returns></returns>
        private async Task <bool> Merge(string filePath)
        {
            using (HttpClient httpClient = new HttpClient()
            {
                Timeout = TimeSpan.FromSeconds(30)
            })
            {
                try
                {
                    var result = await httpClient.GetAsync(this.MergeURL + "?fileName=" + Path.GetFileName(filePath));

                    if (result.IsSuccessStatusCode)
                    {
                        RespondResult respondResult = JsonConvert.DeserializeObject <RespondResult>(await result.Content.ReadAsStringAsync());
                        if (!respondResult.Result)
                        {
                            this.OnUploadError(respondResult.Message);
                        }
                        return(respondResult.Result);
                    }
                }
                catch (Exception ex)
                {
                    this.OnUploadError(ex.Message);
                }
            }
            return(false);
        }
예제 #9
0
        /// <summary>
        /// 一次性上传
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="filePath"></param>
        /// <returns></returns>
        private async Task <bool> UploadOnce(string filePath)
        {
            using (FileStream fileStream = File.OpenRead(filePath))
                using (HttpClient client = new HttpClient(new HttpClientHandler()
                {
                    UseCookies = false
                }))                                                                                   //若想手动设置Cookie则必须设置UseCookies = false
                {
                    MultipartFormDataContent multipartFormDataContent = new MultipartFormDataContent();
                    multipartFormDataContent.Add(new ProgressableStreamContent(fileStream, UploadBufferSize, (u) => this.OnUploadProgressChanged((float)((decimal)u / fileStream.Length)), (s) => this.OnUploadSpeedChanged(s)), "file", Path.GetFileName(filePath));
                    try
                    {
                        var result = await client.PostAsync(new Uri(this.UploadUrl), multipartFormDataContent);

                        if (result.IsSuccessStatusCode)
                        {
                            RespondResult respondResult = JsonConvert.DeserializeObject <RespondResult>(await result.Content.ReadAsStringAsync());
                            if (!respondResult.Result)
                            {
                                this.OnUploadError(respondResult.Message);
                            }
                            return(respondResult.Result);
                        }
                    }
                    catch (Exception ex)
                    {
                        this.OnUploadError(ex.Message);
                    }
                }
            return(false);
        }
예제 #10
0
 /// <summary> 异步获取下载流
 /// </summary>
 /// <param name="fileName"></param>
 /// <returns></returns>
 public Task <RespondResult> Upload(HttpRequest httpRequest)
 {
     return(Task <RespondResult> .Run(() =>
     {
         try
         {
             List <RespondResult> error = new List <RespondResult>();
             foreach (var formFile in httpRequest.Form.Files)
             {
                 RespondResult respondResult = null;
                 if (formFile.Name == "file")
                 {
                     respondResult = this.UploadOnce(formFile);
                 }
                 else
                 {
                     respondResult = this.UploadChunk(formFile);
                 }
                 if (!respondResult.Result)
                 {
                     error.Add(respondResult);
                 }
             }
             if (error.Count == 0)
             {
                 return new RespondResult()
                 {
                     Message = "上传成功"
                 };
             }
             else
             {
                 return new RespondResult()
                 {
                     Result = false,
                     Message = "上传失败",
                     Details = error.Select(e => e.Message).ToArray()
                 };
             }
         }
         catch (Exception ex)
         {
             return new RespondResult()
             {
                 Result = false,
                 Message = "上传失败" + ex.Message
             };
         }
     }));
 }
예제 #11
0
        /// <summary>
        /// 上传分块
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="stream"></param>
        /// <param name="filePath"></param>
        /// <param name="chunkName"></param>
        /// <param name="tryCount"></param>
        /// <returns></returns>
        private async Task <bool> UploadChunk(Stream stream, string filePath, string chunkName, long uploaded, long totalLength, long l, int tryCount = 0)
        {
            bool success = false;
            long loaded  = 0;
            long aa      = 0;

            using (HttpClient client = new HttpClient(new HttpClientHandler()
            {
                UseCookies = false
            }))                                                                                       //若想手动设置Cookie则必须设置UseCookies = false
            {
                MultipartFormDataContent multipartFormDataContent = new MultipartFormDataContent();
                multipartFormDataContent.Add(new ProgressableStreamContent(stream, UploadBufferSize, (r, u) =>
                {
                    aa     = u;
                    loaded = uploaded + u;
                    this.OnUploadProgressChanged(new ProgressChangedArgs(r, uploaded + u, totalLength));
                }, (s) => this.OnUploadSpeedChanged(new SpeedChangedArgs(s))), chunkName, (this.UploadFileNameAppendBefore == null ? string.Empty : this.UploadFileNameAppendBefore + "\\") + filePath.Replace(fileRoot + "\\", ""));
                try
                {
                    var result = await client.PostAsync(new Uri(this.uploadUrl), multipartFormDataContent);

                    if (result.IsSuccessStatusCode)
                    {
                        RespondResult respondResult = JsonConvert.DeserializeObject <RespondResult>(await result.Content.ReadAsStringAsync());
                        success = respondResult.Result;
                        if (!respondResult.Result)
                        {
                            this.OnUploadError(new ErrorArgs(respondResult.Message));
                        }
                    }
                }
                catch (Exception ex)
                {
                    this.OnUploadError(new ErrorArgs(ex.Message));
                }
            }
            if (aa != l)
            {
            }
            if (!success && tryCount < 3)
            {
                this.OnUploadProgressChanged(new ProgressChangedArgs((int)(uploaded - loaded), uploaded, totalLength));
                success |= await UploadChunk(stream, filePath, chunkName, uploaded, totalLength, l, tryCount + 1);
            }
            return(success);
        }
예제 #12
0
        /// <summary>
        /// 上传分块
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="stream"></param>
        /// <param name="filePath"></param>
        /// <param name="chunkName"></param>
        /// <param name="tryCount"></param>
        /// <returns></returns>
        private async Task <bool> UploadChunk(Stream stream, string filePath, string chunkName, long uploaded, long totalLength, int tryCount = 0)
        {
            bool success = false;

            using (HttpClient client = new HttpClient(new HttpClientHandler()
            {
                UseCookies = false
            }))                                                                                       //若想手动设置Cookie则必须设置UseCookies = false
            {
                MultipartFormDataContent multipartFormDataContent = new MultipartFormDataContent();
                multipartFormDataContent.Add(new ProgressableStreamContent(stream, UploadBufferSize, (u) =>
                {
                    this.OnUploadProgressChanged((float)((decimal)(uploaded + u) / totalLength));
                }, (s) => this.OnUploadSpeedChanged(s)), chunkName, Path.GetFileName(filePath));
                try
                {
                    var result = await client.PostAsync(new Uri(this.UploadUrl), multipartFormDataContent);

                    if (result.IsSuccessStatusCode)
                    {
                        RespondResult respondResult = JsonConvert.DeserializeObject <RespondResult>(await result.Content.ReadAsStringAsync());
                        success = respondResult.Result;
                        if (!respondResult.Result)
                        {
                            this.OnUploadError(respondResult.Message);
                        }
                    }
                }
                catch (Exception ex)
                {
                    this.OnUploadError(ex.Message);
                }
            }
            if (!success && tryCount < 3)
            {
                this.OnUploadProgressChanged((float)((decimal)uploaded / totalLength));
                success |= await UploadChunk(stream, filePath, chunkName, uploaded, totalLength, tryCount + 1);
            }
            return(success);
        }
예제 #13
0
        public IActionResult Registration([FromBody] SysUserInfo model)
        {
            RespondResult result = new RespondResult();

            model.Id         = Guid.NewGuid().ToString();
            model.CreateTime = DateTime.Now;
            model.UpdateTime = null;
            model.Password   = Md5Helper.Md5(model.Password);
            int resultcount = systemUserService.AddUser(model);

            //用户注册失败
            if (resultcount == 0)
            {
                result.is_success = false;
                result.msg        = "注册失败";
                result.result     = null;
            }
            var tokenStr = AuthConfiguer.GetJWT(model, _jwtSettings);

            result.is_success = true;
            result.msg        = "注册成功";
            result.result     = tokenStr;
            return(Ok(result));
        }