Beispiel #1
0
        public ActionResult CreatePaymentType(IdDescriptionViewModel paymentType)
        {
            var npt = new DescriptionRequest()
            {
                Description = paymentType.Description
            };

            try
            {
                var result = false;
                if (paymentType.Id == 0)
                {
                    result = this.PaymentTypeService.CreatePaymentType(npt);
                }

                if (result)
                {
                    return(Redirect("/System/Index"));
                }
                else
                {
                    return(View("../Shared/Error"));
                }
            }
            catch (Exception ex)
            {
                return(View("../Shared/Error"));
            }
        }
Beispiel #2
0
        public ActionResult CreateLaboralUnion(IdDescriptionViewModel laboralUnion)
        {
            var nlu = new DescriptionRequest()
            {
                Description = laboralUnion.Description
            };

            try
            {
                var result = false;
                if (laboralUnion.Id == 0)
                {
                    result = this.LaboralUnionService.CreateLaboralUnion(nlu);
                }

                if (result)
                {
                    return(Redirect("/System/Index"));
                }
                else
                {
                    return(View("../Shared/Error"));
                }
            }
            catch (Exception ex)
            {
                return(View("../Shared/Error"));
            }
        }
Beispiel #3
0
        public IHttpActionResult Post(DescriptionRequest LaboralUnion)
        {
            var result = LaboralUnionService.CreateLaboralUnion(LaboralUnion);

            return(Created <Entidad>("", new Entidad {
                Id = result.Id
            }));
        }
Beispiel #4
0
        public IHttpActionResult Post(DescriptionRequest ManagerPosition)
        {
            var result = ManagerPositionService.CreateManagerPosition(ManagerPosition);

            return(Created <Entidad>("", new Entidad {
                Id = result.Id
            }));
        }
Beispiel #5
0
        public IHttpActionResult Post(DescriptionRequest PaymentType)
        {
            var result = PaymentTypeService.CreatePaymentType(PaymentType);

            return(Created <Entidad>("", new Entidad {
                Id = result.Id
            }));
        }
Beispiel #6
0
        public ManagerPosition CreateManagerPosition(DescriptionRequest ManagerPosition)
        {
            var entity = new ManagerPosition()
            {
                Description = ManagerPosition.Description
            };

            this.ManagerPositionRepository.Insert(entity);
            return(entity);
        }
Beispiel #7
0
        public DomainModel.LaboralUnion CreateLaboralUnion(DescriptionRequest LaboralUnion)
        {
            var entity = new DomainModel.LaboralUnion()
            {
                Description = LaboralUnion.Description
            };

            this.LaboralUnionRepository.Insert(entity);
            return(entity);
        }
Beispiel #8
0
        public PaymentType CreatePaymentType(DescriptionRequest paymentType)
        {
            var entity = new PaymentType()
            {
                Description = paymentType.Description
            };

            this.PaymentTypeRepository.Insert(entity);
            return(entity);
        }
Beispiel #9
0
        private static HttpWebRequest GetHttpWebRequest(Uri uri, DescriptionRequest descriptionRequest)
        {
            bool hasIpAddress = uri.Host == descriptionRequest.domain;

            // Note: may leak DNS requests if the domain name in the
            // uri is not the same in the descriptionRequest
            if (hasIpAddress)
            {
                uri = new UriBuilder(uri)
                {
                    Host = descriptionRequest.ipAddress
                }
            }
Beispiel #10
0
        private async Task <ActionResult> Description(Uri uri, DescriptionRequest descriptionRequest)
        {
            HttpStatusCode statusCode = HttpStatusCode.Unused;
            HtmlDocument   document   = new HtmlDocument();

            var request = GetHttpWebRequest(uri, descriptionRequest);

            try {
                using var response = (HttpWebResponse) await request.GetResponseAsync();

                statusCode = response.StatusCode;

                if (statusCode == HttpStatusCode.OK)
                {
                    var encoding = GetEncoding(response);
                    using var responseStream = response.GetResponseStream();
                    using var reader         = new StreamReader(responseStream, encoding);
                    document.LoadHtml(reader.ReadToEnd());
                }
            }
            catch (WebException we) {
                _logMessageRelay.SendMessage($"{descriptionRequest.domain} => {we.Message}");

                if (we.Response == null)
                {
                    throw;
                }

                var redirectUrl = GetRedirectUrl(we);

                if (!string.IsNullOrEmpty(redirectUrl))
                {
                    return(await Description(new Uri(redirectUrl), descriptionRequest));
                }
            }

            if (statusCode == HttpStatusCode.NotFound && descriptionRequest.protocol != "http")
            {
                descriptionRequest.SetProtocol("http");
                return(await Description(descriptionRequest));
            }

            if (statusCode != HttpStatusCode.OK)
            {
                return(Content(null));
            }

            return(await Description(document, descriptionRequest));
        }
Beispiel #11
0
        public async Task <ActionResult> Description([FromQuery] DescriptionRequest descriptionRequest)
        {
            try {
                // if there is no IP address info in the request, then returns
                // the description stored in the database if there is one
                if (string.IsNullOrEmpty(descriptionRequest.ipAddress))
                {
                    var www = $"www.{descriptionRequest.domain}";

                    LogMessageRelay.DescriptionsStorage.TryGetValue(descriptionRequest.domain, out string description);

                    if (string.IsNullOrEmpty(description) && !descriptionRequest.domain.StartsWith("www."))
                    {
                        LogMessageRelay.DescriptionsStorage.TryGetValue(www, out description);
                    }

                    return(new JsonResult(new Description {
                        icon = LogMessageRelay.GetIcon(descriptionRequest.domain) ?? LogMessageRelay.GetIcon(www),
                        description = description
                    }));
                }

                ServicePointManager.SecurityProtocol
                    = SecurityProtocolType.Tls
                      | SecurityProtocolType.Tls11
                      | SecurityProtocolType.Tls12;

                ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

                return(await Description(new Uri(descriptionRequest.url), descriptionRequest));
            }
            catch (Exception ex) {
                _logMessageRelay.SendMessage($"ERROR: {descriptionRequest.domain} => {ex.Message}");
            }

            return(Content(null));
        }
Beispiel #12
0
        private async Task <ActionResult> Description(HtmlDocument document, DescriptionRequest descriptionRequest)
        {
            var result = new Description();

            if (document == null || string.IsNullOrEmpty(descriptionRequest.url))
            {
                return(Content(null));
            }

            var metaTags = document.DocumentNode.SelectNodes("//meta");

            if (metaTags != null)
            {
                foreach (var tag in metaTags)
                {
                    var name    = tag.Attributes["name"];
                    var content = tag.Attributes["content"];
                    if (name != null && name.Value == "description" && content != null)
                    {
                        result.description = content.Value;
                        break;
                    }
                }
            }

            var linkTags = document.DocumentNode.SelectNodes("//link");

            if (linkTags != null)
            {
                foreach (var tag in linkTags)
                {
                    var rel  = tag.Attributes["rel"];
                    var href = tag.Attributes["href"];
                    if (rel != null && rel.Value.Contains("icon") && href != null)
                    {
                        result.icon = href.Value;
                        if (!result.icon.StartsWith("data:"))
                        {
                            if (result.icon.StartsWith("//"))
                            {
                                result.icon = descriptionRequest.protocol + ":" + result.icon;
                            }
                            else if (result.icon.StartsWith("/"))
                            {
                                result.icon = descriptionRequest.GetBaseUrl() + result.icon;
                            }
                            else if (!result.icon.StartsWith("http"))
                            {
                                result.icon = descriptionRequest.GetBaseUrl() + "/" + result.icon;
                            }
                            result.icon = await DownloadIcon(new Uri(result.icon), descriptionRequest);
                        }
                        break;
                    }
                }
            }

            var titleTag = document.DocumentNode.SelectSingleNode("//title");

            if (titleTag != null)
            {
                result.title = titleTag.InnerHtml;
            }

            // download the icon from the default location if the icon
            // cannot be retrieved from the document
            if (result.icon == null)
            {
                result.icon = await DownloadIcon(new Uri(string.Format("{0}://{1}/favicon.ico",
                                                                       descriptionRequest.protocol, descriptionRequest.domain)), descriptionRequest);
            }

            if (!string.IsNullOrEmpty(result.description))
            {
                await LogMessageRelay.StoreDescription(descriptionRequest.domain, result.description);
            }

            result.bodyText = document.DocumentNode.SelectSingleNode("//body").ToPlainText();

            return(new JsonResult(result));
        }
Beispiel #13
0
 public bool CreatePaymentType(DescriptionRequest paymentType)
 {
     return(IntegrationService.RestCallNoReturn(ConfigurationManager.AppSettings["ApiCoreUrl"], ApiCore.CreatePaymentType, RestMethod.Post, null, paymentType));
 }
Beispiel #14
0
 public bool CreateLaboralUnion(DescriptionRequest laboralUnion)
 {
     return(IntegrationService.RestCallNoReturn(ConfigurationManager.AppSettings["ApiCoreUrl"], ApiCore.CreateLaboralUnion, RestMethod.Post, null, laboralUnion));
 }