Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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>()
                       ));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 public void CollectCl(TEntity entity)
 {
     Repo.Entry(entity).Collection("CommercialLink").Load();
     entity.CommercialLink.ForEach(cl => ClService.SeekReferences(cl));
 }