Ejemplo n.º 1
0
        public TransactionDetails Update(TransactionDetails transaction)
        {
            var entity = Transactions.Single(x => x.Id == transaction.Id);

            entity.Amount                = transaction.Amount;
            entity.AccountNumber         = transaction.AccountNumber;
            entity.TransactionIdentifier = transaction.TransactionIdentifier;
            entity.Date    = transaction.Date;
            entity.Partner = transaction.Partner is null ? null:
                             Partners.SingleOrDefault(x => x.Id == transaction.Partner.Id);
            entity.Condominium = transaction.Condominium is null ? null:
                                 Condominiums.SingleOrDefault(x => x.Id == transaction.Condominium.Id);

            DbContext.RemoveRange(DbContext.TransactionTags.Where(x => x.Transaction == entity));
            entity.Tags = transaction.Tags
                          .Select(x => new TransactionTag()
            {
                Label = x.Label, Ratio = x.Rate
            })
                          .ToList();
            DbContext.AddRange(entity.Tags);
            DbContext.SaveChanges();

            return(entity.ToModelDetails());
        }
Ejemplo n.º 2
0
        public BillDetails CreateBill(BillDetails bill)
        {
            var entity = new Entities.Bill()
            {
                Created = bill.Created,
                Partner = bill.Partner != null?Partners
                          .Single(x => x.Id == bill.Partner.Id) : null,
                              Condominium = bill.Condominium != null?Condominiums
                                            .Single(x => x.Id == bill.Condominium.Id) : null,
                                                Description     = bill.Description,
                                                Serial          = bill.Serial,
                                                PaymentDeadline = bill.PaymentDeadline,
                                                Done            = bill.Done,
                                                Items           = bill.Items
                                                                  .Select(x => new Entities.BillItem()
                {
                    Description = x.Description, Price = x.Price
                })
                                                                  .ToList(),
                                                Tags = bill.Tags
                                                       .Select(x => new BillTag()
                {
                    Label = x.Label, Ratio = x.Rate
                })
                                                       .ToList()
            };

            DbContext.Add(entity);
            DbContext.Add(entity.Tags);
            DbContext.Add(entity.Items);
            DbContext.SaveChanges();

            return(entity.ToModelWithItems());
        }
Ejemplo n.º 3
0
 public IEnumerable <Condominium> List(CondominiumSearchParams search)
 {
     return(Condominiums
            .ApplySearch(search)
            .Select(x => x.ToModel())
            .ToList());
 }
Ejemplo n.º 4
0
        public TransactionDetails Create(TransactionDetails transaction)
        {
            var entity = new Entities.Transaction();

            if (transaction.Partner != null)
            {
                entity.Partner = Partners
                                 .Single(x => x.Id == transaction.Partner.Id);
            }

            if (transaction.Condominium != null)
            {
                entity.Condominium = Condominiums
                                     .Single(x => x.Id == transaction.Condominium.Id);
            }
            entity.Tags = transaction.Tags
                          .Select(x => new TransactionTag()
            {
                Label = x.Label, Ratio = x.Rate
            })
                          .ToList();
            DbContext.AddRange(entity.Tags);
            DbContext.Add(transaction);
            DbContext.SaveChanges();

            return(entity.ToModelDetails());
        }
Ejemplo n.º 5
0
 public List <PartnerCondominiumBalance> PartnerBalances(int page)
 {
     return(Condominiums.SelectMany(x => x.Residents, (condominium, partner) =>
                                    new PartnerCondominiumBalance()
     {
         Partner = partner.ToModel(),
         Condominium = condominium.ToModel(),
         Balance = new Balance()
         {
             BillsFromPartner =
                 partner.Bills.Where(bill => bill.Condominium.Id == condominium.Id)
                 .Where(bill => !bill.IssuedByCondominium)
                 .Sum(bill => bill.Items.Sum(item => item.Price)),
             BillsToPartner =
                 partner.Bills.Where(bill => bill.Condominium.Id == condominium.Id)
                 .Where(bill => bill.IssuedByCondominium)
                 .Sum(bill => bill.Items.Sum(x => x.Price)),
             TransactionFromPartner =
                 partner.Transactions.Where(bill => bill.Condominium.Id == condominium.Id)
                 .Where(transaction => transaction.IsReceived)
                 .Sum(transaction => transaction.Amount),
             TransactionToPartner =
                 partner.Transactions.Where(bill => bill.Condominium.Id == condominium.Id)
                 .Where(transaction => !transaction.IsReceived)
                 .Sum(transaction => transaction.Amount)
         }
     })
            .OrderByDescending(x => x.Balance.BillsToPartner - x.Balance.TransactionFromPartner)
            .Skip(Utils.PageSize * page)
            .Take(Utils.PageSize + 1)
            .ToList());
 }
Ejemplo n.º 6
0
        public Condominium Update(Condominium condominium)
        {
            var entity = Condominiums
                         .First(x => x.Id == condominium.Id);

            entity.Address = Entities.Address.FromModel(condominium.Address);
            entity.Name    = condominium.Name;
            DbContext.SaveChanges();
            return(entity.ToModel());
        }
Ejemplo n.º 7
0
        public Partner Update(PartnerDetails partner)
        {
            var p = Partners
                    .Include(x => x.ResidentOf)
                    .First(x => x.Id == partner.Id);

            p.Address.UpdateFromModel(partner.Address);
            DbContext.Add(p.Address);
            p.Name       = partner.Name;
            p.Phone      = partner.Phone;
            p.IsResident = partner.IsResident;
            p.IsSupplier = partner.IsSupplier;
            p.ResidentOf = Condominiums
                           .Where(x =>
                                  partner.Condominiums
                                  .Select(c => c.Id)
                                  .ToArray()
                                  .Contains(x.Id ?? 0)).ToList();
            DbContext.SaveChanges();
            return(p.ToModel());
        }
Ejemplo n.º 8
0
        public Partner Create(PartnerDetails partner)
        {
            var entity = new Entities.Partner()
            {
                IsResident = partner.IsResident,
                Address    = Entities.Address.FromModel(partner.Address),
                IsSupplier = partner.IsSupplier,
                Name       = partner.Name,
                Phone      = partner.Phone,
                Owner      = User,
                ResidentOf = Condominiums
                             .Where(x =>
                                    partner.Condominiums
                                    .Select(c => c.Id)
                                    .ToArray()
                                    .Contains(x.Id ?? 0)).ToList()
            };

            DbContext.Add(entity);
            DbContext.Add(entity.Address);
            DbContext.SaveChanges();
            return(entity.ToModel());
        }
Ejemplo n.º 9
0
        public BillDetails Edit(BillDetails bill)
        {
            var entity = Bills.First(x => x.Id == bill.Id);

            entity.Created = bill.Created ?? DateTime.Now;
            entity.Partner = bill.Partner is null ?  null:
                             Partners.Single(x => x.Id == bill.Partner.Id);
            entity.Condominium = bill.Condominium is null ? null:
                                 Condominiums.Single(x => x.Id == bill.Condominium.Id);
            entity.Description     = bill.Description;
            entity.Serial          = bill.Serial;
            entity.PaymentDeadline = bill.PaymentDeadline;
            entity.Done            = bill.Done;

            DbContext.RemoveRange(BillItems.Where(x => x.Bill == entity));
            entity.Items = bill.Items
                           .Select(x => new Entities.BillItem()
            {
                Description = x.Description, Price = x.Price
            })
                           .ToList();
            DbContext.AddRange(entity.Items);

            DbContext.RemoveRange(DbContext.BillTags.Where(x => x.Bill == entity));
            entity.Tags = bill.Tags
                          .Select(x => new BillTag()
            {
                Label = x.Label, Ratio = x.Rate
            })
                          .ToList();
            DbContext.AddRange(entity.Tags);

            DbContext.SaveChanges();

            return(entity.ToModelWithItems());
        }
Ejemplo n.º 10
0
 public Condominium Get(int id) =>
 Condominiums.Single(x => x.Id == id).ToModel();