/// <summary> /// Creates the newly created database user in Auth0 /// </summary> /// <param name="newUser">The Users object to be added</param> /// <returns></returns> public static string AddUser(Users newUser, string tempPass) { try { if (!ValidateToken()) { InitAPIToken(); } var client = new RestClient(baseUrl + "users"); var req = new RestRequest(Method.POST); Auth0UserPayload usr = new Auth0UserPayload(); usr.email = newUser.Email; usr.name = newUser.FullName; usr.password = tempPass; usr.connection = "Username-Password-Authentication"; req.AddJsonBody(usr); req.AddHeader("content-type", "application/json"); req.AddHeader("authorization", "Bearer " + tokenData.access_token); var response = client.Execute(req); var content = response.Content; UserPostResponse upp = JsonConvert.DeserializeObject <UserPostResponse>(content); UpdateDBUser(upp.user_id); return(upp.user_id); } catch (Exception e) { throw new HttpResponseException(Utility.CreateResponseMessage(e)); } }
public object Get(UserPostRequest request) { UserPostResponse Response = new UserPostResponse(); var posts = Response.Get(request); if (posts == null) { base.Response.StatusCode = (int)HttpStatusCode.NoContent; return Response; } string response = JsonConvert.SerializeObject(posts, Formatting.Indented); return response; }
public object Patch(UserPostRequest request) { UserPostResponse Response = new UserPostResponse(); var posts = Response.Patch(request); if (posts == null) { base.Response.StatusCode = (int)HttpStatusCode.NoContent; return(Response); } string response = JsonConvert.SerializeObject(posts, Formatting.Indented); return(response); }
public IHttpActionResult Post(RegisterRequest requestData) { var checkColumnKeys = new string[4] { "name", "account", "email", "pwd" }; //判斷是否遺漏參數 var checkEmpty = CheckEmpty(requestData, checkColumnKeys) as NegotiatedContentResult <BaseResponse <string> >; if (checkEmpty.Content.Success == false) { return(checkEmpty); } //驗證token var authToken = AuthToken(requestData.Token, Request) as NegotiatedContentResult <BaseResponse <string> >;; if (authToken.Content.Success == false) { return(authToken); } requestData.Token = _token; postResponse = new UserPostResponse(); var appKey = ConfigurationManager.AppSettings["AppLoginKey"].ToString(); var encryptionService = new Service.Utility.Encryption(); var service = new MemberService(); var responseData = service.RegisterMember(requestData, null); if (responseData != null) { postResponse = responseData; } return(Ok(postResponse)); }
/// <summary> /// 註冊帳號 /// </summary> /// <param name="data"></param> /// <returns></returns> public UserPostResponse RegisterMember(RegisterRequest data, FileViewModel photo) { var memberService = new MemberService(); var creatorInfo = memberService.TokenToMember(data.Token).Result; if (creatorInfo == null) { return(null); } var encryptionService = new Encryption(); var hostUrl = System.Configuration.ConfigurationManager.AppSettings["loginServer"].ToString(); if (data.OrgCode == null || data.OrgCode == string.Empty) { data.OrgCode = "amateur"; } var checkRegisted = GetMemberByAccountSchool(data.Account, data.OrgCode); //該帳號已經註冊過了 if (checkRegisted != null) { return(null); } var db = _uow.DbContext; var organizationInfo = db.Organizations.FirstOrDefault(t => t.OrgCode == data.OrgCode); try { var newMember = new Member() { Account = data.Account, Created = TimeData.Create(DateTime.UtcNow), Deleted = TimeData.Create(null), Updated = TimeData.Create(null), Name = data.Name, Email = data.Email, Enable = true, IsShowEmail = false, Visibility = true, IsOrgAdmin = Convert.ToInt32(data.RoleId) == 1 ? true : false, OrgId = organizationInfo.Id, PassWord = encryptionService.StringToSHA256(string.Format("{0}{1}", encryptionService.DecryptString(data.Pwd, appKey), data.Account)), Photo = string.Format("{0}{1}", hostUrl, "images/img-user.png"), RoleName = data.RoleId.ToString(), Verified = true, CreateUser = creatorInfo.Id, ExternalRid = 0 }; db.Members.Add(newMember); //為了取得memberId db.SaveChanges(); //上傳大頭照 if (photo != null && photo.ContentLength > 0) { var fileService = new FileService(); var maxImgWidth = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["maxImgWidth"].ToString()); var maxImgHeight = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["maxImgHeight"].ToString()); var drivePath = System.Configuration.ConfigurationManager.AppSettings["DrivePath"].ToString(); var fileInfo = fileService.UploadFile(newMember.Id, photo.FileName, photo.ContentType, photo.ContentLength, maxImgHeight, maxImgWidth); var path = Path.Combine(drivePath, fileInfo.FileGuid.ToString("N")); var stream = photo.InputStream; /*stream轉bytes*/ var br = new BinaryReader(stream); br.BaseStream.Seek(0, SeekOrigin.Begin); var bytesInStream = br.ReadBytes((int)br.BaseStream.Length); //實際檔案處理 fileService.FileProxy(photo.ContentLength, path, stream, bytesInStream); newMember.Photo = fileInfo.FileImageUrl; //最終儲存 db.SaveChanges(); } var responseData = new UserPostResponse() { CreateAccount = creatorInfo.Account, CreateTime = newMember.Created.Local.Value, Enable = newMember.Enable, ExternalRid = newMember.ExternalRid, IsShowMail = newMember.IsShowEmail, Photo = newMember.Photo, Verified = newMember.Verified }; return(responseData); } catch (Exception ex) { return(null); throw ex; } }