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); }
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); }
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); }
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>()); } }