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)); }
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)); }
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)); }
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)); }
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)); }
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)); }