public void SetUp()
        {
            shopId = Guid.NewGuid();
            var serviceApiClient = new ServiceApiClient(new ServiceApiClientSettings(new[] { new Uri("http://localhost:16001"), }, TimeSpan.FromSeconds(15), null));

            shopLocalTimeApiClient = serviceApiClient.ShopTimeZone;
        }
Esempio n. 2
0
        public async Task <IActionResult> UpdateChangeFailureRate(string ProjectIdSelected, int CompletionPercentSelected, int NumberOfDaysSelected)
        {
            ServiceApiClient serviceApiClient = new ServiceApiClient(Configuration);

            //Get a list of settings
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Create project items from each setting and add it to a project list.
            DevOpsPlatform targetDevOpsPlatform   = DevOpsPlatform.Unknown;
            string         organization_owner     = "";
            string         project_repo           = "";
            string         repository             = "";
            string         buildName_workflowName = "";

            foreach (AzureDevOpsSettings item in azureDevOpsSettings)
            {
                if (item.RowKey == ProjectIdSelected)
                {
                    targetDevOpsPlatform   = DevOpsPlatform.AzureDevOps;
                    organization_owner     = item.Organization;
                    project_repo           = item.Project;
                    repository             = item.Repository;
                    buildName_workflowName = item.BuildName;
                }
            }
            foreach (GitHubSettings item in githubSettings)
            {
                if (item.RowKey == ProjectIdSelected)
                {
                    targetDevOpsPlatform   = DevOpsPlatform.GitHub;
                    organization_owner     = item.Owner;
                    project_repo           = item.Repo;
                    repository             = "";
                    buildName_workflowName = item.WorkflowName;
                }
            }

            //Update the change failure rate with the % distribution
            if (organization_owner != "" && project_repo != "" && buildName_workflowName != "")
            {
                await serviceApiClient.UpdateChangeFailureRate(organization_owner, project_repo, buildName_workflowName, CompletionPercentSelected, NumberOfDaysSelected);
            }

            //Redirect to the correct project page to see the changes
            if (targetDevOpsPlatform == DevOpsPlatform.AzureDevOps)
            {
                return(RedirectToAction("Project", "Home", new { rowKey = organization_owner + "_" + project_repo + "_" + repository + "_" + buildName_workflowName }));
            }
            else if (targetDevOpsPlatform == DevOpsPlatform.GitHub)
            {
                return(RedirectToAction("Project", "Home", new { rowKey = organization_owner + "_" + project_repo + "_" + buildName_workflowName }));
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
        public void SetUp()
        {
            shopId        = Guid.NewGuid();
            defaultRecord = CreateRecord(new TimePeriod(TimeSpan.FromHours(3), TimeSpan.FromHours(5)));
            var serviceApiClient = new ServiceApiClient(new ServiceApiClientSettings(new[] { new Uri("http://localhost:16001"), }, TimeSpan.FromSeconds(15), null));

            workersSchedulesApiClient = serviceApiClient.WorkersSchedules;
        }
        public ServiceManagement(HairSalon hairSalon)
        {
            InitializeComponent();

            serviceApi = new ServiceApiClient();

            this.hairSalon = hairSalon;
        }
Esempio n. 5
0
        public AddNewService()
        {
            InitializeComponent();

            ls = new LoadingScreen();

            serviceApi = new ServiceApiClient();
        }
Esempio n. 6
0
        public void ProcessRequest(HttpContext context)
        {
            //正式用
            userIP = GetWebClientIp(context);
            context.Response.ContentType = "text/plain";
            string result = string.Empty;

            if (!string.IsNullOrEmpty(context.Request["url"]) && !string.IsNullOrEmpty(context.Request["key"]) && context.Request["key"].Length == 32)
            {
                string userKey = context.Request["key"]; //key ,md5值
                wxCheckApiKey = ConfigTool.ReadVerifyConfig("wxCheckApiKey", "WeiXin");
                if (userKey.Trim() == wxCheckApiKey)
                {
                    context.Response.Write("参数错误,进qq群交流:41977413!");
                }
                else
                {
                    //需要检测的网址
                    string urlCheck = context.Request["url"]; //检测的值
                    urlCheck = urlCheck.Replace("https://", "").Replace("http://", "");
                    string json2 = "{\"Mode\":\"AuthKey\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + userKey + "\'}\"}";

                    ServiceApiClient SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi2");
                    SpVoiceObj2.Open();
                    result = SpVoiceObj2.Api(json2);
                    SpVoiceObj2.Close();
                    JsonObject.Results aup = JsonConvert.DeserializeObject <JsonObject.Results>(result);

                    if (aup.State == true)
                    {
                        string           json       = "{\"Mode\":\"WXCheckUrl\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + userKey + "\'}\"}";
                        ServiceApiClient SpVoiceObj = new ServiceApiClient("NetTcpBinding_IServiceApi");
                        SpVoiceObj.Open();
                        result = SpVoiceObj.Api(json);
                        SpVoiceObj.Close();
                    }

                    Logger.WriteLoggger(userIP + ":" + userKey + ":" + result);

                    if (!string.IsNullOrEmpty(context.Request.QueryString["callback"]))
                    {
                        string callBack = context.Request.QueryString["callback"].ToString(); //回调
                        result = callBack + "(" + result + ")";
                    }

                    context.Response.Write(result);
                }
            }
            else
            {
                context.Response.Write("参数错误,进qq群交流:41977413!");
            }

            context.Response.End();
        }
Esempio n. 7
0
        public EditService(Service service)
        {
            InitializeComponent();

            ls = new LoadingScreen();

            serviceApi = new ServiceApiClient();

            this.service = service;

            SetServiceValues();
        }
Esempio n. 8
0
        public async Task <IActionResult> Index()
        {
            //Get a list of settings
            ServiceApiClient           serviceApiClient    = new ServiceApiClient(Configuration);
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Return the resultant list
            (List <AzureDevOpsSettings>, List <GitHubSettings>)result = (azureDevOpsSettings, githubSettings);
            return(View(result));
        }
Esempio n. 9
0
        public ServicePanel(Service service, HairSalon hairSalon)
        {
            InitializeComponent();

            ls = new LoadingScreen();

            serviceApi           = new ServiceApiClient();
            hairSalonServicesApi = new HairSalonServicesApiClient();

            this.service   = service;
            this.hairSalon = hairSalon;

            SetServiceValues();
        }
Esempio n. 10
0
        public async Task <IActionResult> DeploymentFrequency()
        {
            //TODO: Move variables to a configuration file or database
            int    maxNumberOfItems = 20;
            int    numberOfDays     = 60;
            bool   getSampleData    = false;
            bool   useCache         = true;
            string patToken         = Configuration["AppSettings:AzureDevOpsPatToken"];
            string clientId         = Configuration["AppSettings:GitHubClientId"];
            string clientSecret     = Configuration["AppSettings:GitHubClientSecret"];

            ServiceApiClient serviceApiClient     = new ServiceApiClient(Configuration);
            List <DeploymentFrequencyModel> items = new List <DeploymentFrequencyModel>();

            //Get a list of settings
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Create deployment frequency models from each setting object
            foreach (AzureDevOpsSettings item in azureDevOpsSettings)
            {
                DeploymentFrequencyModel newDeploymentFrequencyModel = await serviceApiClient.GetAzureDevOpsDeploymentFrequency(getSampleData, patToken,
                                                                                                                                item.Organization, item.Project, item.Branch, item.BuildName, item.BuildId,
                                                                                                                                numberOfDays, maxNumberOfItems, useCache);

                newDeploymentFrequencyModel.ItemOrder = item.ItemOrder;
                if (newDeploymentFrequencyModel != null)
                {
                    items.Add(newDeploymentFrequencyModel);
                }
            }
            foreach (GitHubSettings item in githubSettings)
            {
                DeploymentFrequencyModel newDeploymentFrequencyModel = await serviceApiClient.GetGitHubDeploymentFrequency(getSampleData, clientId, clientSecret,
                                                                                                                           item.Owner, item.Repo, item.Branch, item.WorkflowName, item.WorkflowId,
                                                                                                                           numberOfDays, maxNumberOfItems, useCache);

                newDeploymentFrequencyModel.ItemOrder = item.ItemOrder;
                if (newDeploymentFrequencyModel != null)
                {
                    items.Add(newDeploymentFrequencyModel);
                }
            }

            //sort the list
            items = items.OrderBy(o => o.ItemOrder).ToList();
            return(View(items));
        }
Esempio n. 11
0
        public async Task <IActionResult> LeadTimeForChanges()
        {
            int              maxNumberOfItems    = 20;   //20 is the optimium max that looks good with the current UI
            int              numberOfDays        = 30;   //TODO: Move number of days variable to a drop down list on the current UI
            bool             getSampleData       = false;
            bool             useCache            = true; //Use Azure storage instead of hitting the API. Quicker, but data may be up to 4 hours out of date
            string           patToken            = Configuration["AppSettings:AzureDevOpsPatToken"];
            string           clientId            = Configuration["AppSettings:GitHubClientId"];
            string           clientSecret        = Configuration["AppSettings:GitHubClientSecret"];
            ServiceApiClient serviceApiClient    = new ServiceApiClient(Configuration);
            List <LeadTimeForChangesModel> items = new List <LeadTimeForChangesModel>();

            //Get a list of settings
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Create lead time for changes models from each Azure DevOps setting object
            foreach (AzureDevOpsSettings item in azureDevOpsSettings)
            {
                LeadTimeForChangesModel newLeadTimeForChangesModel = await serviceApiClient.GetAzureDevOpsLeadTimeForChanges(getSampleData, patToken,
                                                                                                                             item.Organization, item.Project, item.Repository, item.Branch, item.BuildName, item.BuildId,
                                                                                                                             numberOfDays, maxNumberOfItems, useCache);

                newLeadTimeForChangesModel.ItemOrder = item.ItemOrder;
                if (newLeadTimeForChangesModel != null)
                {
                    items.Add(newLeadTimeForChangesModel);
                }
            }
            //Create lead time for changes models from each GitHub setting object
            foreach (GitHubSettings item in githubSettings)
            {
                LeadTimeForChangesModel newLeadTimeForChangesModel = await serviceApiClient.GetGitHubLeadTimeForChanges(getSampleData, clientId, clientSecret,
                                                                                                                        item.Owner, item.Repo, item.Branch, item.WorkflowName, item.WorkflowId,
                                                                                                                        numberOfDays, maxNumberOfItems, useCache);

                newLeadTimeForChangesModel.ItemOrder = item.ItemOrder;
                if (newLeadTimeForChangesModel != null)
                {
                    items.Add(newLeadTimeForChangesModel);
                }
            }

            //sort the final list
            items = items.OrderBy(o => o.ItemOrder).ToList();
            return(View(items));
        }
Esempio n. 12
0
        public async Task <IActionResult> ChangeFailureRate()
        {
            int              maxNumberOfItems   = 20; //20 is the optimium max that looks good with the current UI
            int              numberOfDays       = 30; //TODO: Move number of days variable to a drop down list on the current UI
            bool             getSampleData      = false;
            ServiceApiClient serviceApiClient   = new ServiceApiClient(Configuration);
            List <ChangeFailureRateModel> items = new List <ChangeFailureRateModel>();

            //Get a list of settings
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Create change failure rate models from each Azure DevOps settings object
            foreach (AzureDevOpsSettings item in azureDevOpsSettings)
            {
                ChangeFailureRateModel changeFailureRateModel = await serviceApiClient.GetChangeFailureRate(getSampleData,
                                                                                                            DevOpsPlatform.AzureDevOps, item.Organization, item.Project, item.Branch, item.BuildName,
                                                                                                            numberOfDays, maxNumberOfItems);

                //changeFailureRateModel.ItemOrder = item.ItemOrder;
                if (changeFailureRateModel != null)
                {
                    items.Add(changeFailureRateModel);
                }
            }
            //Create change failure rate models from each GitHub settings object
            foreach (GitHubSettings item in githubSettings)
            {
                ChangeFailureRateModel changeFailureRateModel = await serviceApiClient.GetChangeFailureRate(getSampleData,
                                                                                                            DevOpsPlatform.GitHub, item.Owner, item.Repo, item.Branch, item.WorkflowName,
                                                                                                            numberOfDays, maxNumberOfItems);

                //changeFailureRateModel.ItemOrder = item.ItemOrder;
                if (changeFailureRateModel != null)
                {
                    items.Add(changeFailureRateModel);
                }
            }

            //sort the final list
            //items = items.OrderBy(o => o.ItemOrder).ToList();
            return(View(items));
        }
Esempio n. 13
0
        public void ProcessRequest(HttpContext context)
        {
            //正式用
            userIP = GetWebClientIp();
            context.Response.ContentType = "text/plain";

            if (!string.IsNullOrEmpty(context.Request["url"]) && !string.IsNullOrEmpty(context.Request["key"]) && context.Request["key"].Length == 32)
            {
                string userKey = context.Request["key"]; //key ,md5值

                if (userKey.Trim() == "341e0b5df120394ec99e517b67774399")
                {
                    context.Response.Write("参数错误,进qq群交流:41977413!");
                }
                else
                {
                    //需要检测的网址
                    string urlCheck = context.Request["url"]; //检测的值
                    urlCheck = urlCheck.Replace("https://", "").Replace("http://", "");
                    string json = "{\"Mode\":\"WXCheckUrl\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + userKey + "\'}\"}";

                    ServiceApiClient SpVoiceObj = new ServiceApiClient("NetTcpBinding_IServiceApi");
                    SpVoiceObj.Open();
                    string result = SpVoiceObj.Api(json);
                    SpVoiceObj.Close();
                    Logger.WriteLoggger(userIP + ":" + userKey + ":" + result);

                    if (!string.IsNullOrEmpty(context.Request.QueryString["callback"]))
                    {
                        string callBack = context.Request.QueryString["callback"].ToString(); //回调
                        result = callBack + "(" + result + ")";
                    }

                    context.Response.Write(result);
                }
            }
            else
            {
                context.Response.Write("参数错误,进qq群交流:41977413!");
            }

            context.Response.End();
        }
Esempio n. 14
0
        public async Task <IActionResult> ChangeFailureRate()
        {
            int              maxNumberOfItems   = 20;
            int              numberOfDays       = 60;
            bool             getSampleData      = false;
            ServiceApiClient serviceApiClient   = new ServiceApiClient(Configuration);
            List <ChangeFailureRateModel> items = new List <ChangeFailureRateModel>();

            //Get a list of settings
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Create MTTR models from each setting object
            foreach (AzureDevOpsSettings item in azureDevOpsSettings)
            {
                ChangeFailureRateModel changeFailureRateModel = await serviceApiClient.GetChangeFailureRate(getSampleData,
                                                                                                            DevOpsPlatform.AzureDevOps, item.Organization, item.Project, item.Branch, item.BuildName,
                                                                                                            numberOfDays, maxNumberOfItems);

                //changeFailureRateModel.ItemOrder = item.ItemOrder;
                if (changeFailureRateModel != null)
                {
                    items.Add(changeFailureRateModel);
                }
            }
            foreach (GitHubSettings item in githubSettings)
            {
                ChangeFailureRateModel changeFailureRateModel = await serviceApiClient.GetChangeFailureRate(getSampleData,
                                                                                                            DevOpsPlatform.GitHub, item.Owner, item.Repo, item.Branch, item.WorkflowName,
                                                                                                            numberOfDays, maxNumberOfItems);

                //changeFailureRateModel.ItemOrder = item.ItemOrder;
                if (changeFailureRateModel != null)
                {
                    items.Add(changeFailureRateModel);
                }
            }

            //sort the list
            //items = items.OrderBy(o => o.ItemOrder).ToList();
            return(View(items));
        }
Esempio n. 15
0
        public async Task <IActionResult> MeanTimeToRestore()
        {
            int              maxNumberOfItems   = 20; //20 is the optimium max that looks good with the current UI
            int              numberOfDays       = 30; //TODO: Move number of days variable to a drop down list on the current UI
            bool             getSampleData      = false;
            ServiceApiClient serviceApiClient   = new ServiceApiClient(Configuration);
            List <MeanTimeToRestoreModel> items = new List <MeanTimeToRestoreModel>();

            //Get a list of settings
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Create MTTR models from each Azure DevOps settings object
            foreach (AzureDevOpsSettings item in azureDevOpsSettings)
            {
                MeanTimeToRestoreModel newMeanTimeToRestoreModel = await serviceApiClient.GetAzureMeanTimeToRestore(getSampleData,
                                                                                                                    DevOpsPlatform.AzureDevOps, item.ProductionResourceGroup, numberOfDays, maxNumberOfItems);

                newMeanTimeToRestoreModel.ItemOrder = item.ItemOrder;
                if (newMeanTimeToRestoreModel != null)
                {
                    items.Add(newMeanTimeToRestoreModel);
                }
            }
            //Create MTTR models from each GitHub settings object
            foreach (GitHubSettings item in githubSettings)
            {
                MeanTimeToRestoreModel newMeanTimeToRestoreModel = await serviceApiClient.GetAzureMeanTimeToRestore(getSampleData,
                                                                                                                    DevOpsPlatform.GitHub, item.ProductionResourceGroup, numberOfDays, maxNumberOfItems);

                newMeanTimeToRestoreModel.ItemOrder = item.ItemOrder;
                if (newMeanTimeToRestoreModel != null)
                {
                    items.Add(newMeanTimeToRestoreModel);
                }
            }

            //sort the final list
            items = items.OrderBy(o => o.ItemOrder).ToList();
            return(View(items));
        }
Esempio n. 16
0
        public async Task <IActionResult> MeanTimeToRestore()
        {
            int              maxNumberOfItems   = 20;
            int              numberOfDays       = 60;
            bool             getSampleData      = false;
            ServiceApiClient serviceApiClient   = new ServiceApiClient(Configuration);
            List <MeanTimeToRestoreModel> items = new List <MeanTimeToRestoreModel>();

            //Get a list of settings
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Create MTTR models from each setting object
            foreach (AzureDevOpsSettings item in azureDevOpsSettings)
            {
                MeanTimeToRestoreModel newMeanTimeToRestoreModel = await serviceApiClient.GetAzureMeanTimeToRestore(getSampleData,
                                                                                                                    DevOpsPlatform.AzureDevOps, item.ProductionResourceGroup, numberOfDays, maxNumberOfItems);

                newMeanTimeToRestoreModel.ItemOrder = item.ItemOrder;
                if (newMeanTimeToRestoreModel != null)
                {
                    items.Add(newMeanTimeToRestoreModel);
                }
            }
            foreach (GitHubSettings item in githubSettings)
            {
                MeanTimeToRestoreModel newMeanTimeToRestoreModel = await serviceApiClient.GetAzureMeanTimeToRestore(getSampleData,
                                                                                                                    DevOpsPlatform.GitHub, item.ProductionResourceGroup, numberOfDays, maxNumberOfItems);

                newMeanTimeToRestoreModel.ItemOrder = item.ItemOrder;
                if (newMeanTimeToRestoreModel != null)
                {
                    items.Add(newMeanTimeToRestoreModel);
                }
            }

            //sort the list
            items = items.OrderBy(o => o.ItemOrder).ToList();
            return(View(items));
        }
Esempio n. 17
0
        public void ProcessRequest(HttpContext context)
        {
            string result = string.Empty;

            if (context.Request.HttpMethod.ToUpper().Equals(GET))
            {
                userIP = GetWebClientIp(context);
                context.Response.ContentType = "text/plain";
                TimeSpan dspNow = DateTime.Now.TimeOfDay;

                string urlCheck = string.Empty;
                string callBack = string.Empty;
                if (IsInTimeInterval(dspNow, _strWorkingDayAM, _strWorkingDayPM))
                {
                    callBack = string.IsNullOrEmpty(context.Request.QueryString["callback"]) ? "" : context.Request.QueryString["callback"].ToString(); //回调
                    if (!string.IsNullOrEmpty(context.Request["url"]))
                    {
                        //需要检测的网址
                        urlCheck = context.Request["url"]; //检测的值
                        string[] sArray = urlCheck.Split('.');
                        if (sArray.Length == 3 && sArray[1].Length == 15)
                        {
                            result = "{\"State\":false,\"Code\":\"002\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"歇一歇,访问太快了,联系管理员qq:391502069\"}";
                        }
                        else
                        {
                            if (!IsRedis(context))
                            {
                                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"当天请求上限,请明天再试,需要讨论技术,联系管理员qq:391502069!\"}";
                            }
                            else
                            {
                                ServiceApiClient SpVoiceObj2 = null;
                                //    ServiceApiClient SpVoiceObj = null;
                                try
                                {
                                    bool isTrue = urlCheck.StartsWith("http");
                                    if (!isTrue)
                                    {
                                        urlCheck = "http://" + urlCheck;
                                    }
                                    urlCheck = System.Web.HttpUtility.UrlEncode(urlCheck);

                                    string json2 = "{\"Mode\":\"AuthKey\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxCheckApiKey + "\'}\"}";

                                    SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi");
                                    SpVoiceObj2.Open();
                                    result = SpVoiceObj2.Api(json2);
                                    SpVoiceObj2.Close();

                                    Logger.WriteLogggerTest("#################################################");
                                    Logger.WriteLogggerTest(userIP + ":" + result);
                                    Logger.WriteLogggerTest(context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
                                }
                                catch (System.ServiceModel.CommunicationException)
                                {
                                    //  if (SpVoiceObj != null) SpVoiceObj.Abort();
                                    if (SpVoiceObj2 != null)
                                    {
                                        SpVoiceObj2.Abort();
                                    }
                                }
                                catch (TimeoutException)
                                {
                                    //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                    if (SpVoiceObj2 != null)
                                    {
                                        SpVoiceObj2.Abort();
                                    }
                                }
                                catch (Exception ex)
                                {
                                    //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                    if (SpVoiceObj2 != null)
                                    {
                                        SpVoiceObj2.Abort();
                                    }
                                    result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"请求操作在配置的超时,请联系管理员!\"}";
                                    LogTools.WriteLine(userIP + ":" + ex.Message);
                                }
                            }
                        }
                    }
                    else
                    {
                        result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
                    }
                }
                else
                {
                    result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"测试接口,请在每天(08:00-21:00)时间段进行测试,需要讨论技术,联系管理员qq:391502069.\"}";
                }
                if (!string.IsNullOrEmpty(callBack))
                {
                    result = callBack + "(" + result + ")";
                }
            }
            else
            {
                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"QQ:391502069 \",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
            }
            context.Response.Write(result);
            context.Response.End();
        }
Esempio n. 18
0
        public void ProcessRequest(HttpContext context)
        {
            string result = string.Empty;

            if (context.Request.HttpMethod.ToUpper().Equals(GET))
            {
                string urlCheck = string.Empty;
                context.Response.ContentType = "text/plain";

                if (!string.IsNullOrEmpty(context.Request["url"]) && !string.IsNullOrEmpty(context.Request["key"]) && context.Request["key"].Length == 32)
                {
                    string userKey = context.Request["key"]; //key ,md5值

                    if (userKey.Trim() == wxCheckApiKey)
                    {
                        result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
                    }
                    else
                    {
                        if (!IsRedis(context, userKey))
                        {
                            result = "{\"State\":false,\"Code\":\"001\",\"Data\":\"" + userKey + "\",\"Msg\":\"非法访问2,访问被拒绝,联系管理员qq:391502069!\"}";
                        }
                        else
                        {
                            ServiceApiClient SpVoiceObj2 = null;
                            //  ServiceApiClient SpVoiceObj = null;
                            try
                            {
                                //需要检测的网址
                                urlCheck = context.Request["url"]; //检测的值
                                bool isTrue = urlCheck.StartsWith("http");
                                if (!isTrue)
                                {
                                    urlCheck = "http://" + urlCheck;
                                }
                                urlCheck = System.Web.HttpUtility.UrlEncode(urlCheck);

                                string json2 = "{\"Mode\":\"AuthQQGJICPKey\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + userKey + "\'}\"}";

                                SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi");
                                SpVoiceObj2.Open();
                                result = SpVoiceObj2.Api(json2);
                                SpVoiceObj2.Close();


                                if (!string.IsNullOrEmpty(context.Request.QueryString["callback"]))
                                {
                                    string callBack = context.Request.QueryString["callback"].ToString(); //回调
                                    result = callBack + "(" + result + ")";
                                }
                            }
                            catch (System.ServiceModel.CommunicationException)
                            {
                                //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                if (SpVoiceObj2 != null)
                                {
                                    SpVoiceObj2.Abort();
                                }
                            }
                            catch (TimeoutException)
                            {
                                // if (SpVoiceObj != null) SpVoiceObj.Abort();
                                if (SpVoiceObj2 != null)
                                {
                                    SpVoiceObj2.Abort();
                                }
                            }
                            catch (Exception ex)
                            {
                                //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                if (SpVoiceObj2 != null)
                                {
                                    SpVoiceObj2.Abort();
                                }
                                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"请求操作在配置的超时,请联系管理员!\"}";
                                //正式用
                                userIP = GetWebClientIp(context);
                                LogTools.WriteLine(userIP + ":" + userKey + ":" + ex.Message);
                            }
                        }
                    }
                }
                else
                {
                    result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
                }
            }
            else
            {
                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"QQ:391502069 \",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
            }
            context.Response.Write(result);
            context.Response.End();
        }
Esempio n. 19
0
        public void ProcessRequest(HttpContext context)
        {
            string result = string.Empty;

            if (context.Request.HttpMethod.ToUpper().Equals(POST))
            {
                //PostHtml();

                userIP = GetWebClientIp(context);
                context.Response.ContentType = "text/plain";
                TimeSpan dspNow = DateTime.Now.TimeOfDay;

                string urlCheck = context.Request["url"];

                string model = context.Request["model"];
                if (IsInTimeInterval(dspNow, _strWorkingDayAM, _strWorkingDayPM))
                {
                    // string referrer = context.Request.UrlReferrer != null ? context.Request.UrlReferrer.Host.ToLower() : "";

                    if (!string.IsNullOrEmpty(urlCheck) && !string.IsNullOrEmpty(model))
                    {
                        if (!IsRedis(context))
                        {
                            result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"当天请求上限,请明天再试,需要讨论技术,联系管理员qq:391502069!\"}";
                        }
                        else
                        {
                            if (!string.IsNullOrEmpty(context.Request["key"]) && context.Request["key"].Length == 32)
                            {
                                wxKey = context.Request["key"]; //key ,md5值
                            }


                            ServiceApiClient SpVoiceObj2 = null;
                            //    ServiceApiClient SpVoiceObj = null;
                            try
                            {
                                //需要检测的网址
                                bool isTrue = urlCheck.StartsWith("http");
                                if (!isTrue)
                                {
                                    urlCheck = "http://" + urlCheck;
                                }
                                urlCheck = System.Web.HttpUtility.UrlEncode(urlCheck);

                                string json2 = "{\"Mode\":\"" + model + "\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxKey + "\'}\"}";

                                SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi");
                                SpVoiceObj2.Open();
                                result = SpVoiceObj2.Api(json2);
                                SpVoiceObj2.Close();


                                Logger.WriteLogggerTest("#################################################");
                                Logger.WriteLogggerTest(wxKey + ":" + userIP + ":" + result);
                                Logger.WriteLogggerTest(wxKey + ":" + context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
                            }
                            catch (System.ServiceModel.CommunicationException)
                            {
                                //  if (SpVoiceObj != null) SpVoiceObj.Abort();
                                if (SpVoiceObj2 != null)
                                {
                                    SpVoiceObj2.Abort();
                                }
                            }
                            catch (TimeoutException)
                            {
                                //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                if (SpVoiceObj2 != null)
                                {
                                    SpVoiceObj2.Abort();
                                }
                            }
                            catch (Exception ex)
                            {
                                //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                if (SpVoiceObj2 != null)
                                {
                                    SpVoiceObj2.Abort();
                                }
                                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"请求操作在配置的超时,请联系管理员!\"}";
                                LogTools.WriteLine(userIP + ":" + wxKey + ":" + ex.Message);
                            }
                        }
                    }
                    else
                    {
                        result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
                    }
                }
                else
                {
                    result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"测试接口,请在每天(08:00-21:00)时间段进行测试,需要讨论技术,联系管理员qq:391502069.\"}";
                }
            }
            else
            {
                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"QQ:391502069 \",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
            }
            context.Response.Headers.Add("Access-Control-Allow-Origin", "http://www.rrbay.xyz");
            context.Response.Headers.Add("Access-Control-Allow-Methods", "POST");
            context.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
            context.Response.Write(result);
            context.Response.End();
        }
Esempio n. 20
0
        public void ProcessRequest(HttpContext context)
        {
            string result = string.Empty;

            if (context.Request.HttpMethod.ToUpper().Equals(GET))
            {
                //PostHtml();
                //lppsd.zq6kcwhbpvg2twb.com
                //vftkt.n06th8owuihzhhs.com
                context.Response.Headers.Add("Access-Control-Allow-Origin", "http://wx.rrbay.com");
                context.Response.Headers.Add("Access-Control-Allow-Methods", "GET");

                userIP = GetWebClientIp(context);
                context.Response.ContentType = "text/plain";
                TimeSpan dspNow = DateTime.Now.TimeOfDay;

                string urlCheck = string.Empty;
                string callBack = string.Empty;
                if (IsInTimeInterval(dspNow, _strWorkingDayAM, _strWorkingDayPM))
                {
                    string referrer = context.Request.UrlReferrer != null?context.Request.UrlReferrer.Host.ToLower() : "";

                    callBack = string.IsNullOrEmpty(context.Request.QueryString["callback"]) ? "" : context.Request.QueryString["callback"].ToString(); //回调
                    if (!string.IsNullOrEmpty(context.Request["url"]) && string.IsNullOrEmpty(callBack) && (string.IsNullOrEmpty(referrer) || referrer.ToLower().Contains("v2ex.com") || referrer.ToLower().Contains("hexun.com") || referrer.ToLower().Contains("cnblogs.com") || referrer.ToLower().Contains("zhihu.com") || referrer.ToLower().Contains("csdn.net") || referrer.ToLower().Contains("rrbay.xyz")))
                    {
                        //需要检测的网址
                        urlCheck = context.Request["url"]; //检测的值
                        string[] sArray = urlCheck.Split('.');
                        if (sArray.Length == 3 && sArray[1].Length == 15)
                        {
                            result = "{\"State\":false,\"Code\":\"002\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"歇一歇,访问太快了,联系管理员qq:391502069\"}";
                        }
                        else
                        {
                            if (!IsRedis(context))
                            {
                                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"当天请求上限,请明天再试,需要讨论技术,联系管理员qq:391502069!\"}";
                            }
                            else
                            {
                                if (!string.IsNullOrEmpty(context.Request["key"]) && context.Request["key"].Length == 32)
                                {
                                    wxCheckApiKey = context.Request["key"]; //key ,md5值
                                }

                                ServiceApiClient SpVoiceObj2 = null;
                                //    ServiceApiClient SpVoiceObj = null;
                                try
                                {
                                    bool isTrue = urlCheck.StartsWith("http");
                                    if (!isTrue)
                                    {
                                        urlCheck = "http://" + urlCheck;
                                    }
                                    urlCheck = System.Web.HttpUtility.UrlEncode(urlCheck);

                                    string json2 = "{\"Mode\":\"AuthQQKey\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxCheckApiKey + "\'}\"}";

                                    SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi");
                                    SpVoiceObj2.Open();
                                    result = SpVoiceObj2.Api(json2);
                                    SpVoiceObj2.Close();
                                    //JsonObject.Results aup = JsonConvert.DeserializeObject<JsonObject.Results>(result);

                                    //if (aup.State == true)
                                    //{
                                    //    string json = "{\"Mode\":\"WXCheckUrl\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxCheckApiKey + "\'}\"}";
                                    //    SpVoiceObj = new ServiceApiClient("NetTcpBinding_IServiceApi");
                                    //    SpVoiceObj.Open();
                                    //    result = SpVoiceObj.Api(json);
                                    //    SpVoiceObj.Close();

                                    //}
                                    Logger.WriteLogggerTest("#################################################");
                                    Logger.WriteLogggerTest(userIP + ":" + wxCheckApiKey + ":" + result);

                                    Logger.WriteLogggerTest(urlCheck + ":HTTP_CDN_SRC_IP--" + context.Request.ServerVariables["HTTP_CDN_SRC_IP"]);
                                    Logger.WriteLogggerTest(urlCheck + ":HTTP_Cdn-Src-Ip--" + context.Request.ServerVariables["HTTP_Cdn-Src-Ip"]);
                                    Logger.WriteLogggerTest(urlCheck + ":Cdn-Src-Ip--" + context.Request.ServerVariables["Cdn-Src-Ip"]);
                                    Logger.WriteLogggerTest(urlCheck + ":HTTP_X_FORWARDED_FOR--" + context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
                                    Logger.WriteLogggerTest(urlCheck + ":Proxy-Client-IP--" + context.Request.ServerVariables["Proxy-Client-IP"]);
                                    Logger.WriteLogggerTest(urlCheck + ":WL-Proxy-Client-IP--" + context.Request.ServerVariables["WL-Proxy-Client-IP"]);
                                    Logger.WriteLogggerTest(urlCheck + ":HTTP_CLIENT_IP--" + context.Request.ServerVariables["HTTP_CLIENT_IP"]);
                                    Logger.WriteLogggerTest(urlCheck + ":HTTP_VIA--" + context.Request.ServerVariables["HTTP_VIA"]);
                                    Logger.WriteLogggerTest(urlCheck + ":REMOTE_ADDR--" + context.Request.ServerVariables["REMOTE_ADDR"]);

                                    Logger.WriteLogggerTest("==================================================");
                                }
                                catch (System.ServiceModel.CommunicationException)
                                {
                                    //  if (SpVoiceObj != null) SpVoiceObj.Abort();
                                    if (SpVoiceObj2 != null)
                                    {
                                        SpVoiceObj2.Abort();
                                    }
                                }
                                catch (TimeoutException)
                                {
                                    //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                    if (SpVoiceObj2 != null)
                                    {
                                        SpVoiceObj2.Abort();
                                    }
                                }
                                catch (Exception ex)
                                {
                                    //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                    if (SpVoiceObj2 != null)
                                    {
                                        SpVoiceObj2.Abort();
                                    }
                                    result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"请求操作在配置的超时,请联系管理员!\"}";
                                    LogTools.WriteLine(userIP + ":" + wxCheckApiKey + ":" + ex.Message);
                                }
                            }
                        }
                    }
                    else
                    {
                        result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
                    }
                }
                else
                {
                    result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"测试接口,请在每天(08:00-21:00)时间段进行测试,需要讨论技术,联系管理员qq:391502069.\"}";
                }
                if (!string.IsNullOrEmpty(callBack))
                {
                    result = callBack + "(" + result + ")";
                }
            }
            else
            {
                result = "{\"State\":false,\"Code\",\"003\",\"Data\":\"QQ:391502069 \",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
            }
            context.Response.Write(result);
            context.Response.End();
        }
Esempio n. 21
0
        public void ProcessRequest(HttpContext context)
        {
            string result = string.Empty;

            if (context.Request.HttpMethod.ToUpper().Equals(GET))
            {
                string url  = context.Request["url"];
                string key  = context.Request["key"];  //key ,md5值
                string type = context.Request["type"]; //key ,md5值
                context.Response.ContentType = "text/plain";

                if (!string.IsNullOrEmpty(url) && !string.IsNullOrEmpty(key) && key.Length == 32)
                {
                    if (!IsRedis(context, key))
                    {
                        result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + key + "\",\"Msg\":\"当天请求上限,请明天再试,需要讨论技术,联系管理员qq:391502069!\"}";
                    }
                    else
                    {
                        ServiceApiClient SpVoiceObj = null;
                        try
                        {
                            if (!url.Contains("%3a%2f%2f"))
                            {
                                url = System.Web.HttpUtility.UrlEncode(url);
                            }

                            string json2 = "{\"Mode\":\"ShortUrl\",\"Param\":\"{\'CheckUrl\':\'" + url + "\',\'type\':\'" + type + "\',\'UserKey\':\'" + key + "\'}\"}";

                            SpVoiceObj = new ServiceApiClient("NetTcpBinding_IServiceApi");
                            SpVoiceObj.Open();
                            result = SpVoiceObj.Api(json2);
                            SpVoiceObj.Close();


                            if (!string.IsNullOrEmpty(context.Request.QueryString["callback"]))
                            {
                                string callBack = context.Request.QueryString["callback"].ToString(); //回调
                                result = callBack + "(" + result + ")";
                            }
                        }
                        catch (System.ServiceModel.CommunicationException)
                        {
                            if (SpVoiceObj != null)
                            {
                                SpVoiceObj.Abort();
                            }
                        }
                        catch (TimeoutException)
                        {
                            if (SpVoiceObj != null)
                            {
                                SpVoiceObj.Abort();
                            }
                        }
                        catch (Exception ex)
                        {
                            if (SpVoiceObj != null)
                            {
                                SpVoiceObj.Abort();
                            }
                            result = "{\"State\":false,\"Code\",\"003\",\"Data\":\"" + url + "\",\"Msg\":\"请求操作在配置的超时,请联系管理员!\"}";
                            LogTools.WriteLine(key + ":" + ex.Message);
                        }
                    }
                }
                else
                {
                    result = "{\"State\":false,\"Code\",\"003\",\"Data\":\"" + url + "\",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
                }
            }
            else
            {
                result = "{\"State\":false,\"Code\",\"003\",\"Data\":\"QQ:391502069 \",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
            }
            context.Response.Write(result);
            context.Response.End();
        }
Esempio n. 22
0
        public void ProcessRequest(HttpContext context)
        {
            string result = "{\"State\":false,\"Code\":\"003\",\"Data\":\" \",\"Msg\":\"参数错误,联系管理员!\"}";
            string wxKey  = wxCheckApiKey; //key ,md5值

            string allowOrigin = "https://www.rrbay.com,http://www.wxcheckurl.com,https://qqwebchat.gitee.io";
            string origin      = context.Request.Headers.Get("Origin");
            string referer     = context.Request.Headers.Get("Referer");

            if (origin != null && referer != null && (allowOrigin.Contains(origin) || origin.Contains("http://localhost:")) && referer.Length > origin.Length && context.Request.HttpMethod.ToUpper().Equals(POST))
            {
                context.Response.ContentType = "text/plain";
                string urlCheck = context.Request["url"];
                string model    = context.Request["model"];

                if (!string.IsNullOrEmpty(urlCheck) && !string.IsNullOrEmpty(model))
                {
                    if (!string.IsNullOrEmpty(context.Request["key"]) && context.Request["key"].Length == 32)
                    {
                        wxKey = context.Request["key"]; //key ,md5值
                    }
                    if (!wxKey.ToLower().Equals(wxCheckApiKey))
                    {
                        IsFreeKey = 0;
                    }
                    else
                    {
                        IsFreeKey = 1;
                        userIP    = GetWebClientIp(context);
                    }
                    TimeSpan dspNow = DateTime.Now.TimeOfDay;
                    if ((IsFreeKey == 1 && IsInTimeInterval(dspNow, _strWorkingDayAM, _strWorkingDayPM)) || IsFreeKey == 0)
                    {
                        if (!urlCheck.ToLower().Contains(".kuaizhan.com") && !urlCheck.ToLower().Contains(".luckhl8.com") && !urlCheck.ToLower().Contains(".kennethhwong.cn") && !urlCheck.ToLower().Contains(".hatai678.top") && !urlCheck.ToLower().Contains(".jszkgs.top"))
                        {
                            ServiceApiClient SpVoiceObj2 = null;
                            //    ServiceApiClient SpVoiceObj = null;
                            try
                            {
                                //需要检测的网址
                                bool isTrue = urlCheck.StartsWith("http");
                                if (!isTrue)
                                {
                                    urlCheck = "http://" + urlCheck;
                                }
                                if (urlCheck.StartsWith("http://") || urlCheck.StartsWith("https://"))
                                {
                                    urlCheck = System.Web.HttpUtility.UrlEncode(urlCheck);
                                }

                                string json2 = "{\"Mode\":\"" + model + "\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxKey + "\',\'UserIP\':\'" + userIP + "\',\'IsFreeKey\':'" + IsFreeKey + "'}\"}";

                                SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi");
                                SpVoiceObj2.Open();
                                result = SpVoiceObj2.Api(json2);
                                SpVoiceObj2.Close();

                                Logger.WriteLogggerTest("#################################################");
                                Logger.WriteLogggerTest(wxKey + ":" + userIP + ":" + result);
                                Logger.WriteLogggerTest(wxKey + ":" + context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
                            }
                            catch (System.ServiceModel.CommunicationException)
                            {
                                //  if (SpVoiceObj != null) SpVoiceObj.Abort();
                                if (SpVoiceObj2 != null)
                                {
                                    SpVoiceObj2.Abort();
                                }
                            }
                            catch (TimeoutException)
                            {
                                //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                if (SpVoiceObj2 != null)
                                {
                                    SpVoiceObj2.Abort();
                                }
                            }
                            catch (Exception ex)
                            {
                                //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                                if (SpVoiceObj2 != null)
                                {
                                    SpVoiceObj2.Abort();
                                }
                                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"请求操作在配置的超时,请联系管理员!\"}";
                                LogTools.WriteLine(userIP + ":" + wxKey + ":" + ex.Message);
                            }
                        }
                        else
                        {
                            result = "{\"State\":false,\"Code\":\"002\",\"Data\":\"" + urlCheck + " \",\"Msg\":\"歇一歇,访问太快了,联系管理员!\"}";
                        }
                    }
                    else
                    {
                        result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"测试接口,请在每天(08:00-21:00)时间段进行测试,需要讨论技术,联系管理员.\"}";
                    }
                }
                else
                {
                    result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"参数错误,联系管理员!\"}";
                }
            }

            if (origin != null && (allowOrigin.Contains(origin) || origin.Contains("http://localhost:")))
            {
                context.Response.Headers.Add("Access-Control-Allow-Origin", origin);
            }
            else
            {
                context.Response.Headers.Add("Access-Control-Allow-Origin", "https://www.rrbay.com");
            }
            context.Response.Headers.Add("Access-Control-Allow-Methods", "POST");
            context.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
            context.Response.Write(result);
            context.Response.End();
        }
Esempio n. 23
0
 public void SetUp()
 {
     shopId           = Guid.NewGuid();
     serviceApiClient = new ServiceApiClient(new ServiceApiClientSettings(new[] { new Uri("http://localhost:16001"), }, TimeSpan.FromSeconds(15), null));
     workerApiClient  = serviceApiClient.Workers;
 }
Esempio n. 24
0
        public void ProcessRequest(HttpContext context)
        {
            string result = string.Empty;

            if (context.Request.HttpMethod.ToUpper().Equals(POST))
            {
                string url   = context.Request["url"];
                string type  = context.Request["type"];  //key ,md5值
                string model = context.Request["model"]; //a,还原;b.生成
                context.Response.ContentType = "text/plain";
                TimeSpan dspNow = DateTime.Now.TimeOfDay;

                if (!string.IsNullOrEmpty(model) && model.Equals("b"))
                {  //生成短链接
                    if (IsInTimeInterval(dspNow, _strWorkingDayAM, _strWorkingDayPM) && !string.IsNullOrEmpty(url))
                    {
                        userIP = GetWebClientIp(context);

                        ServiceApiClient SpVoiceObj = null;
                        try
                        {
                            if (type.ToUpper() != "URLCN" && type.ToUpper() != "WURLCN" && type.ToUpper() != "TCN")
                            {
                                type = "URLCN";
                            }
                            if (url.StartsWith("http://") || url.StartsWith("https://"))
                            {
                                url = System.Web.HttpUtility.UrlEncode(url);
                            }

                            string json2 = "{\"Mode\":\"ShortUrl\",\"Param\":\"{\'CheckUrl\':\'" + url + "\',\'type\':\'" + type + "\',\'UserKey\':\'" + shorturlkey + "\',\'UserIP\':\'" + userIP + "\',\'IsFreeKey\':1}\"}";

                            SpVoiceObj = new ServiceApiClient("NetTcpBinding_IServiceApi");
                            SpVoiceObj.Open();
                            result = SpVoiceObj.Api(json2);
                            SpVoiceObj.Close();


                            if (!string.IsNullOrEmpty(context.Request.QueryString["callback"]))
                            {
                                string callBack = context.Request.QueryString["callback"].ToString(); //回调
                                result = callBack + "(" + result + ")";
                            }
                        }
                        catch (System.ServiceModel.CommunicationException)
                        {
                            if (SpVoiceObj != null)
                            {
                                SpVoiceObj.Abort();
                            }
                        }
                        catch (TimeoutException)
                        {
                            if (SpVoiceObj != null)
                            {
                                SpVoiceObj.Abort();
                            }
                        }
                        catch (Exception ex)
                        {
                            if (SpVoiceObj != null)
                            {
                                SpVoiceObj.Abort();
                            }
                            result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"https://url.cn/5mfnDv7\",\"Msg\":\"请求操作在配置的超时,请联系管理员!\"}";
                            LogTools.WriteLine(shorturlkey + ":" + ex.Message);
                        }
                    }
                    else
                    {
                        result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"https://url.cn/5mfnDv7\",\"Msg\":\"测试接口,请在每天(08:00-21:00)时间段进行测试,需要讨论技术,联系管理员qq:391502069.\"}";
                    }
                }
                else
                { //短链接还原
                    result = HttpHelper.GetLocation(url);
                }
            }
            else
            {
                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"https://url.cn/5mfnDv7\",\"Msg\":\"参数错误,联系管理员qq:391502069!\"}";
            }
            context.Response.Headers.Add("Access-Control-Allow-Origin", "https://www.rrbay.com");
            context.Response.Headers.Add("Access-Control-Allow-Methods", "POST");
            context.Response.Headers.Add("Access-Control-Allow-Credentials", "true");

            context.Response.Write(result);
            context.Response.End();
        }
        public void ProcessRequest(HttpContext context)
        {
            //PostHtml();
            context.Response.Headers.Add("Access-Control-Allow-Origin", "http://wx.rrbay.com");
            context.Response.Headers.Add("Access-Control-Allow-Methods", "GET");

            userIP = GetWebClientIp(context);
            context.Response.ContentType = "text/plain";
            TimeSpan dspNow   = DateTime.Now.TimeOfDay;
            string   result   = string.Empty;
            string   urlCheck = string.Empty;

            if (IsInTimeInterval(dspNow, _strWorkingDayAM, _strWorkingDayPM))
            {
                if (!string.IsNullOrEmpty(context.Request["url"]))
                {
                    if (!IsRedis(context))
                    {
                        result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"当天请求上限,请明天再试,需要讨论技术,进群交流 QQ群:41977413!\"}";
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(context.Request["key"]) && context.Request["key"].Length == 32)
                        {
                            wxCheckApiKey = context.Request["key"]; //key ,md5值
                        }

                        ServiceApiClient SpVoiceObj2 = null;
                        //    ServiceApiClient SpVoiceObj = null;
                        try
                        {
                            //需要检测的网址
                            urlCheck = context.Request["url"]; //检测的值
                            bool isTrue = urlCheck.StartsWith("http");
                            if (!isTrue)
                            {
                                urlCheck = "http://" + urlCheck;
                            }
                            urlCheck = System.Web.HttpUtility.UrlEncode(urlCheck);

                            string json2 = "{\"Mode\":\"AuthKey\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxCheckApiKey + "\'}\"}";

                            SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi");
                            SpVoiceObj2.Open();
                            result = SpVoiceObj2.Api(json2);
                            SpVoiceObj2.Close();
                            //JsonObject.Results aup = JsonConvert.DeserializeObject<JsonObject.Results>(result);

                            //if (aup.State == true)
                            //{
                            //    string json = "{\"Mode\":\"WXCheckUrl\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxCheckApiKey + "\'}\"}";
                            //    SpVoiceObj = new ServiceApiClient("NetTcpBinding_IServiceApi");
                            //    SpVoiceObj.Open();
                            //    result = SpVoiceObj.Api(json);
                            //    SpVoiceObj.Close();

                            //}
                            Logger.WriteLogggerTest("#################################################");
                            Logger.WriteLogggerTest(userIP + ":" + wxCheckApiKey + ":" + result);

                            Logger.WriteLogggerTest(urlCheck + ":HTTP_CDN_SRC_IP--" + context.Request.ServerVariables["HTTP_CDN_SRC_IP"]);
                            Logger.WriteLogggerTest(urlCheck + ":HTTP_Cdn-Src-Ip--" + context.Request.ServerVariables["HTTP_Cdn-Src-Ip"]);
                            Logger.WriteLogggerTest(urlCheck + ":Cdn-Src-Ip--" + context.Request.ServerVariables["Cdn-Src-Ip"]);
                            Logger.WriteLogggerTest(urlCheck + ":HTTP_X_FORWARDED_FOR--" + context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
                            Logger.WriteLogggerTest(urlCheck + ":Proxy-Client-IP--" + context.Request.ServerVariables["Proxy-Client-IP"]);
                            Logger.WriteLogggerTest(urlCheck + ":WL-Proxy-Client-IP--" + context.Request.ServerVariables["WL-Proxy-Client-IP"]);
                            Logger.WriteLogggerTest(urlCheck + ":HTTP_CLIENT_IP--" + context.Request.ServerVariables["HTTP_CLIENT_IP"]);
                            Logger.WriteLogggerTest(urlCheck + ":HTTP_VIA--" + context.Request.ServerVariables["HTTP_VIA"]);
                            Logger.WriteLogggerTest(urlCheck + ":REMOTE_ADDR--" + context.Request.ServerVariables["REMOTE_ADDR"]);

                            Logger.WriteLogggerTest("==================================================");
                        }
                        catch (System.ServiceModel.CommunicationException)
                        {
                            //  if (SpVoiceObj != null) SpVoiceObj.Abort();
                            if (SpVoiceObj2 != null)
                            {
                                SpVoiceObj2.Abort();
                            }
                        }
                        catch (TimeoutException)
                        {
                            //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                            if (SpVoiceObj2 != null)
                            {
                                SpVoiceObj2.Abort();
                            }
                        }
                        catch (Exception ex)
                        {
                            //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                            if (SpVoiceObj2 != null)
                            {
                                SpVoiceObj2.Abort();
                            }
                            result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"请求操作在配置的超时,请联系管理员!\"}";
                            LogTools.WriteLine(userIP + ":" + wxCheckApiKey + ":" + ex.Message);
                        }
                    }
                }
                else
                {
                    result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"参数错误,进qq群交流:41977413!\"}";
                }
            }
            else
            {
                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"测试接口,请在每天(08:00-21:00)时间段进行测试,需要讨论技术,进群交流 QQ群:41977413.\"}";
            }
            if (!string.IsNullOrEmpty(context.Request.QueryString["callback"]))
            {
                string callBack = context.Request.QueryString["callback"].ToString(); //回调

                result = callBack + "(" + result + ")";
            }
            context.Response.Write(result);
            context.Response.End();
        }
Esempio n. 26
0
        public void ProcessRequest(HttpContext context)
        {
            //正式用
            userIP = GetWebClientIp(context);
            string urlCheck = string.Empty;

            context.Response.ContentType = "text/plain";
            string result = string.Empty;

            if (!string.IsNullOrEmpty(context.Request["url"]) && !string.IsNullOrEmpty(context.Request["key"]) && context.Request["key"].Length == 32)
            {
                string userKey = context.Request["key"]; //key ,md5值

                if (userKey.Trim() == wxCheckApiKey)
                {
                    context.Response.Write("参数错误,进qq群交流:41977413!");
                }
                else
                {
                    try
                    {
                        //需要检测的网址
                        urlCheck = context.Request["url"]; //检测的值
                        bool isTrue = urlCheck.StartsWith("http");
                        if (!isTrue)
                        {
                            urlCheck = "http://" + urlCheck;
                        }
                        urlCheck = System.Web.HttpUtility.UrlEncode(urlCheck);

                        string json2 = "{\"Mode\":\"AuthKey\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + userKey + "\'}\"}";

                        ServiceApiClient SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi2");
                        SpVoiceObj2.Open();
                        result = SpVoiceObj2.Api(json2);
                        SpVoiceObj2.Close();
                        JsonObject.Results aup = JsonConvert.DeserializeObject <JsonObject.Results>(result);

                        if (aup.State == true)
                        {
                            string           json       = "{\"Mode\":\"WXCheckUrl\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + userKey + "\'}\"}";
                            ServiceApiClient SpVoiceObj = new ServiceApiClient("NetTcpBinding_IServiceApi");
                            SpVoiceObj.Open();
                            result = SpVoiceObj.Api(json);
                            SpVoiceObj.Close();
                        }



                        if (!string.IsNullOrEmpty(context.Request.QueryString["callback"]))
                        {
                            string callBack = context.Request.QueryString["callback"].ToString(); //回调
                            result = callBack + "(" + result + ")";
                        }
                    }
                    catch (Exception ex)
                    {
                        result = "{\"State\":false,\"Data\":\"" + urlCheck + "\",\"Msg\":\"某服务暂停,请联系管理员!\"}";
                        LogTools.WriteLine(userIP + ":" + userKey + ":" + ex.Message);
                    }
                    context.Response.Write(result);
                    LogTools.WriteLine(userIP + ":" + userKey + ":" + result);
                }
            }
            else
            {
                context.Response.Write("参数错误,进qq群交流:41977413!");
            }

            context.Response.End();
        }
Esempio n. 27
0
        public async Task <IActionResult> ChangeFailureRateUpdates()
        {
            ServiceApiClient serviceApiClient = new ServiceApiClient(Configuration);

            //Get a list of settings
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Create project items from each Azure DevOps setting and add it to a project list.
            List <ProjectUpdateItem> projectList = new List <ProjectUpdateItem>();

            foreach (AzureDevOpsSettings item in azureDevOpsSettings)
            {
                ProjectUpdateItem newItem = new ProjectUpdateItem
                {
                    ProjectId   = item.RowKey,
                    ProjectName = item.Project
                };
                projectList.Add(newItem);
            }
            //Create project items from each GitHub setting and add it to a project list.
            foreach (GitHubSettings item in githubSettings)
            {
                ProjectUpdateItem newItem = new ProjectUpdateItem
                {
                    ProjectId   = item.RowKey,
                    ProjectName = item.Repo
                };
                projectList.Add(newItem);
            }

            //Create a percentage completed dropdown
            List <CompletionPercentItem> completionList = new List <CompletionPercentItem>
            {
                new CompletionPercentItem {
                    CompletionPercent = 0
                },
                new CompletionPercentItem {
                    CompletionPercent = 10
                },
                new CompletionPercentItem {
                    CompletionPercent = 25
                },
                new CompletionPercentItem {
                    CompletionPercent = 50
                },
                new CompletionPercentItem {
                    CompletionPercent = 75
                },
                new CompletionPercentItem {
                    CompletionPercent = 98
                },
                new CompletionPercentItem {
                    CompletionPercent = 100
                }
            };

            //Create the days to process dropdown
            List <NumberOfDaysItem> numberOfDaysList = new List <NumberOfDaysItem>
            {
                new NumberOfDaysItem {
                    NumberOfDays = 1
                },
                new NumberOfDaysItem {
                    NumberOfDays = 7
                },
                new NumberOfDaysItem {
                    NumberOfDays = 21
                },
                new NumberOfDaysItem {
                    NumberOfDays = 30
                },
                new NumberOfDaysItem {
                    NumberOfDays = 60
                },
                new NumberOfDaysItem {
                    NumberOfDays = 90
                }
            };

            ProjectUpdateViewModel model = new ProjectUpdateViewModel
            {
                ProjectList           = new SelectList(projectList, "ProjectId", "ProjectName"),
                CompletionPercentList = new SelectList(completionList, "CompletionPercent", "CompletionPercent"),
                NumberOfDaysList      = new SelectList(numberOfDaysList, "NumberOfDays", "NumberOfDays")
            };

            return(View(model));
        }
Esempio n. 28
0
        public void ProcessRequest(HttpContext context)
        {
            //PostHtml();
            userIP = GetWebClientIp(context);
            context.Response.ContentType = "text/plain";
            TimeSpan dspNow   = DateTime.Now.TimeOfDay;
            string   result   = string.Empty;
            string   urlCheck = string.Empty;

            if (IsInTimeInterval(dspNow, _strWorkingDayAM, _strWorkingDayPM))
            {
                if (!IsValid(context))
                {
                    result = "{\"State\":false,\"Data\":\"" + userIP + "\",\"Msg\":\"当天请求上限,请明天再试,需要讨论技术,进群交流 QQ群:41977413!\"}";
                }
                else
                {
                    if (!string.IsNullOrEmpty(context.Request["url"]))
                    {
                        if (!string.IsNullOrEmpty(context.Request["key"]) && context.Request["key"].Length == 32)
                        {
                            wxCheckApiKey = context.Request["key"]; //key ,md5值
                        }


                        try
                        {
                            //需要检测的网址
                            urlCheck = context.Request["url"]; //检测的值
                            urlCheck = urlCheck.Replace("https://", "").Replace("http://", "");
                            string json2 = "{\"Mode\":\"AuthKey\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxCheckApiKey + "\'}\"}";

                            ServiceApiClient SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi2");
                            SpVoiceObj2.Open();
                            result = SpVoiceObj2.Api(json2);
                            SpVoiceObj2.Close();
                            JsonObject.Results aup = JsonConvert.DeserializeObject <JsonObject.Results>(result);

                            if (aup.State == true)
                            {
                                string           json       = "{\"Mode\":\"WXCheckUrl\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxCheckApiKey + "\'}\"}";
                                ServiceApiClient SpVoiceObj = new ServiceApiClient("NetTcpBinding_IServiceApi");
                                SpVoiceObj.Open();
                                result = SpVoiceObj.Api(json);
                                SpVoiceObj.Close();
                            }
                            Logger.WriteLogggerTest("#################################################");
                            Logger.WriteLogggerTest(userIP + ":" + wxCheckApiKey + ":" + result);

                            Logger.WriteLogggerTest(urlCheck + ":HTTP_CDN_SRC_IP--" + context.Request.ServerVariables["HTTP_CDN_SRC_IP"]);
                            Logger.WriteLogggerTest(urlCheck + ":HTTP_Cdn-Src-Ip--" + context.Request.ServerVariables["HTTP_Cdn-Src-Ip"]);
                            Logger.WriteLogggerTest(urlCheck + ":Cdn-Src-Ip--" + context.Request.ServerVariables["Cdn-Src-Ip"]);
                            Logger.WriteLogggerTest(urlCheck + ":HTTP_X_FORWARDED_FOR--" + context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
                            Logger.WriteLogggerTest(urlCheck + ":Proxy-Client-IP--" + context.Request.ServerVariables["Proxy-Client-IP"]);
                            Logger.WriteLogggerTest(urlCheck + ":WL-Proxy-Client-IP--" + context.Request.ServerVariables["WL-Proxy-Client-IP"]);
                            Logger.WriteLogggerTest(urlCheck + ":HTTP_CLIENT_IP--" + context.Request.ServerVariables["HTTP_CLIENT_IP"]);
                            Logger.WriteLogggerTest(urlCheck + ":HTTP_VIA--" + context.Request.ServerVariables["HTTP_VIA"]);
                            Logger.WriteLogggerTest(urlCheck + ":REMOTE_ADDR--" + context.Request.ServerVariables["REMOTE_ADDR"]);

                            Logger.WriteLogggerTest("==================================================");
                        }
                        catch (Exception ex)
                        {
                            result = "{\"State\":false,\"Data\":\"" + urlCheck + "\",\"Msg\":\"某服务暂停,请联系管理员!\"}";
                        }
                    }
                    else
                    {
                        result = "{\"State\":false,\"Data\":\"" + userIP + "\",\"Msg\":\"参数错误,进qq群交流:41977413!\"}";
                    }
                }
            }
            else
            {
                result = "{\"State\":false,\"Data\":\"" + userIP + "\",\"Msg\":\"测试接口,请在每天(08:00-21:00)时间段进行测试,需要讨论技术,进群交流 QQ群:41977413.\"}";
            }
            if (!string.IsNullOrEmpty(context.Request.QueryString["callback"]))
            {
                string callBack = context.Request.QueryString["callback"].ToString(); //回调

                result = callBack + "(" + result + ")";
            }
            context.Response.Write(result);
            context.Response.End();
        }
Esempio n. 29
0
        public void ProcessRequest(HttpContext context)
        {
            string result = string.Empty;

            if (context.Request.HttpMethod.ToUpper().Equals(GET))
            {
                userIP = GetWebClientIp(context);
                context.Response.ContentType = "text/plain";
                TimeSpan dspNow = DateTime.Now.TimeOfDay;

                string urlCheck = string.Empty;
                string callBack = string.Empty;
                if (IsInTimeInterval(dspNow, _strWorkingDayAM, _strWorkingDayPM))
                {
                    if (!string.IsNullOrEmpty(context.Request["url"]))
                    {
                        //需要检测的网址
                        urlCheck = context.Request["url"]; //检测的值
                        ServiceApiClient SpVoiceObj2 = null;

                        try
                        {
                            bool isTrue = urlCheck.StartsWith("http");
                            if (!isTrue)
                            {
                                urlCheck = "http://" + urlCheck;
                            }
                            if (urlCheck.StartsWith("http://") || urlCheck.StartsWith("https://"))
                            {
                                urlCheck = System.Web.HttpUtility.UrlEncode(urlCheck);
                            }

                            string json2 = "{\"Mode\":\"AuthQQGJICPKey\",\"Param\":\"{\'CheckUrl\':\'" + urlCheck + "\',\'UserKey\':\'" + wxCheckApiKey + "\',\'UserIP\':\'" + userIP + "\',\'IsFreeKey\':1}\"}";

                            SpVoiceObj2 = new ServiceApiClient("NetTcpBinding_IServiceApi");
                            SpVoiceObj2.Open();
                            result = SpVoiceObj2.Api(json2);
                            SpVoiceObj2.Close();

                            Logger.WriteLogggerTest("#################################################");
                            Logger.WriteLogggerTest(userIP + ":" + result);
                            Logger.WriteLogggerTest(context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
                        }
                        catch (System.ServiceModel.CommunicationException)
                        {
                            //  if (SpVoiceObj != null) SpVoiceObj.Abort();
                            if (SpVoiceObj2 != null)
                            {
                                SpVoiceObj2.Abort();
                            }
                        }
                        catch (TimeoutException)
                        {
                            //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                            if (SpVoiceObj2 != null)
                            {
                                SpVoiceObj2.Abort();
                            }
                        }
                        catch (Exception ex)
                        {
                            //   if (SpVoiceObj != null) SpVoiceObj.Abort();
                            if (SpVoiceObj2 != null)
                            {
                                SpVoiceObj2.Abort();
                            }
                            result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + urlCheck + "\",\"Msg\":\"请求操作在配置的超时,请联系管理员!\"}";
                            LogTools.WriteLine(userIP + ":" + wxCheckApiKey + ":" + ex.Message);
                        }
                    }
                    else
                    {
                        result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"参数错误,联系管理员!\"}";
                    }
                }
                else
                {
                    result = "{\"State\":false,\"Code\":\"003\",\"Data\":\"" + userIP + "\",\"Msg\":\"测试接口,请在每天(08:00-21:00)时间段进行测试,需要讨论技术,联系管理员.\"}";
                }
            }
            else
            {
                result = "{\"State\":false,\"Code\":\"003\",\"Data\":\" \",\"Msg\":\"参数错误,联系管理员!\"}";
            }
            context.Response.Write(result);
            context.Response.End();
        }
Esempio n. 30
0
        public async Task <IActionResult> Project(string rowKey, int numberOfDays = 30)
        {
            int              maxNumberOfItems = 20;
            bool             getSampleData    = false;
            bool             useCache         = true;
            string           patToken         = Configuration["AppSettings:AzureDevOpsPatToken"];
            string           clientId         = Configuration["AppSettings:GitHubClientId"];
            string           clientSecret     = Configuration["AppSettings:GitHubClientSecret"];
            ProjectViewModel model            = new ProjectViewModel();

            //Find the right project to load
            ServiceApiClient           serviceApiClient    = new ServiceApiClient(Configuration);
            List <AzureDevOpsSettings> azureDevOpsSettings = await serviceApiClient.GetAzureDevOpsSettings();

            List <GitHubSettings> githubSettings = await serviceApiClient.GetGitHubSettings();

            //Create the days to view dropdown
            List <NumberOfDaysItem> numberOfDaysList = new List <NumberOfDaysItem>
            {
                new NumberOfDaysItem {
                    NumberOfDays = 7
                },
                new NumberOfDaysItem {
                    NumberOfDays = 14
                },
                new NumberOfDaysItem {
                    NumberOfDays = 21
                },
                new NumberOfDaysItem {
                    NumberOfDays = 30
                },
                new NumberOfDaysItem {
                    NumberOfDays = 60
                },
                new NumberOfDaysItem {
                    NumberOfDays = 90
                }
            };

            //Get Azure DevOps project details
            AzureDevOpsSettings azureDevOpsSetting;

            foreach (AzureDevOpsSettings item in azureDevOpsSettings)
            {
                if (item.RowKey == rowKey)
                {
                    azureDevOpsSetting = item;

                    DeploymentFrequencyModel deploymentFrequencyModel = await serviceApiClient.GetAzureDevOpsDeploymentFrequency(getSampleData, patToken,
                                                                                                                                 item.Organization, item.Project, item.Branch, item.BuildName, item.BuildId,
                                                                                                                                 numberOfDays, maxNumberOfItems, useCache);

                    LeadTimeForChangesModel leadTimeForChangesModel = await serviceApiClient.GetAzureDevOpsLeadTimeForChanges(getSampleData, patToken,
                                                                                                                              item.Organization, item.Project, item.Repository, item.Branch, item.BuildName, item.BuildId,
                                                                                                                              numberOfDays, maxNumberOfItems, useCache);

                    MeanTimeToRestoreModel meanTimeToRestoreModel = await serviceApiClient.GetAzureMeanTimeToRestore(getSampleData,
                                                                                                                     DevOpsPlatform.AzureDevOps, item.ProductionResourceGroup, numberOfDays, maxNumberOfItems);

                    ChangeFailureRateModel changeFailureRateModel = await serviceApiClient.GetChangeFailureRate(getSampleData,
                                                                                                                DevOpsPlatform.AzureDevOps, item.Organization, item.Project, item.Branch, item.BuildName,
                                                                                                                numberOfDays, maxNumberOfItems);

                    deploymentFrequencyModel.IsProjectView = true;
                    leadTimeForChangesModel.IsProjectView  = true;
                    meanTimeToRestoreModel.IsProjectView   = true;
                    changeFailureRateModel.IsProjectView   = true;
                    model = new ProjectViewModel
                    {
                        RowKey               = item.RowKey,
                        ProjectName          = item.Project,
                        TargetDevOpsPlatform = DevOpsPlatform.AzureDevOps,
                        DeploymentFrequency  = deploymentFrequencyModel,
                        LeadTimeForChanges   = leadTimeForChangesModel,
                        MeanTimeToRestore    = meanTimeToRestoreModel,
                        ChangeFailureRate    = changeFailureRateModel,
                        NumberOfDays         = new SelectList(numberOfDaysList, "NumberOfDays", "NumberOfDays"),
                        NumberOfDaysSelected = numberOfDays
                    };
                }
            }
            //Get GitHub project details
            GitHubSettings githubSetting;

            foreach (GitHubSettings item in githubSettings)
            {
                if (item.RowKey == rowKey)
                {
                    githubSetting = item;

                    DeploymentFrequencyModel deploymentFrequencyModel = await serviceApiClient.GetGitHubDeploymentFrequency(getSampleData, clientId, clientSecret,
                                                                                                                            item.Owner, item.Repo, item.Branch, item.WorkflowName, item.WorkflowId,
                                                                                                                            numberOfDays, maxNumberOfItems, useCache);

                    LeadTimeForChangesModel leadTimeForChangesModel = await serviceApiClient.GetGitHubLeadTimeForChanges(getSampleData, clientId, clientSecret,
                                                                                                                         item.Owner, item.Repo, item.Branch, item.WorkflowName, item.WorkflowId,
                                                                                                                         numberOfDays, maxNumberOfItems, useCache);

                    MeanTimeToRestoreModel meanTimeToRestoreModel = await serviceApiClient.GetAzureMeanTimeToRestore(getSampleData,
                                                                                                                     DevOpsPlatform.GitHub, item.ProductionResourceGroup, numberOfDays, maxNumberOfItems);

                    ChangeFailureRateModel changeFailureRateModel = await serviceApiClient.GetChangeFailureRate(getSampleData,
                                                                                                                DevOpsPlatform.GitHub, item.Owner, item.Repo, item.Branch, item.WorkflowName,
                                                                                                                numberOfDays, maxNumberOfItems);

                    deploymentFrequencyModel.IsProjectView = true;
                    leadTimeForChangesModel.IsProjectView  = true;
                    meanTimeToRestoreModel.IsProjectView   = true;
                    changeFailureRateModel.IsProjectView   = true;
                    model = new ProjectViewModel
                    {
                        RowKey               = item.RowKey,
                        ProjectName          = item.Repo,
                        TargetDevOpsPlatform = DevOpsPlatform.GitHub,
                        DeploymentFrequency  = deploymentFrequencyModel,
                        LeadTimeForChanges   = leadTimeForChangesModel,
                        MeanTimeToRestore    = meanTimeToRestoreModel,
                        ChangeFailureRate    = changeFailureRateModel,
                        NumberOfDays         = new SelectList(numberOfDaysList, "NumberOfDays", "NumberOfDays"),
                        NumberOfDaysSelected = numberOfDays
                    };
                }
            }

            return(View(model));
        }