private void ExtractItems(int[] itemSerials)
        {
            for (int i = 0; i < itemSerials.Length; ++i)
            {
                Item item = World.FindItem(itemSerials[i]);

                if (item != null)
                {
                    DesignItem designItem = new DesignItem();
                    designItem.ItemID = (short)item.ItemID;
                    designItem.X      = item.X;
                    designItem.Y      = item.Y;
                    designItem.Z      = item.Z;
                    designItem.Hue    = (short)item.Hue;

                    _items.Add(designItem);
                }
            }

            ExtractResponse resp = null;

            if (_items.Count > 0)
            {
                resp = new ExtractResponse(_items);
            }
            else
            {
                resp = null;
            }

            SendResponse(resp);
        }
Exemplo n.º 2
0
        public async Task <BlobContentInfo> AddObjectToBlob(ExtractResponse extractResponse)
        {
            _logger.LogInformation($"Adding object to blob storage", extractResponse);

            try
            {
                var containerClient = _blobServiceClient.GetBlobContainerClient(_blobStorageConfiguration.ContainerName);
                if (await containerClient.ExistsAsync())
                {
                    var blobClient   = containerClient.GetBlobClient(extractResponse.FilePath);
                    var uploadedBlob = await blobClient.UploadAsync(extractResponse.ExtractResponseStream, overwrite : true);

                    return(uploadedBlob);
                }
                return(null);
            }
            catch (RequestFailedException requestFailedException)
            {
                _logger.LogError(requestFailedException, "The container does not exist");
                throw;
            }
            catch (Exception exc)
            {
                _logger.LogError(exc, "An error occurred while trying to add a blob to the storage");
                throw;
            }
        }
        private async Task <ExtractResponse> GetSearchResults(string splunkQuery, Extract extractDetails)
        {
            var extractResponseMessage = new ExtractResponse {
                ExtractResponseMessage = new HttpResponseMessage()
            };

            try
            {
                if (extractDetails.ExtractRequired)
                {
                    splunkQuery = splunkQuery.Replace("{earliest}", extractDetails.QueryFromDate.ToString("MM/dd/yyyy:HH:mm:ss"));
                    splunkQuery = splunkQuery.Replace("{latest}", extractDetails.QueryToDate.ToString("MM/dd/yyyy:HH:mm:ss"));

                    _splunkClient = await _configurationService.GetSplunkClientConfiguration();

                    if (extractDetails != null)
                    {
                        var client = _httpClientFactory.CreateClient("SplunkApiClient");
                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _splunkClient.ApiToken);
                        var uriBuilder = new UriBuilder
                        {
                            Scheme = "https",
                            Host   = _splunkClient.HostName,
                            Port   = _splunkClient.HostPort,
                            Path   = _splunkClient.BaseUrl,
                            Query  = string.Format(_splunkClient.QueryParameters, HttpUtility.UrlEncode(splunkQuery))
                        };

                        var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri);
                        _logger.LogInformation("Sending download request to Splunk Cloud API", httpRequestMessage);
                        var response = await client.SendAsync(httpRequestMessage);

                        var responseStream = await response.Content.ReadAsStreamAsync();

                        _logger.LogInformation("Reading content response stream from Splunk Cloud API", responseStream);

                        extractResponseMessage.ExtractResponseStream  = responseStream;
                        extractResponseMessage.ExtractResponseMessage = response;
                        extractResponseMessage.ExtractRequestDetails  = extractDetails;
                    }
                }
                else
                {
                    extractResponseMessage.ExtractResponseMessage.ReasonPhrase = "No extract required";
                    extractResponseMessage.ExtractResponseMessage.StatusCode   = System.Net.HttpStatusCode.NoContent;
                }
            }
            catch (OperationCanceledException operationCancelledException)
            {
                extractResponseMessage.ExtractResponseMessage.ReasonPhrase = operationCancelledException.Message;
                extractResponseMessage.ExtractResponseMessage.StatusCode   = System.Net.HttpStatusCode.RequestTimeout;
            }
            catch (Exception ex)
            {
                extractResponseMessage.ExtractResponseMessage.ReasonPhrase = ex.Message;
                extractResponseMessage.ExtractResponseMessage.StatusCode   = System.Net.HttpStatusCode.InternalServerError;
            }
            return(extractResponseMessage);
        }
Exemplo n.º 4
0
        public ExtractResponse Parse(XDocument response)
        {
            var responseHeader = headerResponseParser.Parse(response);

            var contentNode = response.XPathSelectElement("response/str");
            var extractResponse = new ExtractResponse(responseHeader) {
                Content = contentNode != null ? contentNode.Value : null
            };

            return extractResponse;
        }
Exemplo n.º 5
0
        public ExtractResponse Parse(XDocument response)
        {
            var responseHeader = headerResponseParser.Parse(response);

            var contentNode     = response.XPathSelectElement("response/str");
            var extractResponse = new ExtractResponse(responseHeader)
            {
                Content = contentNode != null ? contentNode.Value : null
            };

            return(extractResponse);
        }
Exemplo n.º 6
0
        public ExtractResponse Parse(XDocument response) {
            var responseHeader = headerResponseParser.Parse(response);

            var contentNode = response.Element("response").Element("str");
            var extractResponse = new ExtractResponse(responseHeader) {
                Content = contentNode != null ? contentNode.Value : null
            };

            extractResponse.Metadata = ParseMetadata(response);

            return extractResponse;
        }
Exemplo n.º 7
0
        public ExtractResponse Parse(XDocument response)
        {
            var responseHeader = headerResponseParser.Parse(response);

            var contentNode     = response.Element("response").Element("str");
            var extractResponse = new ExtractResponse(responseHeader)
            {
                Content = contentNode != null ? contentNode.Value : null
            };

            extractResponse.Metadata = ParseMetadata(response);

            return(extractResponse);
        }
Exemplo n.º 8
0
        public static string extract_file_content(Guid applicationId, DocFileInfo file)
        {
            ISolrOperations <SolrDoc> solr = get_solr_operator();

            using (Stream content = new MemoryStream(file.toByteArray(applicationId)))
            {
                ExtractResponse response = solr.Extract(new ExtractParameters(content,
                                                                              PublicMethods.get_random_number().ToString(), PublicMethods.random_string(10))
                {
                    ExtractOnly   = true,
                    ExtractFormat = ExtractFormat.Text
                });

                return(response.Content);
            }
        }
Exemplo n.º 9
0
        // Extract the user selected items
        private void StartExtraction(object state)
        {
            ExtractRequestArgs args = CreateExtractRequestArgs();
            // submit the request to the server
            ExtractResponse resp = Connection.ExtractDesign(args);

            if (resp == null)
            {
                RaiseExtractedEvent(null);
                return;
            }
            else
            {
                _items = resp.Items != null ? resp.Items : new DesignItemCol();
            }

            if (_frozen && _mode == ExtractMode.Area)
            {
                for (int i = 0; i < resp.Rects.Count; ++i)
                {
                    ExtractFrozenItems(resp.Rects[i], resp.Map, _hues);
                }
            }

            if (resp == null || resp.Items.Count == 0)
            {
                RaiseExtractedEvent(null);
            }

            DesignData design = null;

            if (resp.Items.Count > 0)
            {
                design = new DesignData(_name, _category, _subsection);
                design.ImportItems(resp.Items, true, _foundation);
            }

            RaiseExtractedEvent(design);
        }
		private void ExtractItems(int[] itemSerials)
		{
			for(int i=0; i < itemSerials.Length; ++i)
			{
				Item item = World.FindItem(itemSerials[i]);

				if(item != null && !(item is BaseMulti))
				{
					DesignItem designItem = new DesignItem();
					designItem.ItemID = (short)item.ItemID;
					designItem.X = item.X;
					designItem.Y = item.Y;
					designItem.Z = item.Z;
					designItem.Hue = (short)item.Hue;

					_items.Add(designItem);
				}
			}

			ExtractResponse resp = null;

			if(_items.Count > 0)
				resp = new ExtractResponse(_items);
			else
				resp = null;

			SendResponse(resp);
		}
		private void ExtractItems()
		{
			foreach(Rect2D rect in _rects)
			{
				#region MobileSaver
				Rectangle2D realrectangle = new Rectangle2D( rect.TopX, rect.TopY, rect.Width, rect.Height );

				foreach ( Mobile m in _map.GetMobilesInBounds( realrectangle ) )
				{
					if ( m != null && m is BaseCreature )
					{
						int saveflag = MobileSaver.GetSaveFlag( m );

						if ( saveflag > 0 )
						{
							DesignItem designItem = new DesignItem();
							designItem.ItemID = (short)0x1;
							designItem.X = m.X;
							designItem.Y = m.Y;
							designItem.Z = m.Z + saveflag;
							designItem.Hue = (short)m.Hue;
						}
					}
				}
				#endregion

				for ( int x = 0; x <= rect.Width; ++x )
				{
					for ( int y = 0; y <= rect.Height; ++y )
					{
						int tileX = rect.TopX + x;
						int tileY = rect.TopY + y;

						Sector sector = _map.GetSector( tileX, tileY );

						if (_args.NonStatic || _args.Static)
						{
							for ( int i = 0; i < sector.Items.Count; ++i )
							{
								Item item = (Item)sector.Items[i];

								if(!item.Visible)
									continue;
								else if( (!_args.NonStatic) && !(item is Static) )
									continue;
								else if( (!_args.Static) && (item is Static) )
									continue;
								else if( _args.MinZSet && item.Z < _args.MinZ)
									continue;
								else if( _args.MaxZSet && item.Z > _args.MaxZ)
									continue;

								int hue = 0;

								if(_args.ExtractHues)
									hue = item.Hue;

								if ( item.X == tileX && item.Y == tileY && !((item is BaseMulti) || (item is HouseSign)))
								{
									DesignItem designItem = new DesignItem();
									designItem.ItemID = (short)item.ItemID;
									designItem.X = item.X;
									designItem.Y = item.Y;
									designItem.Z = item.Z;
									designItem.Hue = (short)hue;

									_items.Add(designItem);
								}

								// extract multi
								if(item is HouseFoundation)
								{
									HouseFoundation house = (HouseFoundation)item;

									if(_extractedMultiIds.IndexOf(house.Serial.Value) == -1)
										ExtractCustomMulti(house);
								}
							}
						}

					}
				}
			}

			ExtractResponse response = new ExtractResponse(_items);

			if(_args.Frozen)
			{
				response.Rects = _rects;
				response.Map = _map.Name;
			}

			// send response back to the UOAR tool
			SendResponse(response);
		}
        private void ExtractItems()
        {
            foreach (Rect2D rect in _rects)
            {
                for (int x = 0; x <= rect.Width; ++x)
                {
                    for (int y = 0; y <= rect.Height; ++y)
                    {
                        int tileX = rect.TopX + x;
                        int tileY = rect.TopY + y;

                        Sector sector = _map.GetSector(tileX, tileY);

                        if (_args.NonStatic || _args.Static)
                        {
                            for (int i = 0; i < sector.Items.Count; ++i)
                            {
                                Item item = (Item)sector.Items[i];

                                if (!item.Visible)
                                {
                                    continue;
                                }
                                else if ((!_args.NonStatic) && !(item is Static))
                                {
                                    continue;
                                }
                                else if ((!_args.Static) && (item is Static))
                                {
                                    continue;
                                }
                                else if (_args.MinZSet && item.Z < _args.MinZ)
                                {
                                    continue;
                                }
                                else if (_args.MaxZSet && item.Z > _args.MaxZ)
                                {
                                    continue;
                                }

                                int hue = 0;

                                if (_args.ExtractHues)
                                {
                                    hue = item.Hue;
                                }

                                if (item.X == tileX && item.Y == tileY && !((item is BaseMulti) || (item is HouseSign)))
                                {
                                    DesignItem designItem = new DesignItem();
                                    designItem.ItemID = (short)item.ItemID;
                                    designItem.X      = item.X;
                                    designItem.Y      = item.Y;
                                    designItem.Z      = item.Z;
                                    designItem.Hue    = (short)hue;

                                    _items.Add(designItem);
                                }

                                // extract multi
                                if (item is HouseFoundation)
                                {
                                    HouseFoundation house = (HouseFoundation)item;

                                    if (_extractedMultiIds.IndexOf(house.Serial.Value) == -1)
                                    {
                                        ExtractCustomMulti(house);
                                    }
                                }
                            }
                        }
                    }
                }
            }

            ExtractResponse response = new ExtractResponse(_items);

            if (_args.Frozen)
            {
                response.Rects = _rects;
                response.Map   = _map.Name;
            }

            // send response back to the UOAR tool
            SendResponse(response);
        }