public void AssetSearch(
            AssetSearch assetSearch)
        {
            assetSearch.ResponseMessage = new ResponseMessage(HttpStatusCode.InternalServerError);

            string message;

            try
            {
                var continueProcessing = false;

                sapConnect.MakeNonSsoConnection();

                if (sapConnect.r3Connection != null && sapConnect.r3Connection.IsOpen == true)
                {
                    continueProcessing = true;
                    Log.Information("Non SSO Connection established successfully.");
                }
                else
                {
                    message = "Non SSo Connection returned no connection";
                    Log.Error(message);
                    assetSearch.ResponseMessage = new ResponseMessage(HttpStatusCode.InternalServerError, message);
                }

                if (continueProcessing)
                {
                    new bapiCalls().SapAssetSearch(sapConnect.r3Connection, assetSearch);
                }
            }
            catch (Exception exception)
            {
                Log.Error(exception, "Error Getting Non SSO Ticket: exception");
            }
        }
Пример #2
0
        /// <summary>
        /// Retrieves a list of assets matching the given criteria. This operation does not support pagination.
        /// </summary>
        /// <param name="query">Search query.</param>
        /// <param name="token">Optional cancellation token.</param>
        /// <returns>List of assets matching given criteria.</returns>
        public async Task <IEnumerable <Asset> > SearchAsync(AssetSearch query, CancellationToken token = default)
        {
            if (query is null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var req = Assets.search <IEnumerable <Asset> >(query);

            return(await RunAsync(req, token).ConfigureAwait(false));
        }
Пример #3
0
        public void AsssetSearchShoudReturSearchResult()
        {
            //Arrange
            string searchName     = "Test";
            string searchScope    = "Video";
            string expectedResult = "TestVideo";
            var    assetSearch    = new AssetSearch();

            //Act
            var result = assetSearch.SearchAsset(searchName, searchScope);

            //Assert
            Assert.AreEqual(expectedResult, result);
        }
Пример #4
0
        public List <AssetSearch> GetAllAssetsList()
        {
            List <AssetSearch> assetListSearch = new List <AssetSearch>();

            try
            {
                MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection();
                string connectionstring = "server=127.0.0.1;uid=root;pwd=root;database=cmdb";

                conn = new MySql.Data.MySqlClient.MySqlConnection();
                conn.ConnectionString = connectionstring;
                MySqlCommand cmd = conn.CreateCommand();
                conn.Open();
                string query = "select * from cmdb_view";
                cmd.CommandText = query;
                MySqlDataReader dataReader = cmd.ExecuteReader();
                while (dataReader.Read())
                {
                    AssetSearch objAssetSearch = new AssetSearch();
                    objAssetSearch.assetId = Convert.ToInt32(dataReader[0]);

                    objAssetSearch.assetCode = Convert.ToString(dataReader[1]);
                    objAssetSearch.assetName = Convert.ToString(dataReader[2]);
                    objAssetSearch.shortName = Convert.ToString(dataReader[3]);
                    //objAssetSearch.description = Convert.ToString(dataReader[4]);
                    objAssetSearch.serialNo       = Convert.ToString(dataReader[4]);
                    objAssetSearch.modelNo        = Convert.ToString(dataReader[5]).ToString();
                    objAssetSearch.warrantyPeriod = Convert.ToInt32(dataReader[6]);
                    objAssetSearch.vendorName     = Convert.ToString(dataReader[7]);
                    objAssetSearch.vendorContact  = Convert.ToString(dataReader[8]);
                    objAssetSearch.vendorEmail    = Convert.ToString(dataReader[9]);
                    objAssetSearch.createdDate    = Convert.ToDateTime(dataReader[10]);
                    // objAssetSearch.isActive = (Convert.ToString(dataReader[12])) == "" || (Convert.ToString(dataReader[12])) == "0" || (Convert.ToString(dataReader[12])) == null ? false : true;
                    //objAssetSearch.isDeleted = (Convert.ToString(dataReader[13])) == "" || (Convert.ToString(dataReader[13])) == "0" || (Convert.ToString(dataReader[13])) == null ? false : true;
                    objAssetSearch.isconfig   = (Convert.ToString(dataReader[11])) == "" || (Convert.ToString(dataReader[11])) == "0" || (Convert.ToString(dataReader[11])) == null ? false : true;
                    objAssetSearch.isAssigned = (Convert.ToString(dataReader[12])) == "" || (Convert.ToString(dataReader[12])) == "0" || (Convert.ToString(dataReader[12])) == null ? false : true;
                    objAssetSearch.empId      = Convert.ToString(dataReader[13]).ToString(null);
                    objAssetSearch.empName    = Convert.ToString(dataReader[14]).ToString(null);
                    objAssetSearch.cubicalNo  = Convert.ToInt32(dataReader[15] == DBNull.Value ? 0 : Convert.ToInt32(dataReader[15]));
                    objAssetSearch.contactNo  = Convert.ToString(dataReader[16]).ToString(null);
                    objAssetSearch.emailId    = Convert.ToString(dataReader[17]).ToString(null);

                    assetListSearch.Add(objAssetSearch);
                }
                conn.Close();
            }
            catch (Exception ex) { }
            return(assetListSearch);
        }
Пример #5
0
        public async Task AssetSearchReturnsExpectedNumberOfAssetsAsync()
        {
            // Arrange
            var numOfAssets = 10;
            var query       = new AssetSearch()
            {
                Limit  = numOfAssets,
                Search = new Search()
                {
                    Name = "23"
                }
            };

            // Act
            var res = await ReadClient.Assets.SearchAsync(query);

            // Assert
            var resCount = res.Count();

            Assert.True(numOfAssets == resCount, $"Expected {query.Limit} assets but got {resCount}");
        }
Пример #6
0
    public async Task Test_Find()
    {
        #region Arrange
        var tmpCostCenter = await FortnoxClient.CostCenterConnector.CreateAsync(new CostCenter()
        {
            Code = "TMP", Description = "TmpCostCenter"
        });

        var tmpAssetType = await FortnoxClient.AssetTypesConnector.CreateAsync(new AssetType()
        {
            Description = "TmpAssetType", Type = "1", Number = TestUtils.RandomString(3), AccountAssetId = 1150, AccountDepreciationId = 7824, AccountValueLossId = 1159
        });

        #endregion Arrange

        var testKeyMark = TestUtils.RandomString();

        var connector = FortnoxClient.AssetConnector;
        var newAsset  = new Asset()
        {
            Description       = testKeyMark,
            AcquisitionDate   = new DateTime(2011, 1, 1),
            AcquisitionStart  = new DateTime(2011, 2, 1),
            AcquisitionValue  = 500,
            DepreciationFinal = new DateTime(2012, 1, 1),
            Department        = "Some Department",
            Notes             = "Some notes",
            Group             = "Some Group",
            Room       = "Some room",
            Placement  = "Right here",
            CostCenter = tmpCostCenter.Code,
            TypeId     = tmpAssetType.Id
        };

        //Add entries
        for (var i = 0; i < 5; i++)
        {
            newAsset.Number = TestUtils.RandomString();
            await connector.CreateAsync(newAsset);
        }

        //Apply base test filter
        var searchSettings = new AssetSearch();
        searchSettings.Description = testKeyMark;
        var fullCollection = await connector.FindAsync(searchSettings);

        Assert.AreEqual(5, fullCollection.TotalResources);
        Assert.AreEqual(5, fullCollection.Entities.Count);
        Assert.AreEqual(1, fullCollection.TotalPages);

        //Apply Limit
        searchSettings.Limit = 2;
        var limitedCollection = await connector.FindAsync(searchSettings);

        Assert.AreEqual(5, limitedCollection.TotalResources);
        Assert.AreEqual(2, limitedCollection.Entities.Count);
        Assert.AreEqual(3, limitedCollection.TotalPages);

        //Delete entries
        foreach (var entry in fullCollection.Entities)
        {
            await connector.DeleteAsync(entry.Id);
        }

        #region Delete arranged resources
        await FortnoxClient.CostCenterConnector.DeleteAsync(tmpCostCenter.Code);

        await FortnoxClient.AssetTypesConnector.DeleteAsync(tmpAssetType.Id);

        #endregion Delete arranged resources
    }
 private bool ShouldSearchAsset(AssetSearch assetToCheck)
 {
     return((_currentSearchDestinations & (int)assetToCheck) != 0);
 }
Пример #8
0
        // POST api/searchasset
        public HttpResponseMessage Post(
            [FromBody] AssetSearch assetSearch,
            bool?sso         = null,
            bool?impersonate = null)
        {
            var result = new HttpResponseMessage(HttpStatusCode.InternalServerError);

            try
            {
                if (assetSearch == null)
                {
                    assetSearch =
                        new AssetSearch("",
                                        "",
                                        "",
                                        null,
                                        new ResponseMessage(
                                            HttpStatusCode.BadRequest,
                                            "Asset search web service call missing BODY parameters"),
                                        null);
                }
                else
                {
                    Log.Information(
                        "Call received - parameters: {params}",
                        JsonConvert.SerializeObject(assetSearch));

                    SapAccess sapAccess = null;
                    try
                    {
                        sapAccess = new SapAccess();
                        this.Request.RegisterForDispose(sapAccess);

                        var ssoFlag         = sso ?? false;
                        var impersonateFlag = impersonate ?? false;

                        sapAccess
                        .AssetSearch(
                            assetSearch);
                    }
                    finally
                    {
                        sapAccess?.Dispose();
                    }
                }
            }
            catch (Exception exception)
            {
                Log.Error(exception, "Error inside searchasset");
                assetSearch.ResponseMessage =
                    new ResponseMessage(HttpStatusCode.InternalServerError,
                                        exception.Message);
            }
            finally
            {
            }

            result.Content =
                new StringContent(
                    JsonConvert.SerializeObject(assetSearch),
                    System.Text.Encoding.UTF8,
                    "application/json");
            result.StatusCode = assetSearch.ResponseMessage.responseCode;
            Log.Information(
                "Response - parameters: {params}",
                JsonConvert.SerializeObject(assetSearch));
            return(result);
        }
Пример #9
0
        protected AssetResult ListAssets(GridModel model, AssetSearch search)
        {
            var response = new AssetResult();

            ExecuteReader("r_Asset_List",
                          delegate(SqlCommand sqlCommand)
            {
                if (search != null)
                {
                    if (!string.IsNullOrEmpty(search.Id))
                    {
                        sqlCommand.Parameters.AddWithValue("@Id", search.Id);
                    }

                    if (search.Status != 0)
                    {
                        sqlCommand.Parameters.AddWithValue("@status", search.Status);
                    }
                    if (!string.IsNullOrEmpty(search.Name))
                    {
                        sqlCommand.Parameters.AddWithValue("@name", search.Name);
                    }
                    if (!string.IsNullOrEmpty(search.CreateDate))
                    {
                        sqlCommand.Parameters.AddWithValue("@From", DateTime.Parse(search.CreateDate));
                        sqlCommand.Parameters.AddWithValue("@To", DateTime.Parse(search.CreateDate).AddHours(23).AddMinutes(59));
                    }
                    if (!string.IsNullOrEmpty(search.TagId))
                    {
                        sqlCommand.Parameters.AddWithValue("@TagId", search.TagId);
                    }
                    if (model.iSortCol_0 != 0)
                    {
                        model.iSortCol_0--;
                    }
                    switch (model.SortingDirection)
                    {
                    case SortDirection.Undefiened:
                        sqlCommand.Parameters.AddWithValue("@sortColumn", 4);
                        sqlCommand.Parameters.AddWithValue("@SortDirection", 1);
                        break;

                    case SortDirection.Ascending:
                        sqlCommand.Parameters.AddWithValue("@sortColumn", model.iSortCol_0);
                        sqlCommand.Parameters.AddWithValue("@SortDirection", 0);
                        break;

                    case SortDirection.Descending:
                        sqlCommand.Parameters.AddWithValue("@sortColumn", model.iSortCol_0);
                        sqlCommand.Parameters.AddWithValue("@SortDirection", 1);
                        break;

                    default:
                        break;
                    }
                }
                var pageSize   = model == null ? 10 : ((model.iDisplayLength == 0) ? 10 : model.iDisplayLength);
                var PageNumber = model == null ? 1 : ((model.iDisplayStart == 0) ? 1 : model.iDisplayStart) / pageSize + 1;
                sqlCommand.Parameters.AddWithValue("@pageSize", pageSize);
                sqlCommand.Parameters.AddWithValue("@PageNumber", PageNumber);
            },
                          delegate(SqlDataReader reader)
            {
                while (reader.Read())
                {
                    response.Assets.Add(new AssetListModel
                    {
                        Id           = reader.GetInt32(0),
                        AID          = reader.GetString(1),
                        Name         = reader.GetString(2),
                        Status       = (AssetStatus)reader.GetInt32(3),
                        TagId        = reader.IsDBNull(4) ? string.Empty : reader.GetString(4),
                        CreateDate   = reader.GetDateTime(5),
                        ImagePath    = reader.IsDBNull(6)?string.Empty: reader.GetString(6),
                        Category     = reader.GetString(7),
                        Department   = reader.IsDBNull(8) ? string.Empty : reader.GetString(8),
                        Type         = reader.GetString(9),
                        Cost         = reader.GetDecimal(10),
                        PurchaseDate = reader.IsDBNull(11) ? DateTime.MinValue : reader.GetDateTime(11),
                        Location     = reader.IsDBNull(12) ? string.Empty : reader.GetString(12)
                    });
                }
                if (reader.NextResult() && reader.Read())
                {
                    response.RowsCount = reader.GetInt32(0);
                }
            });
            return(response);
        }
Пример #10
0
 /// <summary>
 /// Asynchronously retrieve a list of assets matching the given criteria. This operation does not support
 /// pagination.
 /// </summary>
 /// <param name="query">Search query.</param>
 /// <param name="token">Optional cancellation token.</param>
 /// <returns>Sequence of assets matching given criteria.</returns>
 public async Task <IEnumerable <Asset> > SearchAsync(AssetSearch query, CancellationToken token = default)
 {
     return(await SearchAsync <Asset>(query, token).ConfigureAwait(false));
 }