Esempio n. 1
0
        public HttpResponseMessage Get([FromUri] string R = null, [FromUri] string C = null, [FromUri] string F = null, [FromUri] string Z = "0", [FromUri] String token = "")
        {
            RequestMisc rm = new RequestMisc(this.Request, "SkyserverWS.ImgCutout.getJpegCodec");

            this.Request.RequestUri = rm.AddTaskNameToURI(this.Request.RequestUri);
            LoggedInfo ActivityInfo = rm.ActivityInfo;

            HttpResponseMessage resp = new HttpResponseMessage();

            Validation valid = new Validation();

            if (R == null || C == null || F == null)
            {
                throw new ArgumentException("There are not enough parameters to process your request. Enter position (ra,dec) values properly. ");
            }
            if (valid.ValidateInput(R, C, F, Z))
            {
                ImgCutout.ImgCutout img = new ImgCutout.ImgCutout();
                resp.Content = new ByteArrayContent(img.GetJpegImg(valid.getRun(), valid.getCamcol(), valid.getField(), valid.getZoom(), token));
                resp.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
                if (String.IsNullOrEmpty(img.errorMessage_Generic) && String.IsNullOrEmpty(img.errorMessage_OutOfFootprint))
                {
                    resp.StatusCode = HttpStatusCode.OK;
                }
                else
                {
                    if (!String.IsNullOrEmpty(img.errorMessage_Generic))
                    {
                        resp.StatusCode   = HttpStatusCode.InternalServerError;
                        resp.ReasonPhrase = "INTERNAL SERVER ERROR. " + img.errorMessage_Generic.Replace("\n", ". ");
                    }
                    else if (!String.IsNullOrEmpty(img.errorMessage_OutOfFootprint))
                    {
                        resp.StatusCode   = HttpStatusCode.NotFound;
                        resp.ReasonPhrase = "NOT FOUND.\n" + img.errorMessage_OutOfFootprint;
                    }
                    else
                    {
                        resp.StatusCode = HttpStatusCode.InternalServerError;
                    }
                }
                //logging
                SciserverLogging logger = new SciserverLogging();
                ActivityInfo.Message             = rm.GetLoggedMessage("");
                ActivityInfo.DoShowInUserHistory = false;
                logger.LogActivity(ActivityInfo, "SkyserverMessage");

                return(resp);
            }

            throw new Exception("Request is not processed, Enter parameters properly.  ra must be in [0,360], dec must be in [-90,90], scale must be in [0.015, 60.0], height and width must be in [64,2048].");
        }
Esempio n. 2
0
        public HttpResponseMessage Get([FromUri] string ra = null, [FromUri] string dec = null, [FromUri] string scale = "0.396127",
                                       [FromUri] int width = 128, [FromUri] int height  = 128, [FromUri] String opt    = "", [FromUri] String query = "", [FromUri] String clientIP = "", [FromUri] String token = "", [FromUri] String TaskName = "")
        {
            RequestMisc rm = new RequestMisc(this.Request, "SkyserverWS.ImgCutout.getJpeg");

            this.Request.RequestUri = rm.AddTaskNameToURI(this.Request.RequestUri);
            LoggedInfo ActivityInfo = rm.ActivityInfo;
            string     ClientIP     = ActivityInfo.ClientIP;

            HttpResponseMessage resp = new HttpResponseMessage();

            Validation valid = new Validation();

            if (ra == null || dec == null || scale == null)
            {
                throw new ArgumentException("There are not enough parameters to process your request. Enter position (ra,dec) values properly.ra must be in [0,360], dec must be in [-90,90], scale must be in [0.015, 60.0]. ");
            }
            if (valid.ValidateInput(ra, dec, scale))
            {
                ImgCutout.ImgCutout img = new ImgCutout.ImgCutout();

                if (query == null)
                {
                    query = "";
                }
                /// This part can be changed later if we change internal ImgCutout code.
                if (opt != null)
                {
                    opt = "C" + opt;
                }
                else
                {
                    opt = "C";
                }

                resp.Content = new ByteArrayContent(img.GetJpeg(valid.getRa(), valid.getDec(), valid.getScale(), width, height, opt, query, "", "", token, ClientIP));
                resp.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
                if (String.IsNullOrEmpty(img.errorMessage_Generic) && String.IsNullOrEmpty(img.errorMessage_OutOfFootprint))
                {
                    resp.StatusCode = HttpStatusCode.OK;
                }
                else
                {
                    if (!String.IsNullOrEmpty(img.errorMessage_Generic))
                    {
                        resp.StatusCode   = HttpStatusCode.InternalServerError;
                        resp.ReasonPhrase = "INTERNAL SERVER ERROR. " + img.errorMessage_Generic.Replace("\n", ". ");
                    }
                    else if (!String.IsNullOrEmpty(img.errorMessage_OutOfFootprint))
                    {
                        resp.StatusCode   = HttpStatusCode.NotFound;
                        resp.ReasonPhrase = "NOT FOUND. " + img.errorMessage_OutOfFootprint;
                    }
                    else
                    {
                        resp.StatusCode = HttpStatusCode.InternalServerError;
                    }
                }
                //logging
                SciserverLogging logger = new SciserverLogging();
                ActivityInfo.Message = rm.GetLoggedMessage(query);
                logger.LogActivity(ActivityInfo, "SkyserverMessage");

                return(resp);
            }

            throw new Exception("Request is not processed, Enter parameters properly.  ra must be in [0,360], dec must be in [-90,90], scale must be in [0.015, 60.0], height and width must be in [64,2048].");
        }