public ProductCreditContract[] FindProfileCredit(ProfileCreditDiscriminator d) { try { using (var records = RepositoryFactory.GetProfileCredit()) { records.Discriminator = d; return(records.Select(r => new ProductCreditContract() { ProfileCredit = r, Product = (r as DB.ProfileCredit).Product }).ToArray()); } } catch (Exception ex) { HandleMyException(ex); return(null); } }
/// <summary> /// /// </summary> /// <param name="d"></param> /// <param name="l"></param> /// <param name="c"></param> /// <param name="trnCntByProduct">Max count of transactions to select by each product</param> /// <returns></returns> public ProductAndTransactionsContract[] FindProductLastTransactions(ProductDiscriminator d, LocationDiscriminator l, ProfileCreditDiscriminator c, int trnCntByProduct) { try { using (var records = RepositoryFactory.GetProduct()) { records.Discriminator = d; records.LocationFilter = l; records.ProfileCreditFilter = c; return(records.Select(r => new ProductAndTransactionsContract() { Product = r, CreditTransactions = (r as DB.Product).CreditTransactions.OrderByDescending(x => x.TransactionTime).Take(trnCntByProduct) }).ToArray()); } } catch (Exception ex) { HandleMyException(ex); return(null); } }
/// <summary> /// /// </summary> /// <param name="d"></param> /// <param name="l"></param> /// <param name="c"></param> /// <param name="userId">User id that will be used to remove products known for the user</param> /// <returns></returns> public ProductContract[] FindProduct(ProductDiscriminator d, LocationDiscriminator l, ProfileCreditDiscriminator c, int userId) { try { using (var records = RepositoryFactory.GetProduct()) { records.Discriminator = d; records.LocationFilter = l; records.ProfileCreditFilter = c; records.UserIdForExcludingAlreadyUsedProducts = userId; return(records.Select(r => new ProductContract() { Product = r }).ToArray()); } } catch (Exception ex) { HandleMyException(ex); return(null); } }