public override void Delete(int id) { CheckCredentials(id); Client client = FindEntity(id); ClService.NullifyClient(id); ClientOfferService.NullifyClient(id); Repo.Delete(id); UserService.Delete(client.Id); AccountService.Delete(client.AccountId); }
public override void Delete(int id) { CheckCredentials(id); Trader trader = FindEntity(id); ClService.NullifyTrader(id); OfferService.NullifyTrader(id); Repo.Delete(id); UserService.Delete(trader.Id); AccountService.Delete(trader.AccountId); }
public TraderForClients MarkTrader(int clientId, int traderId, bool?bookMark) { ClientService.CheckCredentials(clientId); if (bookMark == null) { throw new AppException("Missing parameters", 400); } (CommercialLink cl, _, Trader trader) = FindOrCreateCl(clientId, traderId); cl.Status = cl.Status.SetBit(CommercialLink.BOOKMARK, (bool)bookMark); ClService.QuickUpdate(cl.Id, cl); PrivateTrader dto = TraderService.EntityToDTO(cl.Trader); TraderForClients extended = dto.CastAs <TraderForClients>(); extended.CommercialRelation = ClService.GetClStatus(cl); return(extended); }
public IEnumerable <PurchaseDTO> Purchases(int id, string filter) { CheckCredentials(id); Func <PurchaseDTO, bool> test = filter.ToTest <PurchaseDTO>(); TEntity entity = FindEntity(id); CollectCl(entity); entity.CommercialLink.ForEach(cl => ClService.CollectPurchases(cl)); return(entity.CommercialLink.Reduce <CommercialLink, IEnumerable <PurchaseDTO> >( (ret, cl) => ret.Concat( cl.Purchase .Select(purchase => PurchaseService.EntityToDTO(purchase)) .Where(test) ), Enumerable.Empty <PurchaseDTO>() )); }
private (CommercialLink, Client, Trader) FindOrCreateCl(int clientId, int traderId) { Client client = ClientService.FindEntity(clientId); Trader trader = TraderService.FindEntity(traderId); CommercialLink cl = ClService.FindWithBoth(clientId, traderId); if (cl == null) { cl = new CommercialLink() { ClientId = clientId, TraderId = traderId, Status = CommercialLink.DEFAULT_STATUS }; ClService.QuickSave(cl); } return(cl, client, trader); }
public IEnumerable <ClientForTraders> ClientsForTrader(int id, string filter) { TraderService.CheckCredentials(id); Trader trader = TraderService.FindEntity(id); TraderService.CollectCl(trader); var ret = new List <ClientForTraders>(); Func <ClientForTraders, bool> test = filter.ToTest <ClientForTraders>(); foreach (CommercialLink cl in trader.CommercialLink) { PrivateClient privateClient = ClientService.EntityToDTO(cl.Client); ClientForTraders clientForTrader = privateClient.CastAs <ClientForTraders>(); clientForTrader.CommercialRelation = ClService.GetClStatus(cl); if (test(clientForTrader)) { ret.Add(clientForTrader); } } return(ret); }
public IEnumerable <TraderForClients> TradersForClient(int id, string filter) { ClientService.CheckCredentials(id); Client client = ClientService.FindEntity(id); ClientService.CollectCl(client); var ret = new List <TraderForClients>(); Func <TraderForClients, bool> test = filter.ToTest <TraderForClients>(); foreach (CommercialLink cl in client.CommercialLink) { PrivateTrader privateTrader = TraderService.EntityToDTO(cl.Trader); TraderForClients traderForClient = privateTrader.CastAs <TraderForClients>(); traderForClient.CommercialRelation = ClService.GetClStatus(cl); if (test(traderForClient)) { ret.Add(traderForClient); } } return(ret); }
public void CollectCl(TEntity entity) { Repo.Entry(entity).Collection("CommercialLink").Load(); entity.CommercialLink.ForEach(cl => ClService.SeekReferences(cl)); }