public void SendMail(uint clientCode, string tab, [DataBind("MailSentEntity")] MailSentEntity sentEntity)
 {
     try {
         sentEntity.UserName = Admin.UserName;
         DbSession.Save(sentEntity);
         Notify("Сохранено");
     }
     catch (ValidationException ex) {
         Flash["SendMailError"] = ex.ValidationErrorMessages[0];
     }
     Redirect("Billing", "Edit", new { clientCode, billingCode = sentEntity.PayerId, tab });
 }
        public void Edit(uint billingCode,
                         uint clientCode,
                         string tab,
                         uint currentJuridicalOrganizationId,
                         [SmartBinder(Expect = "filter.Types")] BillingFilter filter)
        {
            filter.ServiceId = clientCode;
            filter.PayerId   = billingCode;
            filter.Tab       = tab;

            var payer = filter.Payer;

            var userIds = payer.Users.Select(u => u.Id).ToArray();

            PropertyBag["UsersMessages"] = DbSession.Query <UserMessage>()
                                           .Where(m => userIds.Contains(m.Id) && m.ShowMessageCount > 0)
                                           .ToList();

            PropertyBag["filter"]          = filter;
            PropertyBag["LogRecords"]      = AuditLogRecord.GetLogs(DbSession, payer, filter.Types.Contains(LogMessageType.System));
            PropertyBag["Instance"]        = payer;
            PropertyBag["payer"]           = payer;
            PropertyBag["MailSentHistory"] = MailSentEntity.GetHistory(payer);
            PropertyBag["Today"]           = DateTime.Today;
            PropertyBag["Recipients"]      = DbSession.Query <Recipient>().OrderBy(r => r.Name).ToList();
            PropertyBag["suppliers"]       = DbSession.Query <Supplier>().Where(s => s.Payer == payer).OrderBy(s => s.Name).ToList();
            PropertyBag["clients"]         = payer.Clients.OrderBy(c => c.Name).ToList();
            PropertyBag["Users"]           = payer.Users.Where(u => u.RootService.Type != ServiceType.Supplier).ToList();
            PropertyBag["Addresses"]       = payer.Addresses;
            PropertyBag["Reports"]         = payer.GetReportAccounts();
            PropertyBag["userMessage"]     = new UserMessage();

            if (currentJuridicalOrganizationId > 0)
            {
                PropertyBag["currentJuridicalOrganizationId"] = currentJuridicalOrganizationId;
            }
        }