Esempio n. 1
0
        public async Task <IActionResult> GetByNumber(string invoice)
        {
            if (String.IsNullOrEmpty(invoice))
            {
                return(StatusCode(400, "Invalid parameter(s)."));
            }

            //Get invoice
            var data = await _repo.GetByNumber(invoice);

            if (data == null)
            {
                return(StatusCode(500, "Invoice with number " + invoice + " could not be found."));
            }

            //Get debtor
            var debtor      = data.Debtor;
            var debtorModel = new DebtorViewModel();

            debtorModel.SetProperties(debtor, true, true);

            //Convert to view model
            var result = new InvoiceViewModel();

            result.Debtor = debtorModel;
            result.SetProperties(data);

            return(Ok(result));
        }
        public async Task <IActionResult> GetAll()
        {
            //Get data
            var data = await _repo.GetDebtors();

            if (data == null)
            {
                return(StatusCode(500, "Debtors could not be found."));
            }

            //Convert to viewmodel
            var result = new List <DebtorViewModel>();

            foreach (var debtor in data)
            {
                //Debtor --> Address
                var hasAddress = debtor.Addresses.ToList()[0];
                var address    = await _addressRepository.GetAddressByPostalAndNumber(hasAddress.Number, hasAddress.PostalCode);

                //Address model
                var addressViewModel = new AddressViewModel();
                addressViewModel.SetProperties(address);

                //Debtor model
                var debtorModel = new DebtorViewModel();
                debtorModel.Address = addressViewModel;
                debtorModel.SetProperties(debtor, false, false);

                result.Add(debtorModel);
            }

            return(Ok(result));
        }
        public async Task <IActionResult> Update([FromBody] DebtorViewModel model)
        {
            if (model == null)
            {
                return(StatusCode(400, "Invalid parameter(s)."));
            }

            Debtor debtor = new Debtor
            {
                Id          = model.Id,
                FirstName   = model.FirstName,
                LastName    = model.LastName,
                Email       = model.Email,
                BankAccount = model.BankAccount,
                Phone       = model.Phone,
                CompanyName = model.CompanyName
            };

            //Update debtor
            var data = await _repo.Update(debtor);

            if (data == null)
            {
                return(StatusCode(500, "A problem occured while updating the record. Please try again!"));
            }

            var result = new DebtorViewModel();

            result.SetProperties(data, false, false);

            return(Ok(result));
        }
        public async Task <IActionResult> GetById(string id)
        {
            if (String.IsNullOrEmpty(id))
            {
                return(StatusCode(400, "Invalid parameter(s)."));
            }

            //Get user
            var data = await _repo.GetDebtorByID(id);

            if (data == null)
            {
                return(StatusCode(500, "Debtor could not be found."));
            }

            //Debtor --> Address
            var hasAddress = data.Addresses.ToList()[0];
            var address    = await _addressRepository.GetAddressByPostalAndNumber(hasAddress.Number, hasAddress.PostalCode);

            //Address model
            var addressViewModel = new AddressViewModel();

            addressViewModel.SetProperties(address);

            //Debtor model
            var result = new DebtorViewModel();

            result.Address = addressViewModel;
            result.SetProperties(data, false, false);

            return(Ok(result));
        }
Esempio n. 5
0
        public async Task <IActionResult> Index(int?page, int?pageSize)
        {
            if (!page.HasValue || !pageSize.HasValue)
            {
                return(StatusCode(400, String.Format("Invalid parameter(s).")));
            }

            //Get data
            var data = await _repo.GetInvoices();

            if (data == null)
            {
                return(StatusCode(500, "Invoices could not be found."));
            }

            //Convert to viewmodel
            var result = new List <InvoiceViewModel>();

            foreach (var invoice in data)
            {
                var debtor      = invoice.Debtor;
                var debtorModel = new DebtorViewModel();
                debtorModel.SetProperties(debtor, true, true);

                var invoiceModel = new InvoiceViewModel
                {
                    InvoiceNumber = invoice.InvoiceNumber,
                    CustomerId    = invoice.CustomerId,
                    Total         = invoice.Total,
                    Discount      = invoice.Discount,
                    Comment       = invoice.Comment,
                    CreatedOn     = invoice.CreatedOn,
                    ExpiredOn     = invoice.ExpiredOn,
                    Debtor        = debtorModel,
                    IsPaid        = invoice.IsPaid,
                    Concept       = invoice.Concept
                };

                result.Add(invoiceModel);
            }

            var totalPages    = ((result.Count() - 1) / pageSize.Value) + 1;
            var requestedData = result.Skip((page.Value - 1) * pageSize.Value).Take(pageSize.Value).ToList();

            var paging       = new PaginationResult <InvoiceViewModel>(page.Value, totalPages, requestedData);
            var pagingResult = new PaginationResultViewModel <InvoiceViewModel>
            {
                Data        = paging.Data,
                TotalPages  = paging.TotalPages,
                CurrentPage = paging.CurrentPage
            };

            return(Ok(pagingResult));
        }
        public async Task <IActionResult> Index(int?page, int?pageSize)
        {
            if (!page.HasValue || !pageSize.HasValue)
            {
                return(StatusCode(400, String.Format("Invalid parameter(s).")));
            }

            //Get data
            var data = await _repo.GetDebtors();

            if (data == null)
            {
                return(StatusCode(500, "Debtors could not be found."));
            }

            //Convert to viewmodel
            var result = new List <DebtorViewModel>();

            foreach (var debtor in data)
            {
                //Debtor --> Address
                var hasAddress = debtor.Addresses.ToList()[0];
                var address    = await _addressRepository.GetAddressByPostalAndNumber(hasAddress.Number, hasAddress.PostalCode);

                //Address model
                var addressViewModel = new AddressViewModel();
                addressViewModel.SetProperties(address);

                //Debtor model
                var debtorModel = new DebtorViewModel();
                debtorModel.Address = addressViewModel;
                debtorModel.SetProperties(debtor, false, false);

                result.Add(debtorModel);
            }

            var totalPages    = ((result.Count() - 1) / pageSize.Value) + 1;
            var requestedData = result.Skip((page.Value - 1) * pageSize.Value).Take(pageSize.Value).ToList();

            var paging       = new PaginationResult <DebtorViewModel>(page.Value, totalPages, requestedData);
            var pagingResult = new PaginationResultViewModel <DebtorViewModel>
            {
                Data        = paging.Data,
                TotalPages  = paging.TotalPages,
                CurrentPage = paging.CurrentPage
            };

            return(Ok(pagingResult));
        }
Esempio n. 7
0
        public async Task <IActionResult> GetByCreationDate(DateTime?date)
        {
            if (!date.HasValue)
            {
                return(StatusCode(400, "Invalid parameter(s)."));
            }

            //Get invoices
            var data = await _repo.GetByCreationDate(date.Value);

            if (data == null)
            {
                return(StatusCode(500, "Invoice with date" + date.Value.ToString("dd-MM-yyyy") + " could not be found."));
            }

            //Convert to viewmodel
            var result = new List <InvoiceViewModel>();

            foreach (var invoice in data)
            {
                var debtor      = invoice.Debtor;
                var debtorModel = new DebtorViewModel();
                debtorModel.SetProperties(debtor, true, true);

                var invoiceModel = new InvoiceViewModel
                {
                    InvoiceNumber = invoice.InvoiceNumber,
                    CustomerId    = invoice.CustomerId,
                    Total         = invoice.Total,
                    Discount      = invoice.Discount,
                    Comment       = invoice.Comment,
                    CreatedOn     = invoice.CreatedOn,
                    ExpiredOn     = invoice.ExpiredOn,
                    Debtor        = debtorModel,
                    IsPaid        = invoice.IsPaid,
                    Concept       = invoice.Concept
                };

                result.Add(invoiceModel);
            }

            return(Ok(result));
        }
Esempio n. 8
0
        public async Task <IActionResult> GetByDebtorId(string debtor)
        {
            if (String.IsNullOrEmpty(debtor))
            {
                return(StatusCode(400, "Invalid parameter(s)."));
            }

            //Get invoices
            var data = await _repo.GetByDebtorId(debtor);

            if (data == null)
            {
                return(StatusCode(500, "Invoice with debtor id " + debtor + " could not be found."));
            }

            //Convert to viewmodel
            var result = new List <InvoiceViewModel>();

            foreach (var invoice in data)
            {
                var debtors     = invoice.Debtor;
                var debtorModel = new DebtorViewModel();
                debtorModel.SetProperties(debtors, true, true);

                var invoiceModel = new InvoiceViewModel
                {
                    InvoiceNumber = invoice.InvoiceNumber,
                    CustomerId    = invoice.CustomerId,
                    Total         = invoice.Total,
                    Discount      = invoice.Discount,
                    Comment       = invoice.Comment,
                    CreatedOn     = invoice.CreatedOn,
                    ExpiredOn     = invoice.ExpiredOn,
                    Debtor        = debtorModel,
                    IsPaid        = invoice.IsPaid,
                    Concept       = invoice.Concept
                };

                result.Add(invoiceModel);
            }

            return(Ok(result));
        }
Esempio n. 9
0
        public async Task <IActionResult> GetNearlyExpired()
        {
            //Get invoices
            var data = await _repo.GetNearlyExpired();

            if (data == null)
            {
                return(StatusCode(500, "Nearly expired invoices could not be found."));
            }

            //Convert to viewmodel
            var result = new List <InvoiceViewModel>();

            foreach (var invoice in data)
            {
                var debtor      = invoice.Debtor;
                var debtorModel = new DebtorViewModel();
                debtorModel.SetProperties(debtor, true, true);

                var invoiceModel = new InvoiceViewModel
                {
                    InvoiceNumber = invoice.InvoiceNumber,
                    CustomerId    = invoice.CustomerId,
                    Total         = invoice.Total,
                    Discount      = invoice.Discount,
                    Comment       = invoice.Comment,
                    CreatedOn     = invoice.CreatedOn,
                    ExpiredOn     = invoice.ExpiredOn,
                    Debtor        = debtorModel,
                    IsPaid        = invoice.IsPaid,
                    Concept       = invoice.Concept
                };

                result.Add(invoiceModel);
            }

            return(Ok(result));
        }
Esempio n. 10
0
        public async Task <IActionResult> GetByEmail(string email)
        {
            if (String.IsNullOrEmpty(email))
            {
                return(StatusCode(400, "Invalid parameter(s)."));
            }

            // Check if email address is valid
            if (!Regex.Match(email, @"^([\w\.\-]+)@((?!\.|\-)[\w\-]+)((\.(\w){2,3})+)$").Success)
            {
                return(StatusCode(400, "This e-mail address is not valid."));
            }

            //Get debtor
            var data = await _repo.GetDebtorByEmail(email);

            if (data == null)
            {
                return(StatusCode(500, "Debtor could not be found."));
            }

            //Debtor --> Address
            var hasAddress = data.Addresses.ToList()[0];
            var address    = await _addressRepository.GetAddressByPostalAndNumber(hasAddress.Number, hasAddress.PostalCode);

            //Address model
            var addressViewModel = new AddressViewModel();

            addressViewModel.SetProperties(address);

            //Debtor model
            var result = new DebtorViewModel();

            result.Address = addressViewModel;
            result.SetProperties(data, false, false);

            return(Ok(result));
        }