/// <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));
            }
        }
Beispiel #2
0
 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;
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        /// <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;
            }
        }