Beispiel #1
0
        // GET: Register
        public ActionResult Register()
        {
            AmazonLambdaClient client = new AmazonLambdaClient("", "", RegionEndpoint.USEast1);


            InvokeRequest ir = new InvokeRequest
            {
                FunctionName   = "RandomNumber",
                InvocationType = InvocationType.RequestResponse
            };

            InvokeResponse response = client.Invoke(ir);

            var        sr     = new StreamReader(response.Payload);
            JsonReader reader = new JsonTextReader(sr);

            var serilizer = new JsonSerializer();
            var op        = serilizer.Deserialize(reader);

            ViewData["number"] = op;
            return(View());
        }
        // Delete post using Lambda function DeletePost
        private void delete_Click(object sender, RoutedEventArgs e)
        {
            // Clear any old message/error text
            this.message.Text = "";
            error.SetValue(VisibilityProperty, Visibility.Visible);
            errorFlag.SetValue(VisibilityProperty, Visibility.Hidden);
            error.Text = "";

            // DeletePost takes two args: access token and timestamp
            // access token is set when user is logged in;
            // timestamp and selected_user are set when user selects a post

            if (selected_name != signedin_user)
            {
                error.Text = "Not your post!";

                return;
            }

            DeletePost post = new DeletePost()
            {
                AccessToken = accessToken, TimestampOfPost = timestamp
            };

            string payload = GetJson(typeof(DeletePost), post);

            using (AmazonLambdaClient iClient = new AmazonLambdaClient())
            {
                InvokeRequest iRequest = new InvokeRequest()
                {
                    FunctionName = "DeletePost",
                    Payload      = payload
                };

                var response = iClient.Invoke(iRequest);

                if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
                {
                    if (null != response && response.StatusCode == 200)
                    {
                        var    sr     = new StreamReader(response.Payload);
                        string result = sr.ReadToEnd();

                        if (result.Contains("success"))
                        {
                            error.Text = "Post deleted";

                            // Show new list of posts
                            PrintPosts();

                            // Clear timestamp and selected_user so we don't accidently cache them
                            timestamp     = "";
                            selected_name = "";

                            return;
                        }
                        else
                        {
                            if (result.Contains("failure"))
                            {
                                ProcessLogInFail(result);
                            }
                            else
                            {
                                error.Text = "Post could not be deleted";
                            }
                        }
                    }
                }
            }

            // Clear timestamp and selected_user so we don't accidently cache them
            timestamp     = "";
            selected_name = "";
        }
        // Finish re-setting password using Lambda function FinishChangingForgottenCognitoUserPassword
        private void updatePwd_Click(object sender, RoutedEventArgs e)
        {
            using (AmazonLambdaClient iClient = new AmazonLambdaClient())
            {
                FinishForgottenPassword finish = new FinishForgottenPassword()
                {
                    UserName = userName.Text, ConfirmationCode = newConfirmCode.Text, NewPassword = newPwd.Text
                };

                string payload = GetJson(typeof(FinishForgottenPassword), finish);

                InvokeRequest iRequest = new InvokeRequest()
                {
                    FunctionName = "FinishChangingForgottenCognitoUserPassword",
                    Payload      = payload
                };

                var response = iClient.Invoke(iRequest);

                if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
                {
                    if (null != response && response.StatusCode == 200)
                    {
                        var    sr     = new StreamReader(response.Payload);
                        string result = sr.ReadToEnd();

                        if (result.Contains("success"))
                        {
                            error.Text = "New password confirmed";
                            error.SetValue(VisibilityProperty, Visibility.Visible);
                            errorFlag.SetValue(VisibilityProperty, Visibility.Hidden);
                            MakeConfirmInvisible();
                            initiateNewUser.SetValue(VisibilityProperty, Visibility.Hidden);
                            MakePostVisible();
                            newPwdLabel.SetValue(VisibilityProperty, Visibility.Hidden);
                            newPwd.SetValue(VisibilityProperty, Visibility.Hidden);
                            newPwdLabel.SetValue(VisibilityProperty, Visibility.Hidden);
                            newConfirmCode.SetValue(VisibilityProperty, Visibility.Hidden);
                            newConfirmLabel.SetValue(VisibilityProperty, Visibility.Hidden);
                            updatePwd.SetValue(VisibilityProperty, Visibility.Hidden);
                            messageLabel.SetValue(VisibilityProperty, Visibility.Hidden);
                            message.SetValue(VisibilityProperty, Visibility.Hidden);
                            postMessage.SetValue(VisibilityProperty, Visibility.Hidden);
                            delete.SetValue(VisibilityProperty, Visibility.Hidden);
                            addUser.SetValue(VisibilityProperty, Visibility.Hidden);
                            forgotPwd.SetValue(VisibilityProperty, Visibility.Hidden);
                            logIn.SetValue(VisibilityProperty, Visibility.Visible);
                            logIn.Focus();
                            pin.Password = newPwd.Text;
                            initiateNewUser.SetValue(VisibilityProperty, Visibility.Visible);
                            return;
                        }

                        if (result.Contains("failure"))
                        {
                            ProcessLogInFail(result);
                        }
                        else
                        {
                            error.Text = "Update Password failed";
                            error.SetValue(VisibilityProperty, Visibility.Visible);
                            errorFlag.SetValue(VisibilityProperty, Visibility.Visible);
                        }
                    }
                    else
                    {
                        error.Text = "Update Password failed";
                        error.SetValue(VisibilityProperty, Visibility.Visible);
                        errorFlag.SetValue(VisibilityProperty, Visibility.Visible);
                    }
                }
            }
        }
        // Sign in with Lambda function SignInCognitoUser
        private void logIn_Click(object sender, RoutedEventArgs e)
        {
            {
                StartCognitoLogin start = new StartCognitoLogin()
                {
                    UserName = userName.Text, Password = pin.Password
                };
                string payload = GetJson(typeof(StartCognitoLogin), start);
                using (AmazonLambdaClient iClient = new AmazonLambdaClient())
                {
                    error.SetValue(VisibilityProperty, Visibility.Hidden);
                    errorFlag.SetValue(VisibilityProperty, Visibility.Hidden);
                    InvokeRequest iRequest = new InvokeRequest()
                    {
                        FunctionName = "SignInCognitoUser",
                        Payload      = payload
                    };
                    var response = iClient.Invoke(iRequest);
                    if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
                    {
                        if (null != response && response.StatusCode == 200)
                        {
                            var    sr     = new StreamReader(response.Payload);
                            string result = sr.ReadToEnd();
                            if (result.Contains("failure"))
                            {
                                ProcessLogInFail(result);
                                return;
                            }
                            result = result.Replace("Content-Type", "contentType");
                            OutPut       deserializedUser = new OutPut();
                            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(result));
                            DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedUser.GetType());
                            deserializedUser = ser.ReadObject(ms) as OutPut;
                            string status           = deserializedUser.statusCode;
                            string contentType      = deserializedUser.headers.contentType;
                            Data   data             = deserializedUser.body.data;
                            AuthenticationResult aR = data.AuthenticationResult;
                            accessToken  = aR.AccessToken;
                            refreshToken = aR.RefreshToken;
                            ms.Close();
                            //return deserializedUser;
                            if (result.Contains("success"))
                            {
                                MakePostVisible();
                                MakeConfirmInvisible();
                                postMessage.Focus();

                                // Cache user name
                                signedin_user = start.UserName;

                                return;
                            }

                            else
                            {
                                error.Text = "Add User failed";
                                error.SetValue(VisibilityProperty, Visibility.Visible);
                                errorFlag.SetValue(VisibilityProperty, Visibility.Visible);
                            }
                        }
                    }
                }
            }
        }