Esempio n. 1
0
        private string MakeSearchQuery()
        {
            //Returns a url string for querying the TNS website

            NameValueCollection queryString = System.Web.HttpUtility.ParseQueryString(string.Empty);

            queryString["format"] = "tsv";

            queryString["name"]      = "";
            queryString["name_like"] = "0";
            queryString["isTNS_AT"]  = "yes";
            queryString["public"]    = "all";
            if (SearchClassified)
            {
                queryString["unclassified_at"] = "0";
            }
            else
            {
                queryString["unclassified)at"] = "1";
            }
            if (SearchSN)
            {
                queryString["classified_sne"] = "1";
            }
            else
            {
                queryString["classified_sne"] = "0";
            }
            queryString["ra"]                          = "";
            queryString["decl"]                        = "";
            queryString["radius"]                      = "";
            queryString["coords_unit"]                 = "deg";
            queryString[@"groupid[]"]                  = "null";
            queryString["classifier_groupid[]"]        = "null";
            queryString["objtype[]"]                   = "null";
            queryString["AT_objtype[]"]                = "null";
            queryString["discovered_period_value"]     = SearchBackDays.ToString();
            queryString["discovered_period_units"]     = "days";
            queryString["discovery_mag_min"]           = "";
            queryString["discovery_mag_max"]           = "";
            queryString["internal_name"]               = "";
            queryString["redshift_min"]                = "";
            queryString["redshift_max"]                = "";
            queryString["spectra_count"]               = "";
            queryString["discoverer"]                  = "";
            queryString["classifier"]                  = "";
            queryString["discovery_instrument[]"]      = "";
            queryString["classification_instrument[]"] = "";
            if (IsNGCHosted)
            {
                queryString["hostname"] = "NGC";
            }
            else
            {
                queryString["hostname"] = "";
            }
            queryString["associated_groups[]"] = "null";
            queryString["ext_catid"]           = "";
            queryString["num_page"]            = MaxRecordCount.ToString("0");

            queryString["display[redshift]"]                      = "0";
            queryString["display[hostname]"]                      = "0";
            queryString["display[host_redshift]"]                 = "0";
            queryString["display[source_group_name]"]             = "0";
            queryString["display[classifying_source_group_name]"] = "0";
            queryString["display[discovering_instrument_name]"]   = "0";
            queryString["display[classifing_instrument_name]"]    = "0";
            queryString["display[programs_name]"]                 = "0";
            queryString["display[internal_name]"]                 = "0";
            queryString["display[isTNS_AT]"]                      = "0";
            queryString["display[public]"]         = "0";
            queryString["display[end_pop_period]"] = "0";
            queryString["display[pectra_count]"]   = "0";
            queryString["display[discoverymag]"]   = "0";
            queryString["display[Bdiscmagfilter]"] = "0";
            queryString["display[discoverydate]"]  = "0";
            queryString["display[discoverer ]"]    = "0";
            queryString["display[sources]"]        = "0";
            queryString["display[bibcode]"]        = "0";
            queryString["display[ext_catalogs]"]   = "0";

            return(queryString.ToString()); // Returns "key1=value1&key2=value2", all URL-encoded
        }
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value is IFormFile file)
            {
                var extension = Path.GetExtension(file?.FileName);
                if (!string.IsNullOrEmpty(AllowedExtensions) && !Extensions.Contains(extension.ToLower()))
                {
                    return(new ValidationResult(GetResourceMessage("Must_Be_Csv_Validation_Message")));
                }

                var fileName = Path.GetFileNameWithoutExtension(file?.FileName);
                if (MaxFileNameLength > 0 && fileName.Length > MaxFileNameLength)
                {
                    return(new ValidationResult(string.Format(GetResourceMessage("File_Name_Length_Validation_Message"), MaxFileNameLength)));
                }

                if (MaxFileSize > 0 && file.Length > MaxFileSize)
                {
                    return(new ValidationResult(string.Format(GetResourceMessage("File_Size_Too_Large_Validation_Message"), MaxFileSizeInMb)));
                }

                if (MaxRecordCount > 0)
                {
                    var recordCount = 0;
                    using var reader = new StreamReader(file.OpenReadStream());
                    while (reader.ReadLine() != null)
                    {
                        if (recordCount++ > MaxRecordCount)
                        {
                            return(new ValidationResult(string.Format(GetResourceMessage("File_Max_Record_Count_Validation_Message"), MaxRecordCount.ToString("N0"))));
                        }
                    }
                }
            }
            return(ValidationResult.Success);
        }