protected override void CreateChildControls()
        {
            if (Template != null) // задан темплэйт
            {
                Controls.Clear();


                administrationData = new AdministrationData();
                Template.InstantiateIn(administrationData);

                // javascript hash
                Utils.AddScriptToPage("hash256.js", Page, GetType());


                //------------------------------ login template logic 
                // ищем контролы и проверяем что все есть
                switch (LoginType)
                {
                    case ELoginType.Login:
                        EnsureLogincontrols();
                        break;
                    case ELoginType.Remember:
                        EnsureRememberControls();
                        break;
                }


                Controls.Add(administrationData);
            }
            else // разметка по умолчанию
            {
                throw new Exception("define Template for Login controller!");
            }

            //-------------------------------------
        }
        public ActionResult AdministrationData(AdministrationData data, string prevBtn, string nextBtn)
        {
            WizardModel obj = GetWizard();

            if (prevBtn != null)
            {
                OrganisationData od = new OrganisationData();

                od.Vision  = obj.OrgData.Vision;
                od.Mission = obj.OrgData.Mission;
                od.WomensRightsIssuesId = obj.OrgData.WomensRightsIssuesId;
                od.YearFormed           = obj.OrgData.YearFormed;
                od.Founder               = obj.OrgData.Founder;
                od.ReasonFormed          = obj.OrgData.ReasonFormed;
                od.OperationalAreaId     = obj.OrgData.OperationalAreaId;
                od.OperationalLocationId = obj.OrgData.OperationalLocationId;
                od.Achievements          = obj.OrgData.Achievements;

                return(View("OrganisationData"));
            }

            if (nextBtn != null)
            {
                if (ModelState.IsValid)
                {
                    obj.AdminData.Name = data.Name;

                    obj.AdminData.PhysicalAddressLine1 = data.PhysicalAddressLine1;
                    obj.AdminData.PhysicalAddressLine2 = data.PhysicalAddressLine2;
                    obj.AdminData.PhysicalCity         = data.PhysicalCity;
                    obj.AdminData.PhysicalCountry      = data.PhysicalCountry;
                    obj.AdminData.PhysicalCode         = data.PhysicalCode;

                    obj.AdminData.PostalAddressLine1 = data.PostalAddressLine1;
                    obj.AdminData.PostalAddressLine2 = data.PostalAddressLine2;
                    obj.AdminData.PostalCity         = data.PostalCity;
                    obj.AdminData.PostalCountry      = data.PostalCountry;
                    obj.AdminData.PostalCode         = data.PostalCode;

                    obj.AdminData.TelephoneNumber = data.TelephoneNumber;
                    obj.AdminData.MobileNumber    = data.MobileNumber;
                    obj.AdminData.EmailAddress    = data.EmailAddress;
                    obj.AdminData.WebsiteUrl      = data.WebsiteUrl;
                    obj.AdminData.SkypeAddress    = data.SkypeAddress;
                    obj.AdminData.TwitterAccount  = data.TwitterAccount;
                    obj.AdminData.FacebookAccount = data.FacebookAccount;

                    obj.AdminData.ContactName            = data.ContactName;
                    obj.AdminData.ContactPosition        = data.ContactPosition;
                    obj.AdminData.ContactTelephoneNumber = data.ContactTelephoneNumber;
                    obj.AdminData.ContactEmailAddress    = data.ContactEmailAddress;
                    obj.AdminData.ContactSkypeAddress    = data.ContactSkypeAddress;

                    obj.AdminData.LearntAboutId              = data.LearntAboutId;
                    obj.AdminData.ReceivedPreviousGrant      = data.ReceivedPreviousGrant;
                    obj.AdminData.PreviousGrantInformationId = data.PreviousGrantInformationId;

                    return(View("StructureData"));
                }
            }

            return(View());
        }
        public ActionResult StructureData(StructureData data, string prevBtn, string nextBtn)
        {
            WizardModel obj = GetWizard();

            if (prevBtn != null)
            {
                if (ModelState.IsValid)
                {
                    AdministrationData ad = new AdministrationData();

                    ad.Name = obj.AdminData.Name;

                    ad.PhysicalAddressLine1 = obj.AdminData.PhysicalAddressLine1;
                    ad.PhysicalAddressLine2 = obj.AdminData.PhysicalAddressLine2;
                    ad.PhysicalCity         = obj.AdminData.PhysicalCity;
                    ad.PhysicalCountry      = obj.AdminData.PhysicalCountry;
                    ad.PhysicalCode         = obj.AdminData.PhysicalCode;

                    ad.PostalAddressLine1 = obj.AdminData.PostalAddressLine1;
                    ad.PostalAddressLine2 = obj.AdminData.PostalAddressLine2;
                    ad.PostalCity         = obj.AdminData.PostalCity;
                    ad.PostalCountry      = obj.AdminData.PostalCountry;
                    ad.PostalCode         = obj.AdminData.PostalCode;

                    ad.TelephoneNumber = obj.AdminData.TelephoneNumber;
                    ad.MobileNumber    = obj.AdminData.MobileNumber;
                    ad.EmailAddress    = obj.AdminData.EmailAddress;
                    ad.WebsiteUrl      = obj.AdminData.WebsiteUrl;
                    ad.SkypeAddress    = obj.AdminData.SkypeAddress;
                    ad.TwitterAccount  = obj.AdminData.TwitterAccount;
                    ad.FacebookAccount = obj.AdminData.FacebookAccount;

                    ad.ContactName            = obj.AdminData.ContactName;
                    ad.ContactPosition        = obj.AdminData.ContactPosition;
                    ad.ContactTelephoneNumber = obj.AdminData.ContactTelephoneNumber;
                    ad.ContactEmailAddress    = obj.AdminData.ContactEmailAddress;
                    ad.ContactSkypeAddress    = obj.AdminData.ContactSkypeAddress;

                    ad.LearntAboutId              = obj.AdminData.LearntAboutId;
                    ad.ReceivedPreviousGrant      = obj.AdminData.ReceivedPreviousGrant;
                    ad.PreviousGrantInformationId = obj.AdminData.PreviousGrantInformationId;

                    return(View("AdministrationData"));
                }
            }

            if (nextBtn != null)
            {
                if (ModelState.IsValid)
                {
                    obj.StructData.IsWomensRightsOrganisation = data.IsWomensRightsOrganisation;
                    obj.StructData.WomensRightsPhiliosophy    = data.WomensRightsPhiliosophy;
                    obj.StructData.WomensRoleInDecisionMaking = data.WomensRoleInDecisionMaking;
                    obj.StructData.HowAreKeyDecisionsMade     = data.HowAreKeyDecisionsMade;
                    obj.StructData.WomensRoleOnBoard          = data.WomensRoleOnBoard;
                    obj.StructData.PaidStaffId             = data.PaidStaffId;
                    obj.StructData.UnpaidStaffId           = data.UnpaidStaffId;
                    obj.StructData.BoardId                 = data.BoardId;
                    obj.StructData.AdvisorId               = data.AdvisorId;
                    obj.StructData.VolunteerId             = data.VolunteerId;
                    obj.StructData.MemberId                = data.MemberId;
                    obj.StructData.RegistrationCertificate = data.RegistrationCertificate;
                    obj.StructData.ReferenceLetter         = data.ReferenceLetter;

                    // save data here

                    RemoveWizard();

                    return(View("Success"));
                }
            }
            return(View());
        }
        public IActionResult Index()
        {
            var model = new AdministrationData
            {
                BenevolesCount      = _context.Benevoles.Count(),
                PointagesCount      = _context.Pointages.Count(),
                LastCreatedPointage = _context.Pointages.OrderByDescending(p => p.ID).FirstOrDefault(),
            };

            // Log files
            var pathLogs = Environment.GetEnvironmentVariable("APP_LOG_FILE_PATH");

            if (!string.IsNullOrWhiteSpace(pathLogs))
            {
                var dirLogs = new DirectoryInfo(Path.GetDirectoryName(pathLogs));

                if (dirLogs.Exists)
                {
                    var logFiles = dirLogs.GetFiles()
                                   .OrderByDescending(f => f.LastWriteTime)
                                   .Select(f => new AdministrationFileData
                    {
                        Name = f.Name,
                        Date = f.LastWriteTime,
                    });

                    model.LogFiles = logFiles;
                }
                else
                {
                    model.LogFilesError = "Chemin des logs non trouvé";
                }
            }
            else
            {
                model.LogFilesError = "Aucun chemin de logs configuré";
            }

            // DB backup files
            var pathBackups = Environment.GetEnvironmentVariable("APP_DB_BACKUP_PATH");

            if (!string.IsNullOrWhiteSpace(pathBackups))
            {
                var dirBackups = new DirectoryInfo(pathBackups);

                if (dirBackups.Exists)
                {
                    var backupFiles = dirBackups.GetFiles()
                                      .OrderByDescending(f => f.LastWriteTime)
                                      .Select(f => new AdministrationFileData
                    {
                        Name = f.Name,
                        Date = f.LastWriteTime,
                    });

                    model.BackupFiles = backupFiles;
                }
                else
                {
                    model.BackupFilesError = "Chemin des backups non trouvé";
                }
            }
            else
            {
                model.BackupFilesError = "Aucun chemin de backup configuré";
            }

            return(View(model));
        }
        protected override void CreateChildControls()
        {
            if (Template != null) // задан темплэйт
            {
                Controls.Clear();


                administrationData = new AdministrationData();
                Template.InstantiateIn(administrationData);


                // ищем контролы и проверяем что все есть
                var rtwEnable = (GridView) administrationData.FindControl("rtwEnable");
                var rtwConnect = (Button) administrationData.FindControl("rtwConnect");
                var rtwErrorMessage = (Label) administrationData.FindControl("rtwErrorMessage");
                var rtwMessage = (Label) administrationData.FindControl("rtwMessage");
                var rtwAjaxImg = (Image) administrationData.FindControl("rtwAjaxImg");

                if (rtwEnable == null || rtwConnect == null || rtwMessage == null ||
                    rtwErrorMessage == null || rtwAjaxImg == null)
                {
                    throw new ArgumentException(
                        "Template must contain all of controls with ids: rtwEnable, trwConnect, rtwReconnect, rtwRemove, rtwMessage, rtwErrorMessage, rtwCheck, rtwAjaxImg");
                }

                // устанавливаем видимость контролов
                rtwAjaxImg.Attributes.CssStyle["display"] = "none";

                rtwConnect.ClientIDMode =
                    rtwEnable.ClientIDMode =
                    rtwMessage.ClientIDMode =
                    rtwErrorMessage.ClientIDMode = rtwAjaxImg.ClientIDMode = ClientIDMode.Static;
                rtwConnect.OnClientClick = "return false;";

                rtwEnable.RowDataBound += TokenRowDataBound;
                // список токенов
                rtwEnable.DataSource = m_tokenProcessor.GetUserTokens(m_tokenProcessor.GetUserName());
                rtwEnable.DataBind();

                // здесь добавляем на страницу имя пользователя, для создания контейнера
                Page.ClientScript.RegisterStartupScript(typeof (Control), "rtwEnable", string.Format(
                    "if ( rtwGID('{1}') != null) {{ {0}.rtwEnable = rtwGID('{1}'); /* {0}.rtwEnable.b = document.getElementsByName(rtwGID('{1}').getElementsByTagName('input')[0].getAttribute('name')); */ {0}.rtwUser = '******';{0}.controlType = '{5}';}}",
                    JScontrolVar, rtwEnable.ClientID, m_tokenProcessor.GetUserName(),
                    HttpContext.Current.Request.Url.Host,
                    HttpContext.Current.Request.Url.Port != 80 ? ":" + Port : string.Empty, GetType().Name), true);


                // кнопка привязать токен
                Utils.IdToJavaScript(rtwConnect, JScontrolVar, "rtwConnect", Page);

                // контрол для вывода текста
                Utils.IdToJavaScript(rtwMessage, JScontrolVar, "rtwMessage", Page);

                // контрол для вывода текста
                Utils.IdToJavaScript(rtwErrorMessage, JScontrolVar, "rtwErrorMessage", Page);

                // картинка аякс запроса
                Utils.IdToJavaScript(rtwAjaxImg, JScontrolVar, "rtwAjaxImg", Page);

                // элемент со всеми контролами
                Utils.IdToJavaScript(this, JScontrolVar, "rtwAll", Page);
                
                Controls.Add(administrationData);
            }
            else // нет разметки по умолчанию
            {
                throw new Exception("define Template for Admin controller!");
            }
        }