public async Task <IActionResult> Create([Bind(properties)] InsuranceView model)
        {
            //if (!ModelState.IsValid) return View(model);
            var accountObject = await accounts.GetObject(model.AccountId);

            bool isAccountOk       = checkIfHasEnoughPaymentMoney(accountObject, model.Payment);
            bool isInsuranceDataOk = checkIfIsntInPast(model.ValidFrom, model.ValidTo);

            if (isAccountOk && isInsuranceDataOk)
            {
                model.ID = Guid.NewGuid().ToString();
                var insurance = InsuranceViewFactory.Create(model);
                insurance.Data.Payment   = model.Payment;
                insurance.Data.Type      = model.Type;
                insurance.Data.ValidFrom = model.ValidFrom ?? DateTime.MinValue;
                insurance.Data.ValidTo   = model.ValidTo ?? DateTime.MaxValue;
                insurance.Data.AccountId = model.AccountId;
                insurance.Data.Status    = Status.Active.ToString();

                accountObject.Data.Balance = accountObject.Data.Balance - model.Payment;

                var transaction = TransactionFactory.CreateTransaction(model.ID, model.Payment,
                                                                       model.Type + " insurance", "systemAccount", model.AccountId,
                                                                       model.ValidFrom, model.ValidTo);

                await insurances.AddObject(insurance);

                await accounts.UpdateObject(accountObject);
                await generateInsuranceNotification(insurance);

                await transactions.AddObject(transaction);

                TempData["Status"] =
                    insurance.Data.Type + " insurance is now valid from " + insurance.Data.ValidFrom.ToString("dd/M/yyyy", CultureInfo.InvariantCulture) + " to "
                    + insurance.Data.ValidTo.ToString("dd/M/yyyy", CultureInfo.InvariantCulture) + " in payment of " + insurance.Data.Payment;
            }

            return(RedirectToAction("Index"));
        }