Esempio n. 1
0
        public override Task <GetSuppliersResponse> GetSuppliers(GetSuppliersRequest request, ServerCallContext context)
        {
            var suppliers = _supplierDao.GetSuppliers(pageIndex: request.PageIndex, pageSize: request.PageSize, supplierRegionId: request.SupplierRegionId);
            var response  = new GetSuppliersResponse();

            response.Suppliers.AddRange(suppliers.List.Select(s => _mapper.Map <SupplierDTO>(s)));
            response.TotalCount = suppliers.TotalCount;
            return(Task.FromResult(response));
        }
        /// <summary>
        ///     Request a list of suppliers from the server.
        /// </summary>
        /// <param name="request">
        ///     Request parameters.
        /// </param>
        /// <returns>
        ///     Returns a <see cref="GetSuppliersResponse"/> object with the results of the operation
        /// </returns>
        public GetSuppliersResponse GetSuppliers(GetSuppliersRequest request)
        {
            GetSuppliersResponse responseObject = new GetSuppliersResponse()
            {
                ErrorCode = ResponseErrorCode.NoError
            };

            using (IDataAccess dataAccess = GetDataAccessObject())
            {
                DateTime serverUtcTime = dataAccess.GetDatabaseServerUtcTime();
                TimeSpan clientServerTimeDifference = CalculateServerClientTimeDifference(serverUtcTime, request.ClientUtcTime);
                #if DEBUG
                // Some logging for debug puposes.
                Utility.EventLogger.Log
                (
                    LogLevel.Debug, String.Format
                    (
                        "Server UTC time is [{0}]   Client UTC time is [{1}]   Time difference (ms) is [{2}]",
                        serverUtcTime.ToString("yyyy-MM-dd HH:mm:ss.ffff"),
                        request.ClientUtcTime.ToString("yyyy-MM-dd HH:mm:ss.ffff"),
                        clientServerTimeDifference.Milliseconds
                    )
                );
                #endif // DEBUG

                using (Mutex accessMutex = new Mutex(false, Utilities.Utility.SupplierMutexName))
                {
                    // Prevent other instance from accessing the table until we are done.
                    accessMutex.WaitOne();
                    try
                    {
                        try
                        {
                            responseObject.Suppliers = new List <SupplierDTO>(dataAccess.GetSuppliers());
                            responseObject.Suppliers.ForEach
                            (
                                u => u.LastUpdateTime = AdjustServerUtcTimeToClientTime(u.LastUpdateTime, clientServerTimeDifference)
                            );
                        }
                        catch (Exception ex)
                        {
                            Utility.EventLogger.Log(LogLevel.Error, ex);

                            responseObject.ErrorCode        = ResponseErrorCode.ExceptionCaught;
                            responseObject.ErrorDescription = ex.Message;
                        }
                    }
                    finally
                    {
                        accessMutex.ReleaseMutex();
                    }
                }
            }

            return(responseObject);
        }
Esempio n. 3
0
        public GetSuppliersResponse GetSuppliersByCriteria(GetSuppliersRequest request)
        {
            GetSuppliersResponse      response = new GetSuppliersResponse();
            SupplierBusinessComponent bc       = DependencyInjectionHelper.GetSupplierBusinessComponent();

            IQueryable <Supplier> suppliers = bc.GetSuppliersByCriteria(request.SearchType, request.Name);

            response.Suppliers = SupplierAdapter.SuppliersToDtos(suppliers);

            return(response);
        }
Esempio n. 4
0
        public GetSuppliersResponse GetSuppliersByProductId(GetSuppliersRequest request)
        {
            var bc        = DependencyInjectionHelper.GetBusinessComponent <SupplierBusinessComponent>();
            var suppliers = bc.GetSuppliersByProductId(request.ProductId);

            var response = new GetSuppliersResponse();

            response.Suppliers = SupplierAdapter.SuppliersToDtos(suppliers);

            return(response);
        }
Esempio n. 5
0
 private IList <SupplierDTO> GetSuppliers(SupplierSearchType searchType, string name)
 {
     try
     {
         GetSuppliersRequest request = new GetSuppliersRequest();
         request.SearchType = searchType;
         request.Name       = name;
         GetSuppliersResponse response = Service.GetSuppliersByCriteria(request);
         return(response.Suppliers);
     }
     catch (Exception ex)
     {
         if (ExceptionPolicy.HandleException(ex, "PL Policy"))
         {
             throw;
         }
         return(new List <SupplierDTO>());
     }
 }