public List <RealEstateViewModel> CustomerExpireList()
        {
            var results = new List <RealEstateViewModel>();
            var source  = _context.RealEstate
                          .Include(r => r.RealEstateDetail)
                          .Include(r => r.ReaEstateType)
                          .Include(r => r.Agent)
                          .Include(r => r.Map)
                          .Where(r => r.IsActive && r.ExprireTime < DateTime.Now)
                          .OrderByDescending(r => r.PostTime)
                          .ToList();

            foreach (var item in source)
            {
                var viewModelItem = new RealEstateViewModel
                {
                    Id         = item.Id,
                    Street     = item.Map.Address,
                    Price      = Helper.VNCurrencyFormat(item.RealEstateDetail.Price.ToString()),
                    Agent      = item.Agent.AgentName,
                    PostDate   = item.PostTime.ToString("dd/MM/yyyy"),
                    BeginTime  = item.BeginTime.ToString("dd/MM/yyyy"),
                    ExpireTime = item.ExprireTime == null ? string.Empty : item.ExprireTime.Value.ToString("dd/MM/yyyy"),
                    Type       = item.ReaEstateType.RealEstateTypeName,
                    Status     = Helper.GetStatus(item)
                };
                results.Add(viewModelItem);
            }

            return(results);
        }
Beispiel #2
0
        public IActionResult Edit(RealEstateViewModel viewModel)
        {
            var validation = ValidateData(viewModel);

            if (!string.IsNullOrWhiteSpace(validation))
            {
                TempData["Error"] = validation;

                return(View("RealEstateForm", viewModel));
            }

            var realEstate = FetchRealEstate(viewModel.Id);

            if (realEstate == null)
            {
                TempData["Error"] = "Something went wrong.";

                return(View("RealEstateForm", viewModel));
            }

            TempData["Success"] = "Sėkmingai atnaujintas NT!";

            Update(realEstate, viewModel);

            var realEstates = FetchUserRealEstate();

            return(View("RealEstateList", new RealEstateListViewModel()
            {
                RealEstates = realEstates
            }));
        }
Beispiel #3
0
        public async Task AddAsync(RealEstateViewModel realEstateViewModel, string userName)
        {
            var user = await _userManager.FindByNameAsync(userName);

            var realEstate = RealEstateMapper.ToModel(realEstateViewModel);

            realEstate.WhenPublished = DateTime.Now;
            realEstate.User          = user;
            await _realEstateRepository.AddAsync(realEstate);
        }
Beispiel #4
0
        public static RealEstateListViewModel GetRealEstateByUser(string username)
        {
            Entities entities = new Entities();
            RealEstateListViewModel result = new RealEstateListViewModel();
            DateTime current = DateTime.Now;

            var realEstates = entities.Assets.Include("Incomes").Include("Liabilities").Where(x => x.Username.Equals(username) &&
                                                                                              x.AssetType == (int)Constants.Constants.ASSET_TYPE.REAL_ESTATE &&
                                                                                              !x.DisabledDate.HasValue);

            foreach (var realEstate in realEstates)
            {
                RealEstateViewModel realEstateViewModel = new RealEstateViewModel();
                realEstateViewModel.Id    = realEstate.Id;
                realEstateViewModel.Name  = realEstate.AssetName;
                realEstateViewModel.Value = realEstate.Value;
                if (realEstate.Incomes1.Where(x => !x.DisabledDate.HasValue).Any())
                {
                    realEstateViewModel.Income = realEstate.Incomes1.FirstOrDefault().Value;
                }
                else
                {
                    realEstateViewModel.Income = 0;
                }
                realEstateViewModel.AnnualIncome = realEstateViewModel.Income * 12;
                realEstateViewModel.RentYield    = realEstateViewModel.Value > 0 ? realEstateViewModel.AnnualIncome / realEstateViewModel.Value : 0;

                foreach (var liability in realEstate.Liabilities.Where(x => !x.DisabledDate.HasValue))
                {
                    RealEstateLiabilityViewModel liabilityViewModel = RealEstateLiabilityQueries.CreateViewModel(liability);
                    realEstateViewModel.Liabilities.Add(liabilityViewModel);
                }

                var liabilities = realEstateViewModel.Liabilities.Where(x => x.StartDate <= current && x.EndDate >= current);
                realEstateViewModel.TotalLiabilityValue  = liabilities.Select(x => x.Value.Value).DefaultIfEmpty(0).Sum();
                realEstateViewModel.TotalOriginalPayment = liabilities.Select(x => x.MonthlyOriginalPayment).DefaultIfEmpty(0).Sum();
                realEstateViewModel.TotalInterestPayment = liabilities.Select(x => x.MonthlyInterestPayment).DefaultIfEmpty(0).Sum();
                realEstateViewModel.TotalMonthlyPayment  = liabilities.Select(x => x.TotalMonthlyPayment).DefaultIfEmpty(0).Sum();
                realEstateViewModel.TotalPayment         = liabilities.Select(x => x.TotalPayment).DefaultIfEmpty(0).Sum();
                realEstateViewModel.TotalRemainedValue   = liabilities.Select(x => x.RemainedValue).DefaultIfEmpty(0).Sum();
                realEstateViewModel.TotalInterestRate    = realEstateViewModel.TotalLiabilityValue > 0 ? liabilities.Select(x => x.OriginalInterestPayment).DefaultIfEmpty(0).Sum() / realEstateViewModel.TotalLiabilityValue * 12 : 0;
                realEstateViewModel.RowSpan = realEstateViewModel.Liabilities.Any() ? realEstateViewModel.Liabilities.Count() + 3 : 2;

                result.RealEstates.Add(realEstateViewModel);
            }

            result.TotalValue         = result.RealEstates.Select(x => x.Value).DefaultIfEmpty(0).Sum();
            result.TotalMonthlyIncome = result.RealEstates.Select(x => x.Income).DefaultIfEmpty(0).Sum();
            result.TotalAnnualIncome  = result.TotalMonthlyIncome * 12;
            result.TotalRentYield     = result.TotalValue > 0 ? result.TotalAnnualIncome / result.TotalValue : 0;
            result.IsInitialized      = UserQueries.IsCompleteInitialized(username);

            return(result);
        }
Beispiel #5
0
        private void Update(DataAccess.Models.RealEstate realEstate, RealEstateViewModel viewModel)
        {
            realEstate.Name        = viewModel.Name;
            realEstate.Address     = viewModel.Address;
            realEstate.IsRented    = viewModel.IsRented;
            realEstate.SquareSpace = viewModel.SquareSpace.Value;
            realEstate.RoomNumber  = viewModel.RoomNumber.Value;
            realEstate.Valuation   = viewModel.Valuation.Value;

            repository.Update(realEstate);

            repository.SaveChanges();
        }
Beispiel #6
0
        private void Store(RealEstateViewModel viewModel)
        {
            var realEstate = new DataAccess.Models.RealEstate
            {
                Name        = viewModel.Name,
                Address     = viewModel.Address,
                IsRented    = viewModel.IsRented,
                SquareSpace = viewModel.SquareSpace.Value,
                RoomNumber  = viewModel.RoomNumber.Value,
                Valuation   = viewModel.Valuation.Value,
            };

            repository.Add(realEstate);

            repository.SaveChanges();
        }
        public async Task <IActionResult> Add([FromBody] RealEstateViewModel realEstateViewModel)
        {
            var user     = HttpContext.User;
            var userName = user.Identity.Name;

            try
            {
                await _realEstateService.AddAsync(realEstateViewModel, userName);
            }
            catch (Exception e)
            {
                return(BadRequest());
            }

            return(Ok());
        }
Beispiel #8
0
        private string ValidateData(RealEstateViewModel viewModel)
        {
            if (string.IsNullOrWhiteSpace(viewModel.Name))
            {
                return("Pavadinimo laukas turi būti užpildytas.");
            }

            if (string.IsNullOrWhiteSpace(viewModel.Address))
            {
                return("Adreso laukas turi būti užpildytas.");
            }

            if (!viewModel.SquareSpace.HasValue)
            {
                return("Plotas yra privalomas");
            }

            if (viewModel.SquareSpace <= 0)
            {
                return("Plotas turi būti daugiau už 0.");
            }

            if (!viewModel.RoomNumber.HasValue)
            {
                return("Kambarių skaičius yra privalomas");
            }

            if (viewModel.RoomNumber <= 0)
            {
                return("Kambarių skaičius būti daugiau už 0.");
            }

            if (!viewModel.Valuation.HasValue)
            {
                return("Vertė yra privaloma");
            }

            if (viewModel.Valuation <= 0)
            {
                return("Vertė turi būti daugiau už 0.");
            }

            return(string.Empty);
        }
Beispiel #9
0
        public static RealEstate ToModel(RealEstateViewModel realEstateViewModel)
        {
            var realEstate = new RealEstate
            {
                Category         = realEstateViewModel.Category,
                ConstructionYear = realEstateViewModel.ConstructionYear,
                Description      = realEstateViewModel.Description,
                Floor            = realEstateViewModel.Floor,
                Heating          = realEstateViewModel.Heating,
                IsForRent        = realEstateViewModel.IsForRent,
                IsReadyToMoveIn  = realEstateViewModel.IsReadyToMoveIn,
                Location         = realEstateViewModel.Location,
                Name             = realEstateViewModel.Name,
                NumberOfFloors   = realEstateViewModel.NumberOfFloors,
                NumberOfRooms    = realEstateViewModel.NumberOfRooms,
                Price            = realEstateViewModel.Price
            };

            return(realEstate);
        }
Beispiel #10
0
        public static RealEstateViewModel ToViewModel(RealEstate realEstate)
        {
            var realEstateViewModel = new RealEstateViewModel
            {
                Description      = realEstate.Description,
                Category         = realEstate.Category,
                ConstructionYear = realEstate.ConstructionYear,
                Floor            = realEstate.Floor,
                Heating          = realEstate.Heating,
                IsForRent        = realEstate.IsForRent,
                IsReadyToMoveIn  = realEstate.IsReadyToMoveIn,
                Location         = realEstate.Location,
                Name             = realEstate.Name,
                NumberOfFloors   = realEstate.NumberOfFloors,
                NumberOfRooms    = realEstate.NumberOfRooms,
                Price            = realEstate.Price
            };

            return(realEstateViewModel);
        }
Beispiel #11
0
        public IActionResult Create(RealEstateViewModel viewModel)
        {
            var validation = ValidateData(viewModel);

            if (!string.IsNullOrWhiteSpace(validation))
            {
                TempData["Error"] = validation;

                return(View("RealEstateForm", viewModel));
            }

            Store(viewModel);

            TempData["Success"] = "NT sėkmingai pridėtas!";

            var realEstates = FetchUserRealEstate();

            return(View("RealEstateList", new RealEstateListViewModel()
            {
                RealEstates = realEstates
            }));
        }
        public static RealEstateWindow CreateRealEstateWindow(Window currentWindowView, RealEstateWindow realEstateView, RealEstateViewModel realEstateVM, MiddleClassModel MiddleModel)
        {
            try
            {
                // ensure only one view is loaded, and the same one remains open for multiple requests
                realEstateView = realEstateView ?? new RealEstateWindow();

                if (!realEstateView.IsLoaded)
                {
                    realEstateView.Close();
                    realEstateView             = new RealEstateWindow();
                    realEstateVM.MiddleModel   = MiddleModel;
                    realEstateView.DataContext = realEstateVM;
                    currentWindowView.Close();
                }

                realEstateView.Show();
                return(realEstateView);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error", ex.Message);
                //Application.Current.Shutdown();
                return(realEstateView);
            }
        }
Beispiel #13
0
        public ActionResult _Confirm()
        {
            DateTime current = DateTime.Now;

            RealEstateCreateViewModel model     = (RealEstateCreateViewModel)HttpContext.Session["REAL_ESTATE"];
            RealEstateViewModel       viewModel = new RealEstateViewModel();

            viewModel.Name         = model.Name;
            viewModel.Value        = model.Value.Value;
            viewModel.Income       = model.Income.HasValue ? model.Income.Value : 0;
            viewModel.AnnualIncome = viewModel.Income * 12;
            viewModel.RentYield    = viewModel.AnnualIncome / viewModel.Value;

            RealEstateLiabilityListCreateViewModel liabilities = (RealEstateLiabilityListCreateViewModel)HttpContext.Session["LIABILITIES"];

            viewModel.RowSpan = liabilities != null && liabilities.Liabilities.Count > 0 ? liabilities.Liabilities.Count() + 3 : 2;

            if (liabilities != null && liabilities.Liabilities.Count > 0)
            {
                foreach (var liability in liabilities.Liabilities)
                {
                    RealEstateLiabilityViewModel liabilityViewModel = new RealEstateLiabilityViewModel();
                    liabilityViewModel.Source           = liability.Source;
                    liabilityViewModel.Value            = liability.Value;
                    liabilityViewModel.InterestType     = Helper.GetInterestType(liability.InterestType);
                    liabilityViewModel.InterestRatePerX = Helper.GetInterestTypePerX(liability.InterestRatePerX);
                    liabilityViewModel.InterestRate     = liability.InterestRate / 100;
                    liabilityViewModel.StartDate        = liability.StartDate.Value;
                    liabilityViewModel.EndDate          = liability.EndDate.Value;
                    liabilityViewModel.PaymentPeriod    = Helper.CalculateTimePeriod(liabilityViewModel.StartDate.Value, liabilityViewModel.EndDate.Value);

                    if (liabilityViewModel.StartDate <= current && current <= liabilityViewModel.EndDate)
                    {
                        int    currentPeriod = Helper.CalculateTimePeriod(liabilityViewModel.StartDate.Value, DateTime.Now);
                        double interestRate  = liability.InterestRatePerX == (int)Constants.Constants.INTEREST_RATE_PER.MONTH ? liability.InterestRate.Value / 100 : liability.InterestRate.Value / 1200;
                        liabilityViewModel.OriginalInterestPayment = liabilityViewModel.Value.Value * interestRate;
                        //Fixed interest type
                        if (liability.InterestType == (int)Constants.Constants.INTEREST_TYPE.FIXED)
                        {
                            liabilityViewModel.MonthlyOriginalPayment = liabilityViewModel.Value.Value / liabilityViewModel.PaymentPeriod;
                            liabilityViewModel.MonthlyInterestPayment = liabilityViewModel.Value.Value * interestRate;
                            liabilityViewModel.TotalMonthlyPayment    = liabilityViewModel.MonthlyOriginalPayment + liabilityViewModel.MonthlyInterestPayment;
                            liabilityViewModel.TotalPayment           = RealEstateLiabilityQueries.Helper.CalculateAnnualPayment(liability);
                            liabilityViewModel.RemainedValue          = liabilityViewModel.Value.Value - liabilityViewModel.MonthlyOriginalPayment * (currentPeriod + 1);
                            liabilityViewModel.Status     = "Đang nợ";
                            liabilityViewModel.StatusCode = "label-success";
                        }
                        //Reduced interest type
                        else
                        {
                            liabilityViewModel.MonthlyOriginalPayment = liabilityViewModel.Value.Value / liabilityViewModel.PaymentPeriod;
                            liabilityViewModel.RemainedValue          = liabilityViewModel.Value.Value - liabilityViewModel.MonthlyOriginalPayment * (currentPeriod + 1);
                            liabilityViewModel.MonthlyInterestPayment = (liabilityViewModel.Value.Value - liabilityViewModel.MonthlyOriginalPayment * currentPeriod) * interestRate;
                            liabilityViewModel.TotalMonthlyPayment    = liabilityViewModel.MonthlyOriginalPayment + liabilityViewModel.MonthlyInterestPayment;
                            liabilityViewModel.TotalPayment           = RealEstateLiabilityQueries.Helper.CalculateAnnualPayment(liability);
                            liabilityViewModel.Status     = "Đang nợ";
                            liabilityViewModel.StatusCode = "label-success";
                        }
                    }
                    else
                    {
                        liabilityViewModel.MonthlyOriginalPayment = 0;
                        liabilityViewModel.MonthlyInterestPayment = 0;
                        liabilityViewModel.TotalMonthlyPayment    = 0;
                        liabilityViewModel.TotalPayment           = 0;
                        liabilityViewModel.RemainedValue          = 0;
                    }

                    viewModel.Liabilities.Add(liabilityViewModel);
                }

                var liabilitites = viewModel.Liabilities.Where(x => x.StartDate <= current && x.EndDate >= current);
                viewModel.TotalLiabilityValue  = liabilitites.Select(x => x.Value.Value).DefaultIfEmpty(0).Sum();
                viewModel.TotalOriginalPayment = liabilitites.Select(x => x.MonthlyOriginalPayment).DefaultIfEmpty(0).Sum();
                viewModel.TotalInterestPayment = liabilitites.Select(x => x.MonthlyInterestPayment).DefaultIfEmpty(0).Sum();
                viewModel.TotalMonthlyPayment  = liabilitites.Select(x => x.TotalMonthlyPayment).DefaultIfEmpty(0).Sum();
                viewModel.TotalPayment         = liabilitites.Select(x => x.TotalPayment).DefaultIfEmpty(0).Sum();
                viewModel.TotalRemainedValue   = liabilitites.Select(x => x.RemainedValue).DefaultIfEmpty(0).Sum();
                viewModel.TotalInterestRate    = viewModel.TotalLiabilityValue > 0 ? liabilitites.Select(x => x.OriginalInterestPayment).DefaultIfEmpty(0).Sum() / viewModel.TotalLiabilityValue * 12 : 0;
            }

            return(PartialView(viewModel));
        }
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            try
            {
                AccountViewModel    accountVM      = new AccountViewModel();
                MainViewModel       mainVM         = new MainViewModel();
                ContractViewModel   contractVM     = new ContractViewModel();
                ClientViewModel     clientVM       = new ClientViewModel();
                RealEstateViewModel realEstateVM   = new RealEstateViewModel();
                EmployeeViewModel   employeeVM     = new EmployeeViewModel();
                MainWindow          mainView       = null;
                AccountWindow       accountView    = null;
                ContractWindow      contractView   = null;
                ClientWindow        clientView     = null;
                RealEstateWindow    realEstateView = null;
                EmployeeWindow      employeeView   = null;
                // open the Users screen
                mainVM.ShowContractScreenAction += () =>
                {
                    contractView = NavigationWindows.CreateContractWindow(mainView, contractView, contractVM, mainVM.MiddleModel);
                };

                mainVM.ShowClientScreenAction += () =>
                {
                    clientView = NavigationWindows.CreateUserWindow(mainView, clientView, clientVM, mainVM.MiddleModel);
                };

                mainVM.ShowRealEstateScreenAction += () =>
                {
                    realEstateView = NavigationWindows.CreateRealEstateWindow(mainView, realEstateView, realEstateVM, mainVM.MiddleModel);
                };

                mainVM.ShowWorkerScreenAction += () =>
                {
                    employeeView = NavigationWindows.CreateEmployeeWindow(mainView, employeeView, employeeVM, mainVM.MiddleModel);
                };
                accountVM.ShowMainScreenAction += () =>
                {
                    mainView = NavigationWindows.CreateMainWindow(accountView, mainView, mainVM, accountVM.MiddleModel);
                };

                clientVM.ShowContractScreenAction += () =>
                {
                    contractView = NavigationWindows.CreateContractWindow(clientView, contractView, contractVM, clientVM.MiddleModel);
                };
                clientVM.ShowMainScreenAction += () =>
                {
                    mainView = NavigationWindows.CreateMainWindow(clientView, mainView, mainVM, clientVM.MiddleModel);
                };
                realEstateVM.ShowContractScreenAction += () =>
                {
                    contractView = NavigationWindows.CreateContractWindow(realEstateView, contractView, contractVM, realEstateVM.MiddleModel);
                };
                realEstateVM.ShowMainScreenAction += () =>
                {
                    mainView = NavigationWindows.CreateMainWindow(realEstateView, mainView, mainVM, realEstateVM.MiddleModel);
                };
                contractVM.ShowMainScreenAction += () =>
                {
                    mainView = NavigationWindows.CreateMainWindow(contractView, mainView, mainVM, contractVM.MiddleModel);
                };
                contractVM.ShowUserScreenAction += () =>
                {
                    clientView = NavigationWindows.CreateUserWindow(contractView, clientView, clientVM, contractVM.MiddleModel);
                };
                contractVM.ShowRealEstateScreenAction += () =>
                {
                    realEstateView = NavigationWindows.CreateRealEstateWindow(contractView, realEstateView, realEstateVM, contractVM.MiddleModel);
                };
                employeeVM.ShowMainScreenAction += () =>
                {
                    mainView = NavigationWindows.CreateMainWindow(employeeView, mainView, mainVM, employeeVM.MiddleModel);
                };
                employeeVM.ShowContractScreenAction += () =>
                {
                    contractView = NavigationWindows.CreateContractWindow(employeeView, contractView, contractVM, employeeVM.MiddleModel);
                };
                //mainView = new MainWindow();
                //mainView.DataContext = mainVM;
                //mainView.Show();

                accountView             = new AccountWindow();
                accountView.DataContext = accountVM;
                accountView.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error", ex.Message);
                Application.Current.Shutdown();
            }
        }