public string loadAllPendingRequisitions(String accessToken)
        {
            OAuthController oAuth = new OAuthController();
            User            user  = oAuth.actionGetUserByToken(accessToken);

            RequisitionController requisitionController = new RequisitionController();

            List <Requisition>        requisition_entities = requisitionController.actionGetPendingRequisitionsByUserID(user.id);
            List <RequisitionModel>   model = new List <RequisitionModel>();
            StationeryController      stationeryController = new StationeryController();
            List <StationaryRequests> stationeryRequests   = new List <StationaryRequests>();
            int counter = 1;

            foreach (Requisition r in requisition_entities)
            {
                StationaryRequests stationaryRequests = new StationaryRequests();
                stationaryRequests.Quantity       = r.quantity;
                stationaryRequests.SNo            = counter;
                stationaryRequests.StationaryName = stationeryController.actionGetStationeryByID(r.stationery).stationery_name;
                stationaryRequests.RequestedDate  = r.datetime_requested.ToString();
                stationeryRequests.Add(stationaryRequests);
                counter++;
            }

            return(JsonConvert.SerializeObject(stationeryRequests));
        }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string method = Request.QueryString["method"];

            if (method == "makeRequisition")
            {
                string accessToken    = Request.QueryString["accessToken"];
                int    qty            = Convert.ToInt32(Request.QueryString["qty"]);
                string stationeryName = Request.QueryString["stName"];

                OAuthController oAuth  = new OAuthController();
                User            user   = oAuth.actionGetUserByToken(accessToken);
                int             userId = user.id;



                makeRequisition(userId, stationeryName, qty);
            }
            else if (method == "loadAllStationaries")
            {
                loadAllStationaries();
            }
            else if (method == "getStationaryId")
            {
                System.Diagnostics.Debug.WriteLine("Inside getStationaryId");
                string stationeryName = Request.QueryString["stName"];
                string stName         = stationeryName.Replace('_', ' ');
                System.Diagnostics.Debug.WriteLine(" json:" + stName);
                getStationaryId(stName);
            }
            // Response.Write(loadAllStationaries());
        }
Esempio n. 3
0
        /// <summary>
        /// Returns the names of the lists to validate the SharePoint configuration
        /// </summary>
        /// <param name="accessHeader">The token to access SharePoint</param>
        /// <returns></returns>

        public async Task <List <ConfigurationInfo> > GetConfigurations(string accessToken)
        {
            List <ConfigurationInfo> configurations = new List <ConfigurationInfo>();

            StringBuilder requestUri = new StringBuilder()
                                       .Append(this.SiteUrl)
                                       .Append("/_api/web/lists?$select=Title,ListItemEntityTypeFullName&$filter=(Title eq '")
                                       .Append(this.ProjectsListName)
                                       .Append("') or (Title eq '")
                                       .Append(this.ReferencesListName)
                                       .Append("')");

            HttpResponseMessage response = await this.Get(requestUri.ToString(), accessToken);

            string responseString = await response.Content.ReadAsStringAsync();

            XElement root = XElement.Parse(responseString);

            foreach (XElement elem in root.Descendants(ExtensionMethods.m + "properties"))
            {
                string title = elem.Descendants(ExtensionMethods.d + "Title").First().Value;
                string type  = elem.Descendants(ExtensionMethods.d + "ListItemEntityTypeFullName").First().Value;

                //Send configuration info back to client so they know lists are ready
                configurations.Add(new ConfigurationInfo()
                {
                    Key = "List", Value = title
                });

                //Save the SharePoint type for use in creates and updates
                OAuthController.SaveInCache(title, type);
            }
            return(configurations);
        }
        public static void ValidateAntiForgery(this HttpRequestMessage request)
        {
            string cookieToken = string.Empty;
            string formToken   = string.Empty;

            IEnumerable <string> tokenHeaders;

            if (request.Headers.TryGetValues("RequestVerificationToken", out tokenHeaders))
            {
                string[] tokens = tokenHeaders.First().Split(':');
                if (tokens.Length == 2)
                {
                    cookieToken = tokens[0].Trim();
                    formToken   = tokens[1].Trim();
                    OAuthController.SaveInCache("cookieToken", cookieToken);
                    OAuthController.SaveInCache("formToken", formToken);
                }
            }
            else
            {
                cookieToken = OAuthController.GetFromCache("cookieToken").ToString();
                formToken   = OAuthController.GetFromCache("formToken").ToString();
            }

            AntiForgery.Validate(cookieToken, formToken);
        }
        public void Should_return_search_oauth_page()
        {
            var controller = new OAuthController();

            var result = (ViewResult)controller.Index();

            result.ViewName.Should().Be("Index");
        }
Esempio n. 6
0
        /// <summary>
        /// This is a helper method to provide Tempdata context to the test
        /// </summary>
        public static TempDataDictionary AuthorizeApplication()
        {
            OAuthController controller = new OAuthController();

            controller.TempData = new TempDataDictionary();
            var result = controller.AuthorizeApplication() as ViewResult;

            return((TempDataDictionary)result.TempData);
        }
        public OAuthController GetController(OAuthMocks mocks)
        {

            var controller = new OAuthController(mocks.WebSecurity.Object, mocks.OAuthWebSecurity.Object);
            controller.ControllerContext = new ControllerContext(mocks.Context.Object, new RouteData(), controller);
            controller.Url = new UrlHelper(new RequestContext(mocks.Context.Object, new RouteData()), mocks.Routes);

            return controller;
        }
        public void Should_begin_authorisation()
        {
            var controller = new OAuthController();

            var task = controller.BeginAsync();

            task.RunSynchronously();

            var result = task.Result;
        }
        public void TestIndexByPassingCorrectConfigurationValues()
        {
            // Arrange
            OAuthController controller = new OAuthController();

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNull(result);
        }
Esempio n. 10
0
        public void TestAuthorizationWithCorrectKeys()
        {
            // Arrange
            OAuthController controller = new OAuthController();

            // Act
            ViewResult result = controller.AuthorizeApplication() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreNotEqual("Error", result.ViewName);
        }
Esempio n. 11
0
 public override void OnException(HttpActionExecutedContext actionExecutedContext)
 {
     if (actionExecutedContext.Exception is UnauthorizedAccessException)
     {
         string resource         = ConfigurationManager.AppSettings["ida:Resource"];
         string redirectUri      = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority).ToString() + "/Home/SPA";
         string authorizationUrl = OAuthController.GetAuthorizationUrl(resource, new Uri(redirectUri));
         actionExecutedContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
         System.Net.Http.Headers.AuthenticationHeaderValue realm = new System.Net.Http.Headers.AuthenticationHeaderValue("OAuth", "realm=\"" + authorizationUrl + "\"");
         actionExecutedContext.Response.Headers.WwwAuthenticate.Add(realm);
     }
 }
        public void logout(HttpContext context)
        {
            User    user    = getUserByAccessToken(context.Request.Form["access_token"]);
            Message message = new Message(false);

            if (user != null)
            {
                message = new OAuthController().actionDeleteTokenByToken(context.Request.Form["access_token"]);
            }

            context.Response.Write(JsonConvert.SerializeObject(message));
        }
Esempio n. 13
0
        public void TestAuthorizationWithWrongorEmptyKeys()
        {
            // Arrange
            Mock <IConfigurationModel> configuration = TestHelper.GetMockedConfiguration();
            OAuthController            controller    = new OAuthController();

            controller.Configuration = configuration.Object;

            // Act
            ViewResult result = controller.AuthorizeApplication() as ViewResult;

            // Assert
            Assert.AreEqual("Error", result.ViewName);
        }
 public string approveRequisition(string accessToken, int reqId)
 {
     try
     {
         OAuthController oAuth = new OAuthController();
         User            user  = oAuth.actionGetUserByToken(accessToken);
         //get userId
         RequisitionController requisitionController = new RequisitionController();
         requisitionController.actionRequisitionStatusChangeToApproved(reqId, user.id);
         return("success");
     }
     catch (Exception e)
     {
         return("fail");
     }
 }//approveRequisition
Esempio n. 15
0
            public void SetFixture(MockRepository mocks)
            {
                mockRepository        = mocks;
                DefaultProvider       = mocks.DynamicMock <IOAuthProvider>();
                DefaultcontextBuilder = mocks.DynamicMock <IOAuthContextBuilder>();
                var httpRequest     = mocks.DynamicMock <HttpRequestBase>();
                var httpContextMock = mocks.DynamicMock <HttpContextBase>();

                mockOAuthContext = mocks.DynamicMock <IOAuthContext>();
                DefaultcontextBuilder.Stub(contextBuilder => contextBuilder.FromHttpRequest(httpRequest)).Return(mockOAuthContext);
                DefaultProvider.Stub(provider => provider.ExchangeRequestTokenForAccessToken(mockOAuthContext)).Return(requestToken);
                httpContextMock.Stub(httpcontext => httpcontext.Request).Return(httpRequest);
                var controller        = new OAuthController(ContextBuilder, Provider);
                var controllerContext = new ControllerContext(httpContextMock, new RouteData(), controller);

                controller.ControllerContext = controllerContext;
                mocks.ReplayAll();
                result = controller.AccessToken();
            }
        }//approveRequisition

        public string rejectRequisition(string accessToken, int reqId, string reason)
        {
            System.Diagnostics.Debug.WriteLine("inside rejectRequisition: accessToken" + accessToken + " ,reqId:" + reqId + "  ,reason:" + reason);
            try
            {
                OAuthController oAuth = new OAuthController();
                User            user  = oAuth.actionGetUserByToken(accessToken);
                //get userId
                RequisitionController requisitionController = new RequisitionController();
                //  requisitionController.actionRequisitionStatusChangeToRejected(reqId);
                requisitionController.actionRequisitionStatusChangeToRejectedWithRemarkAndRejectedBy(reqId, reason, user.id);
                return("success");
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception occured in rejectRequisition.." + e.Message);
                return("fail");
            }
        }//rejectRequisition
        public void get_access_token(HttpContext context)
        {
            String username = context.Request.Form["username"];
            String password = context.Request.Form["password"];

            OAuthController oauthController = new OAuthController();
            OAuthViewModel  oauth           = null;

            User user = new AuthenticationController().actionCheckLoginData(username, password);

            if (user != null)
            {
                if (user.user_type == 4)
                {
                    oauth = new OAuthViewModel(oauthController.actionGetNewTokenByUsernameAndPassword(username, password));
                }
            }

            context.Response.Write(JsonConvert.SerializeObject(oauth));
        }
        public string approveAllRequisitions(string accessToken, List <RequisitionId> requisitionsIds)
        {
            OAuthController       oAuth = new OAuthController();
            User                  user  = oAuth.actionGetUserByToken(accessToken);
            RequisitionController requisitionController = new RequisitionController();

            try
            {
                for (int i = 0; i < requisitionsIds.Count(); i++)
                {
                    RequisitionId requisitionId = requisitionsIds[i];
                    requisitionController.actionRequisitionStatusChangeToApproved(requisitionId.reqId, user.id);
                }
                return("success");
            }
            catch (Exception e)
            {
                return("fail");
            }
        }
        public string showAllApprovedRequisitions(string accessToken)
        {
            OAuthController        oAuth = new OAuthController();
            User                   user  = oAuth.actionGetUserByToken(accessToken);
            RequisitionController  requisitionController     = new RequisitionController();
            List <RequisitionView> requisitionDepartmentWise = requisitionController.actionGetApprovedRequisitionViewsByDepartmentID(Convert.ToInt32(user.department));
            List <Requisition>     requisitions = new List <Requisition>();

            foreach (RequisitionView rView in requisitionDepartmentWise)
            {
                Requisition requisition = new Requisition();
                requisition.EmployeeName    = rView.firstname + " " + rView.lastname;
                requisition.Quantity        = rView.quantity;
                requisition.RequisitionDate = rView.datetime_requested;
                requisition.ReqDate         = rView.datetime_requested.ToString("MMMM dd, yyyy");
                requisition.StationaryName  = rView.stationery_name;
                requisitions.Add(requisition);
            }
            return(JsonConvert.SerializeObject(requisitions));
        }//showAllApprovedRequisitions
        }//rejectRequisition

        public void get_access_token(HttpContext context)
        {
            System.Diagnostics.Debug.WriteLine("########### inside get_access_token######");
            String          username        = context.Request.Form["username"];
            String          password        = context.Request.Form["password"];
            OAuthController oauthController = new OAuthController();
            OAuthViewModel  oauth           = new OAuthViewModel();

            oauth.access_token = "";
            User user = new AuthenticationController().actionCheckLoginData(username, password);

            if (user != null)
            {
                System.Diagnostics.Debug.WriteLine("###########User type:" + user.user_type);
                if ((user.user_type == 2) || (user.user_type == 3))
                {
                    oauth.access_token = oauthController.actionGetNewTokenByUsernameAndPassword(username, password);
                }
            }

            context.Response.Write(JsonConvert.SerializeObject(oauth));
        }
 public XElement ToXElement()
 {
     return(new XElement(ExtensionMethods.atom + "entry",
                         new XAttribute(XNamespace.Xmlns + "d", ExtensionMethods.d),
                         new XAttribute(XNamespace.Xmlns + "m", ExtensionMethods.m),
                         new XElement(ExtensionMethods.atom + "category", new XAttribute("term", OAuthController.GetFromCache(this.ProjectsListName)), new XAttribute("scheme", "http://schemas.microsoft.com/ado/2007/08/dataservices/scheme")),
                         new XElement(ExtensionMethods.atom + "content", new XAttribute("type", "application/xml"),
                                      new XElement(ExtensionMethods.m + "properties",
                                                   new XElement(ExtensionMethods.d + "Title", this.Title)))));
 }
Esempio n. 22
0
 /// <summary>
 /// Retrieves an access token from the OAuth Controller
 /// </summary>
 /// <returns>Access Token</returns>
 private string GetAccessToken()
 {
     return(OAuthController.GetAccessTokenFromCacheOrRefreshToken(this.Tenant, this.Resource));
 }
Esempio n. 23
0
        public async Task <ActionResult> Index()
        {
            //OAuth Controller
            string resourceId       = ConfigurationManager.AppSettings["ida:ResourceId"];
            string accessToken      = null;
            string redirectUri      = null;
            string authorizationUrl = null;
            string tenantId         = (string)OAuthController.GetFromCache("TenantId");

            if (tenantId != null)
            {
                accessToken = OAuthController.GetAccessTokenFromCacheOrRefreshToken(tenantId, resourceId);
            }

            if (accessToken == null)
            {
                redirectUri      = this.Request.Url.GetLeftPart(UriPartial.Authority).ToString() + "/Home";
                authorizationUrl = OAuthController.GetAuthorizationUrl(resourceId, Request);
                OAuthController.SaveInCache("RedirectTo", new Uri(redirectUri));
                return(new RedirectResult(authorizationUrl));
            }

            //Search Query Uri
            StringBuilder requestUri = new StringBuilder(resourceId)
                                       .Append("/O3652-7/_api/web/lists/getbytitle('Contacts')/items");

            //Execute Query
            HttpClient         client  = new HttpClient();
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUri.ToString());

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
            HttpResponseMessage response = await client.SendAsync(request);

            string json = await response.Content.ReadAsStringAsync();

            //Parse JSON
            JObject jsonObject = JObject.Parse(json);

            List <Person> people = new List <Person>();

            foreach (var p in jsonObject["value"])
            {
                string lastName  = p["Title"].Value <string>();
                string firstName = p["FirstName"].Value <string>();
                string jobTitle  = p["JobTitle"].Value <string>();
                string workEmail = p["EMail"].Value <string>();
                string workPhone = p["WorkPhone"].Value <string>();
                if (lastName != null)
                {
                    people.Add(new Person()
                    {
                        LastName  = lastName,
                        FirstName = firstName,
                        JobTitle  = jobTitle,
                        WorkEmail = workEmail,
                        WorkPhone = workPhone
                    });
                }
            }

            ViewBag.People = people;
            return(View());
        }
Esempio n. 24
0
 public XElement ToXElement()
 {
     return(new XElement(ExtensionMethods.atom + "entry",
                         new XAttribute(XNamespace.Xmlns + "d", ExtensionMethods.d),
                         new XAttribute(XNamespace.Xmlns + "m", ExtensionMethods.m),
                         new XElement(ExtensionMethods.atom + "category", new XAttribute("term", OAuthController.GetFromCache(this.ReferencesListName)), new XAttribute("scheme", "http://schemas.microsoft.com/ado/2007/08/dataservices/scheme")),
                         new XElement(ExtensionMethods.atom + "content", new XAttribute("type", "application/xml"),
                                      new XElement(ExtensionMethods.m + "properties",
                                                   new XElement(ExtensionMethods.d + "URL", new XAttribute(ExtensionMethods.m + "type", "SP.FieldUrlValue"),
                                                                new XElement(ExtensionMethods.d + "Description", this.Title),
                                                                new XElement(ExtensionMethods.d + "Url", this.Url)),
                                                   new XElement(ExtensionMethods.d + "Comments", this.Notes),
                                                   new XElement(ExtensionMethods.d + "Project", this.Project)))));
 }
        /// <summary>
        /// Utilizes the OAuthController to get the access token for SharePoint
        /// in the name of the current user for the given tenancy.
        /// </summary>
        /// <returns>string containing the access token</returns>
        public string GetAccessToken()
        {
            string accessToken = OAuthController.GetAccessTokenFromCacheOrRefreshToken(this.Tenant, this.Resource);

            return(accessToken);
        }
        public string showAllPendingRequisition(string accessToken)
        {
            RequisitionController requisitionController = new RequisitionController();
            JavaScriptSerializer  js    = new JavaScriptSerializer();
            OAuthController       oAuth = new OAuthController();
            User user = oAuth.actionGetUserByToken(accessToken);
            // int userId = user.id;
            List <RequisitionView> requisitionDepartmentWise = requisitionController.actionGetPendingRequisitionViewsByDepartmentID(Convert.ToInt32(user.department));
            List <UserRequisition> userRequisitionsList      = new List <UserRequisition>();

            foreach (RequisitionView r in requisitionDepartmentWise)
            {
                if (userRequisitionsList.Count == 0)
                {
                    UserRequisition userRequisition = new UserRequisition();
                    userRequisition.EmployeeName = r.firstname + " " + r.lastname;
                    userRequisition.UserId       = r.user_obj;
                    Requisition requisition = new Requisition();
                    requisition.ReqId          = r.requisition_id;
                    requisition.Quantity       = r.quantity;
                    requisition.StationaryName = r.stationery_name;
                    userRequisition.UserRequisitions.Add(requisition);
                    userRequisitionsList.Add(userRequisition);
                }
                else
                {
                    bool found = false;
                    //check if requisition from the same user is pending, if yes group the requisition based on that user id
                    foreach (UserRequisition uR in userRequisitionsList)
                    {
                        if (r.user_obj == uR.UserId)
                        {
                            found = true;
                            Requisition requisition = new Requisition();
                            requisition.ReqId           = r.requisition_id;
                            requisition.Quantity        = r.quantity;
                            requisition.StationaryName  = r.stationery_name;
                            requisition.RequisitionDate = r.datetime_requested;
                            uR.UserRequisitions.Add(requisition);
                            break;
                        }
                    }//foreach
                    //else simply add the userrequisition to the list, grouping not required
                    if (!found)
                    {
                        UserRequisition userRequisition = new UserRequisition();
                        userRequisition.EmployeeName = r.firstname + " " + r.lastname;
                        userRequisition.UserId       = r.user_obj;
                        Requisition requisition = new Requisition();
                        requisition.ReqId          = r.requisition_id;
                        requisition.Quantity       = r.quantity;
                        requisition.StationaryName = r.stationery_name;
                        userRequisition.UserRequisitions.Add(requisition);
                        userRequisitionsList.Add(userRequisition);
                    } //if
                }     //else
            }         //forEach

            System.Diagnostics.Debug.WriteLine("json serialized:" + JsonConvert.SerializeObject(userRequisitionsList));
            return(JsonConvert.SerializeObject(userRequisitionsList));
            /// return js.Serialize(userRequisitionsList);
        }//showAllPendingRequisition
Esempio n. 27
0
        static async Task Main(string [] args)
        {
            Resolver.Register <IAuthStorage, AuthStorage> ();
            OAuthApi.ShowAuthenticator = async(auth) => {
                var authenticator = new OAuthController(auth);
                await authenticator.GetCredentials(auth.Title);
            };


            Console.WriteLine("Welcome to the Stream Helper!");
            //Console.WriteLine ($"Args: {String.Join (" ,", args)}");


            string message      = null;
            bool   show_help    = false;
            bool   shouldLogOut = false;
            var    p            = new OptionSet()
            {
                { "m|message=", "The Message to be tweeted/Twitched",
                  v => message = v },
                { "p|profile=", "the current profile",
                  (v) => Settings.Profile = v },
                { "f|file=", "The file path we will update.", v => Settings.TextFilePath = v },
                { "logout", "log out of all social accounts", v => shouldLogOut = v != null },
                { "h|help", "show this message and exit",
                  v => show_help = v != null },
            };

            List <string> extra;

            try {
                extra = p.Parse(args);
            } catch (Exception ex) {
                Debug.WriteLine(ex);
                ShowHelp(p);
                return;
            }

            if (show_help || (args?.Length ?? 0) == 0 && !Debugger.IsAttached)
            {
                ShowHelp(p);
                return;
            }

            if (shouldLogOut)
            {
                GetTwitchApi().Logout();
                GetTwitterApi().Logout();
            }

            if (string.IsNullOrWhiteSpace(message))
            {
                if (!shouldLogOut)
                {
                    ShowHelp(p);
                }
                return;
            }

            await Task.WhenAll(UpdateTopic (message), SetMarkerInTwitch (message), TweetUpdate (message));

            Console.WriteLine("Done!");
        }