public void AddAccountTransaction(Multipart multipart)
        {
            try
            {
                if (multipart.GetForm("Amount") != null && long.Parse(multipart.GetForm("Amount")) < 0)
                {
                    throw new ApplicationException("Amount must be greater than 0");
                }
                if (multipart.GetForm("Description") == null)
                {
                    throw new ApplicationException("Description cannot be empty");
                }

                Transaction transaction = new Transaction
                {
                    Amount      = long.Parse(multipart.GetForm("Amount")),
                    fkAccountId = long.Parse(multipart.GetForm("fkAccountId")),
                    Date        = DateTime.ParseExact(multipart.GetForm("Date"), "dd-MM-yyyy", CultureInfo.InvariantCulture)
                };

                /*
                 * Realization realization = new Realization
                 * {
                 *  Description = multipart.GetForm("Description")
                 * };
                 */

                var account = dbContext.Set <Account>()
                              .Include(a => a.Apbdes)
                              .First(a => a.Id == transaction.fkAccountId);

                KawalDesaController.CheckRegionAllowed(dbContext, account.Apbdes.fkRegionId);

                transaction.fkActorId = account.Apbdes.fkRegionId;
                dbContext.Set <Transaction>().Add(transaction);

                //realization.fkTransactionId = transaction.Id;
                //dbContext.Set<Realization>().Add(realization);

                if (multipart.Files.Count > 0)
                {
                    var fileResult = multipart.Files[0];
                    var blob       = new Blob(fileResult);
                    dbContext.Set <Blob>().Add(blob);

                    /*
                     * TODO
                     * TransactionFile transactionFile = new TransactionFile()
                     * {
                     *  FileName = blob.Name,
                     *  fkFileId = blob.Id,
                     *  IsActivated = true
                     * };
                     * dbContext.Set<TransactionFile>().Add(transactionFile);
                     */
                    fileResult.Move(blob.FilePath);
                }

                dbContext.SaveChanges();
            }
            finally
            {
                multipart.DeleteUnmoved();
            }
        }