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);
 }
        public static MonthFinanceModel ToMonthFinanceModel(this MonthFinance source)
        {
            var monthFinanceModel = new MonthFinanceModel {
                Name   = source.Name,
                Saving = source.Saving
            };


            monthFinanceModel.Earning.ListItemsEarningModel       = source.MonthEarning.ListItemsEarning.Select(x => x.ToEntityModel());
            monthFinanceModel.Expense.ListItemsExpenseModel       = source.MonthExpense.ListItemsExpense.Select(x => x.ToEntityModel());
            monthFinanceModel.Investment.ListItemsInvestmentModel = source.MonthInvestment.ListItemsInvestment.Select(x => x.ToEntityModel());

            return(monthFinanceModel);
        }
 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 MonthFinanceModel ToMonthFinanceModel(this MonthFinance source)
        {
            var itemModel = new ItemModel { Name = "", HowMuch = 3500 };
            var monthFinanceModel = new MonthFinanceModel();
            
            if(source != null)
            {
                monthFinanceModel.Name = source.Name;
                monthFinanceModel.Saving = source.Saving;
                if(source.MonthEarning.ListItemsEarning != null)
                {
                    monthFinanceModel.Earning.ListItemsEarningModel = source.MonthEarning.ListItemsEarning.Select(x => x.ToEntityModel());
                    monthFinanceModel.Earning.Sum = source.MonthEarning.ListItemsEarning.Sum(x=>x.HowMuch);
                }
                else
                {
                    monthFinanceModel.Earning.ListItemsEarningModel.Append(itemModel);
                }

                if (source.MonthExpense.ListItemsExpense != null)
                {
                    monthFinanceModel.Expense.ListItemsExpenseModel = source.MonthExpense.ListItemsExpense.Select(x => x.ToEntityModel());
                    monthFinanceModel.Expense.Sum = source.MonthExpense.ListItemsExpense.Sum(x=>x.HowMuch);
                }
                else
                {
                    monthFinanceModel.Expense.ListItemsExpenseModel = new List<ItemModel>();
                }
                    
                
                if(source.MonthInvestment.ListItemsInvestment != null)
                {
                    monthFinanceModel.Investment.ListItemsInvestmentModel = source.MonthInvestment.ListItemsInvestment.Select(x => x.ToEntityModel());
                    monthFinanceModel.Investment.Sum = source.MonthInvestment.ListItemsInvestment.Sum(x=>x.HowMuch);
                }
                else
                    monthFinanceModel.Investment.ListItemsInvestmentModel =  new List<ItemModel>();
                
            }
            
            return monthFinanceModel;
        }
        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(Configuration.GetSection("AzureConfiguration:UserId").ToString().ToLowerInvariant())).Select(x => x.ToMonthFinanceModel()).FirstOrDefault()
			//						?? entity.Where(x => x.IsDefault).Select(x => x.ToMonthFinanceModel()).FirstOrDefault();

            model = entity.FirstOrDefault().ToMonthFinanceModel();

            model.Name = _settings.UserId;
            return model;
        }
 public async Task<MonthFinanceModel> GetMonthFinanceByParams([FromQuery] string name)
 {
     var model = new MonthFinanceModel();
     var entity = (await monthFinanceConfPer.Get()).ToArray();
     
     if(name!=null)
         model = entity.Where(x=> x.Name.Contains(name)).Select(x=>x.ToMonthFinanceModel()).FirstOrDefault();
     
     return model;
 }