public bool SaveMonthFinance([FromBody] MonthFinanceModel monthFinances)
        {
            //var entity = monthFinances.ToModelToEntity();

            var entityExpense = new Expense {
                ListItemsExpense = monthFinances.Expense.ListItemsExpenseModel.Select(x => x.ModelToEntity())
            };

            var entityEarning = new Earning
            {
                ListItemsEarning = monthFinances.Earning.ListItemsEarningModel.Select(x => x.ModelToEntity())
            };

            var entityInvestment = new Investment
            {
                ListItemsInvestment = monthFinances.Investment.ListItemsInvestmentModel.Select(x => x.ModelToEntity())
            };

            var entity = new MonthFinance
            {
                Name            = monthFinances.Name,
                MonthExpense    = entityExpense,
                MonthEarning    = entityEarning,
                MonthInvestment = entityInvestment
            };

            entity.Id = Guid.Parse("efede5a3-0b4c-4d41-a054-55d1b97ae35e");
            monthFinanceConfPer.Persist(entity);

            return(true);
        }
        public async Task <MonthFinanceModel> GetDocument()
        {
            var model  = new MonthFinanceModel();
            var entity = (await monthFinanceConfPer.Get()).ToArray();


            //todo: remove guid hardcore

            model = entity.Where(x => x.Id.Equals(Guid.Parse("efede5a3-0b4c-4d41-a054-55d1b97ae35e"))).Select(x => x.ToMonthFinanceModel()).FirstOrDefault()
                    ?? entity.Where(x => x.IsDefault).Select(x => x.ToMonthFinanceModel()).FirstOrDefault();

            return(model);
        }
        public void WhenHaveFileNameMustBeMonthAndYearThenTrue()
        {
            var result = false;
            var model  = new MonthFinanceModel {
                Expense = null,
                Earning = null
            };

            if (model.Name == DateTime.Now.ToMonthName() + DateTime.Now.Year.ToString())
            {
                result = true;
            }

            Assert.Equal(true, result);
        }
        public static MonthFinance ToModelToEntity(this MonthFinanceModel model)
        {
            if (model == null)
            {
                return(null);
            }

            var monthFinance = new MonthFinance(
                model.Name,
                model.Expense.ToModelToEntity(),
                model.Saving
                );

            monthFinance.MonthEarning.ListItemsEarning = model.Earning.ToModelToEntity().ListItemsEarning;
            monthFinance.Total = monthFinance.SubTotalEarning + monthFinance.SubTotalExpense;

            return(monthFinance);
        }
        public void WhenWantSaveThenSubtotalAreEsqualsThatHisList()
        {
            var context = new MonthFinanceContextMock();
            //create Model with properties.
            var earningModel = new EarningModel {
                ListItemsEarningModel = new List <ItemModel> {
                    new ItemModel {
                        Name = "Salary", HowMuch = 5000
                    }
                }
            };

            var expenseModel = new ExpensesModel {
                ListItemsExpenseModel = new List <ItemModel> {
                    new ItemModel {
                        Name = "Rent House Dublin", HowMuch = 2500
                    }
                }
            };

            var monthFinanceEntity = new MonthFinanceModel {
                Expense = expenseModel,
                //EarningModel = earningModel,
                Saving = 1000
            };

            var entity = monthFinanceEntity.ToModelToEntity();

            //entity.SubTotalEarning = 5000;
            //entity.SubTotalExpense = 2500;

            //pass model to ententy
            var result = context.Save(entity);

            Assert.Equal(true, result);
        }