Example #1
0
        /// <summary>
        /// Loads the company settings.
        /// </summary>
        private void LoadCompanySettings()
        {
            IConfigurator configurator = this.CompanyScopeNode.GetCompanyConfigurator();

            ICompanyInfo companyInfo = configurator.GetCompanyInfo((string)this.CompanyScopeNode.Tag);

            // Read Company Info
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_Status, companyInfo.IsActive ? SnapInResources.Company_ActiveStatusName : SnapInResources.Company_InactiveStatusName);
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_Ssl, companyInfo.Scheme);
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_PrimaryDomain, companyInfo.Host);
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_Port, companyInfo.Port);
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_Build, companyInfo.CodeVersion.ToString(CultureInfo.CurrentUICulture));
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_DatabaseName, companyInfo.Database);
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_DatabaseVersion, companyInfo.DatabaseVersion.ToString(CultureInfo.CurrentUICulture));
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_CodePath, companyInfo.CodePath);
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_SiteId, companyInfo.SiteId.ToString(CultureInfo.CurrentUICulture));
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_IMPool, companyInfo.IMPool);
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_PortalPool, companyInfo.PortalPool);
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_DatabaseState, companyInfo.DatabaseState.ToString(CultureInfo.CurrentUICulture));
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_DefaultLanguage, companyInfo.DefaultLanguage.FriendlyName);
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_DatabaseSize, companyInfo.DatabaseSize.ToString(CultureInfo.CurrentUICulture));
            AddCompanySettingNode(SnapInResources.CompanyListView_Column_UsersCount, companyInfo.InternalUsersCount.ToString(CultureInfo.CurrentUICulture));

            // Load
            foreach (IConfigurationParameter param in this.CompanyScopeNode.GetCompanyConfigurator().ListCompanyProperties(companyInfo.Id))
            {
                AddCompanySettingNode(param.Name, param.Value, 18);
            }
        }
Example #2
0
        protected void TariffList_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (TariffList.SelectedValue == "-1")
            {
                string        companyId = CompanyUid.ToString();
                IConfigurator config    = Configurator.Create();
                ICompanyInfo  info      = config.GetCompanyInfo(companyId);

                MaxDiskSpaceValue.Text     = config.GetCompanyPropertyValue(companyId, CManage.keyCompanyDatabaseSize);
                MaxUsersValue.Text         = config.GetCompanyPropertyValue(companyId, CManage.keyCompanyMaxUsers);
                MaxExternalUsersValue.Text = config.GetCompanyPropertyValue(companyId, CManage.keyCompanyMaxExternalUsers);

                BalanceRow.Visible        = false;
                DiscountRow.Visible       = false;
                CreditLimitRow.Visible    = false;
                AlertThresholdRow.Visible = false;
            }
            else
            {
                using (IDataReader reader = Tariff.GetTariff(int.Parse(TariffList.SelectedValue), 0))
                {
                    if (reader.Read())
                    {
                        MaxDiskSpaceValue.Text     = reader["maxHdd"].ToString();
                        MaxUsersValue.Text         = reader["maxUsers"].ToString();
                        MaxExternalUsersValue.Text = reader["maxExternalUsers"].ToString();
                    }
                }

                BalanceRow.Visible        = true;
                DiscountRow.Visible       = true;
                CreditLimitRow.Visible    = true;
                AlertThresholdRow.Visible = true;
            }
        }
Example #3
0
        private void BindError()
        {
            IConfigurator config          = Configurator.Create();
            ICompanyInfo  company         = config.GetCompanyInfo(CompanyUid.ToString());
            string        installPath     = config.InstallPath;
            string        companyCodePath = Path.Combine(installPath, company.CodePath);
            string        errorsPath      = Path.Combine(companyCodePath, @"Web\Portal\Admin\Log\Error");

            string FilePath = Path.Combine(errorsPath, FileName + ".html");

            if (!File.Exists(FilePath))
            {
                FilePath = FilePath.Replace(".html", ".aspx");
            }
            if (!File.Exists(FilePath))
            {
                return;
            }

            StreamReader sr    = File.OpenText(FilePath);
            string       sTemp = sr.ReadToEnd();

            sr.Close();
            lblError.Text = sTemp.Replace("../../../Admin/errorlog.aspx", "../Pages/SiteErrorLog.aspx?id=" + CompanyUid.ToString());
        }
Example #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Guid companyUid  = new Guid(Request["companyUid"].ToString());
            int  principalId = int.Parse(Request["principalId"]);

            string ticket = "";
            string login  = "";

            using (IDataReader reader = CManage.CreateUserTicket(companyUid, principalId))
            {
                if (reader.Read())
                {
                    login  = reader["Login"].ToString();
                    ticket = reader["Ticket"].ToString();
                }
            }

            ICompanyInfo company = Configurator.Create().GetCompanyInfo(companyUid.ToString());
            string       qs      = String.Concat(
                "?login="******"&ticket=", ticket, "&redirect=",
                Server.UrlEncode("Workspace/default.aspx"));
            int        port       = (string.IsNullOrEmpty(company.Port) ? -1 : int.Parse(company.Port, CultureInfo.InvariantCulture));
            UriBuilder uriBuilder = new UriBuilder(company.Scheme, company.Host, port, "Public/default.aspx", qs);

            Response.Clear();
            Response.Write(uriBuilder.ToString());
            Response.End();
        }
Example #5
0
        /// <summary>
        /// Gets the company connection string.
        /// </summary>
        /// <param name="url">The URL.</param>
        /// <param name="company">The company.</param>
        /// <returns></returns>
        private string GetCompanyConnectionString(string url, ICompanyInfo company)
        {
            // Open Web Config
            try
            {
                string webConfigPath = Path.Combine(Path.Combine(InstallDir, company.CodePath), @"Web\Portal\Web.config");

                XmlDocument webConfig = new XmlDocument();
                webConfig.Load(webConfigPath);

                XmlNode connectionStringNode = webConfig.SelectSingleNode("configuration/appSettings/add[@key='ConnectionString']/@value");

                if (connectionStringNode == null)
                {
                    throw new ScheduleServiceException("Cannot find database connection string in portal web.config.");
                }

                return(connectionStringNode.Value);
            }
            catch (Exception ex)
            {
                // Save Error
                string msg = string.Format("SchedulerService.CheckCompanyRequiredPush() failed.\r\nURL: {0}\r\nException: {1}",
                                           url, ex);
                System.Diagnostics.Trace.WriteLine(msg);
                Log.WriteEntry(msg, EventLogEntryType.Error);
            }

            return(string.Empty);
        }
Example #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CompanyScopeNode"/> class.
        /// </summary>
        public CompanyScopeNode(ICompanyInfo companyInfo)
        {
            this.CompanyInfo = companyInfo;

            // Init Data
            LoadCompanyInfo();

            // Init Actions
            this.DataElementType      = DataElementType.Company;
            this.EnabledStandardVerbs = StandardVerbs.Delete | StandardVerbs.Refresh;

            this.StartAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_Start_Name,
                                              SnapInResources.CompanyScopeNode_Action_Start_Description, 10);
            this.StopAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_Stop_Name,
                                             SnapInResources.CompanyScopeNode_Action_Stop_Description, 11);
            this.ChangeDomainAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_UpdateAddress_Name,
                                                     SnapInResources.CompanyScopeNode_Action_ChangeDomain_Description, 12);
            this.UpgradeAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_Upgrade_Name,
                                                SnapInResources.CompanyScopeNode_Action_Upgrade_Description, 6);

            this.BrowseAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_Browse_Name,
                                               SnapInResources.CompanyScopeNode_Action_Browse_Description, 16);

            this.EnableSchedulerServiceAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_EnableSchedulerService_Name,
                                                               SnapInResources.CompanyScopeNode_Action_EnableSchedulerService_Description, 27);
            this.DisableSchedulerServiceAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_DisableSchedulerService_Name,
                                                                SnapInResources.CompanyScopeNode_Action_DisableSchedulerService_Description, 28);

            this.ChangePortalPool = new SyncAction(SnapInResources.CompanyScopeNode_Action_ChangePortalPool_Name,
                                                   SnapInResources.CompanyScopeNode_Action_ChangePortalPool_Description, 29);

            this.ActionsPaneItems.Add(this.BrowseAction);
            this.ActionsPaneItems.Add(new ActionSeparator());
            this.ActionsPaneItems.Add(this.StartAction);
            this.ActionsPaneItems.Add(this.StopAction);
            this.ActionsPaneItems.Add(new ActionSeparator());
            this.ActionsPaneItems.Add(this.ChangeDomainAction);
            this.ActionsPaneItems.Add(this.ChangePortalPool);
            this.ActionsPaneItems.Add(this.UpgradeAction);
            this.ActionsPaneItems.Add(new ActionSeparator());

            // Not Implemented yet
            //this.UpgradeAction.Enabled = false;

            // Init view
            MmcListViewDescription lvd = new MmcListViewDescription();

            lvd.DisplayName = SnapInResources.CompanySettingsListView_DisplayName;
            lvd.ViewType    = typeof(CompanySettingsListView);
            lvd.Options     = MmcListViewOptions.ExcludeScopeNodes;

            // Attach the view to the root node
            this.ViewDescriptions.Add(lvd);
            this.ViewDescriptions.DefaultIndex = 0;

            // disable actions + Images
            RefreshCompanyStatus();
        }
Example #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CompanyScopeNode"/> class.
        /// </summary>
        public CompanyScopeNode(ICompanyInfo companyInfo)
        {
            this.CompanyInfo = companyInfo;

            // Init Data
            LoadCompanyInfo();

            // Init Actions
            this.DataElementType = DataElementType.Company;
            this.EnabledStandardVerbs = StandardVerbs.Delete| StandardVerbs.Refresh;

            this.StartAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_Start_Name,
                SnapInResources.CompanyScopeNode_Action_Start_Description, 10);
            this.StopAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_Stop_Name,
                SnapInResources.CompanyScopeNode_Action_Stop_Description, 11);
            this.ChangeDomainAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_UpdateAddress_Name,
                SnapInResources.CompanyScopeNode_Action_ChangeDomain_Description, 12);
            this.UpgradeAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_Upgrade_Name,
                SnapInResources.CompanyScopeNode_Action_Upgrade_Description, 6);

            this.BrowseAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_Browse_Name,
                SnapInResources.CompanyScopeNode_Action_Browse_Description, 16);

            this.EnableSchedulerServiceAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_EnableSchedulerService_Name,
                SnapInResources.CompanyScopeNode_Action_EnableSchedulerService_Description, 27);
            this.DisableSchedulerServiceAction = new SyncAction(SnapInResources.CompanyScopeNode_Action_DisableSchedulerService_Name,
                SnapInResources.CompanyScopeNode_Action_DisableSchedulerService_Description, 28);

            this.ChangePortalPool = new SyncAction(SnapInResources.CompanyScopeNode_Action_ChangePortalPool_Name,
                SnapInResources.CompanyScopeNode_Action_ChangePortalPool_Description, 29);

            this.ActionsPaneItems.Add(this.BrowseAction);
            this.ActionsPaneItems.Add(new ActionSeparator());
            this.ActionsPaneItems.Add(this.StartAction);
            this.ActionsPaneItems.Add(this.StopAction);
            this.ActionsPaneItems.Add(new ActionSeparator());
            this.ActionsPaneItems.Add(this.ChangeDomainAction);
            this.ActionsPaneItems.Add(this.ChangePortalPool);
            this.ActionsPaneItems.Add(this.UpgradeAction);
            this.ActionsPaneItems.Add(new ActionSeparator());

            // Not Implemented yet
            //this.UpgradeAction.Enabled = false;

            // Init view
            MmcListViewDescription lvd = new MmcListViewDescription();
            lvd.DisplayName = SnapInResources.CompanySettingsListView_DisplayName;
            lvd.ViewType = typeof(CompanySettingsListView);
            lvd.Options = MmcListViewOptions.ExcludeScopeNodes;

            // Attach the view to the root node
            this.ViewDescriptions.Add(lvd);
            this.ViewDescriptions.DefaultIndex = 0;

            // disable actions + Images
            RefreshCompanyStatus();
        }
Example #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UpdateCompanyForm"/> class.
        /// </summary>
        /// <param name="serverConfigurator">The server configurator.</param>
        public UpdateCompanyForm(IConfigurator configurator, ICompanyInfo companyInfo)
        {
            InitializeComponent();

            #if RADIUS
            this.Icon = SnapInResources.portal_RS;
            #endif

            this.Configurator = configurator;
            this.CompanyInfo = companyInfo;

            InitializePage1();
        }
Example #9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UpdateCompanyForm"/> class.
        /// </summary>
        /// <param name="serverConfigurator">The server configurator.</param>
        public UpdateCompanyForm(IConfigurator configurator, ICompanyInfo companyInfo)
        {
            InitializeComponent();

#if RADIUS
            this.Icon = SnapInResources.portal_RS;
#endif

            this.Configurator = configurator;
            this.CompanyInfo  = companyInfo;

            InitializePage1();
        }
Example #10
0
        private void BinddgErrors()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("ErrorID");
            dt.Columns.Add("CreationTime", typeof(DateTime));

            IConfigurator config          = Configurator.Create();
            ICompanyInfo  company         = config.GetCompanyInfo(CompanyUid.ToString());
            string        installPath     = config.InstallPath;
            string        companyCodePath = Path.Combine(installPath, company.CodePath);
            string        errorsPath      = Path.Combine(companyCodePath, @"Web\Portal\Admin\Log\Error");

            DirectoryInfo dir = new DirectoryInfo(errorsPath);

            foreach (FileInfo fileinfo in dir.GetFiles())
            {
                string ErrorLink = fileinfo.Name;

                string ext = "";
                if (ErrorLink.IndexOf(".aspx") >= 0)
                {
                    ext = ".aspx";
                }
                else if (ErrorLink.IndexOf(".html") >= 0)
                {
                    ext = ".html";
                }
                else
                {
                    continue;
                }

                string PureName = ErrorLink.Substring(0, ErrorLink.IndexOf(ext));
                string ErrorID  = PureName.Substring(PureName.LastIndexOf("_") + 1);

                DataRow dr = dt.NewRow();
                dr["ErrorID"]      = "<a href='SiteErrorLog.aspx?id=" + CompanyUid.ToString() + "&fileName=" + PureName + "'>" + ErrorID + "</a>";
                dr["CreationTime"] = fileinfo.CreationTime;
                dt.Rows.Add(dr);
            }

            DataView dv = dt.DefaultView;

            dv.Sort = "CreationTime DESC";

            dgErrors.DataSource = dv;
            dgErrors.DataBind();
        }
Example #11
0
        public void UpdateTrial(
            string companyId,
            string companyName,
            bool isActive,
            int maxUsers,
            int maxExternalUsers,
            int maxDiskSpace,

            string contactName,
            string contactPhone,
            string contactEmail,

            DateTime trialStartDate,
            DateTime trialEndDate
            )
        {
            IConfigurator config  = Configurator.Create();
            ICompanyInfo  company = config.GetCompanyInfo(companyId);

            int     tariffId    = -1;
            decimal balance     = 0m;
            int     discount    = 0;
            decimal creditLimit = 0m;
            bool    sendSpam    = true;

            using (IDataReader reader = CManage.GetCompany(new Guid(companyId)))
            {
                if (reader.Read())
                {
                    if (reader["tariffId"] != DBNull.Value)
                    {
                        tariffId = (int)reader["tariffId"];
                    }
                    balance     = (decimal)reader["balance"];
                    discount    = (int)reader["discount"];
                    creditLimit = (decimal)reader["creditLimit"];
                    sendSpam    = (bool)reader["send_spam"];
                }
            }

            CManage.UpdateTrialCompany(new Guid(companyId), companyName, company.Host, company.Scheme, company.Port, 1,
                                       trialStartDate, trialEndDate, isActive, contactName, contactPhone, contactEmail,
                                       maxUsers, maxExternalUsers, maxDiskSpace, sendSpam, false);
        }
Example #12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ChangeDomainForm"/> class.
        /// </summary>
        /// <param name="configurator">The configurator.</param>
        public EditDefaultAddressForm(IConfigurator serverConfigurator, string companyId)
        {
            InitializeComponent();

#if RADIUS
            this.Icon = SnapInResources.portal_RS;
#endif


            this.Configurator = serverConfigurator;
            this.CompanyId    = companyId;

            this.ValidBackColor   = Color.FromKnownColor(System.Drawing.KnownColor.Window);
            this.InvalidBackColor = Color.FromArgb(255, 192, 192);

            ICompanyInfo companyInfo = this.Configurator.GetCompanyInfo(companyId);

            comboBoxSchema.SelectedIndex = companyInfo.Scheme == "https" ? 1 : 0;
            textHostName.Text            = companyInfo.Host;
            textBoxIisPort.Text          = companyInfo.Port;
        }
        private IProductOrderInfo GetProductOrder(DateTime date, ICompanyInfo company, IProductItem item, double quantity)
        {
            SharedUtility.ThrowIfNull(date, "date");
            SharedUtility.ThrowIfNull(company, "company");
            SharedUtility.ThrowIfNull(item, "item");

            ProductOrderInfo order = new ProductOrderInfo();
            order.OrderDate = date;
            order.ProductItem = item;
            order.Quantity = quantity;
            order.Company = company;
            return order;
        }
Example #14
0
 public TestController(string userTag, string loginSessionId, IViewModelFactory viewModelFactory, ICompanyInfo routingGroupInfo)
     : base(viewModelFactory, routingGroupInfo)
 {
     RoomService.CreateClient();
     LocalUserVm.UserTag      = userTag;
     LocalUserVm.LoginSession = new LoginSession()
     {
         UserId = LocalUserVm.UserId, LoginSessionId = loginSessionId
     };
     RoomVm            = viewModelFactory.GetViewModel <RoomViewModel>();
     ContactController = new ContactController(RoomService);
     ContactData       = ContactData.GetContactData(ContactController, LocalUserVm.UserId, LocalUserVm.LoginSession);
     SocialData        = new SocialData(RoomService, LocalUserVm.Model);
     ContactAccessors  = new ObservableCollection <ContactAccessUi>();
 }
Example #15
0
        private void DeleteCompanyWeb(ICompanyInfo company, string context)
        {
            if (company != null)
            {
                string codeRoot = Path.Combine(InstallPath, company.CodePath);
                string webPath = Path.Combine(codeRoot, "Web");

                IIisManager iisManager = IisManager.Create(webPath);

                // Delete web site
                try
                {
                    iisManager.DeleteSite(company.SiteId);
                }
                catch (Exception ex)
                {
                    Log.WriteException(context, ex);
                }

                if (iisManager.IsApplicationPoolSupported)
                {
                    // Delete portal application pool
                    try
                    {
                        if (company.IsPortalPoolCreated)
                            iisManager.DeleteApplicationPool(company.PortalPool);
                    }
                    catch (Exception ex)
                    {
                        Log.WriteException(context, ex);
                    }

                    // Delete IM application pool
                    try
                    {
                        iisManager.DeleteApplicationPool(company.IMPool);
                    }
                    catch (Exception ex)
                    {
                        Log.WriteException(context, ex);
                    }
                }

                // Delete ISAPI extension
                try
                {
                    iisManager.DeleteIsapiExtension();
                }
                catch (Exception ex)
                {
                    Log.WriteException(context, ex);
                }

                // Delete code directory
                try
                {
                    Directory.Delete(codeRoot, true);
                }
                catch
                {
                }
            }
        }
Example #16
0
        private void BindData()
        {
            ListItem li;

            AspSettings settings = AspSettings.Load();

            string        companyId = CompanyUid.ToString();
            IConfigurator config    = Configurator.Create();
            ICompanyInfo  info      = config.GetCompanyInfo(companyId);

            txtOccupiedDiskSpace.Text = info.DatabaseSize.ToString(CultureInfo.CurrentUICulture);
            MaxDiskSpaceValue.Text    = config.GetCompanyPropertyValue(companyId, CManage.keyCompanyDatabaseSize);

            txtActiveInternalUsers.Text = info.InternalUsersCount.ToString(CultureInfo.CurrentUICulture);
            MaxUsersValue.Text          = config.GetCompanyPropertyValue(companyId, CManage.keyCompanyMaxUsers);

            txtActiveExternalUsers.Text = info.ExternalUsersCount.ToString(CultureInfo.CurrentUICulture);
            MaxExternalUsersValue.Text  = config.GetCompanyPropertyValue(companyId, CManage.keyCompanyMaxExternalUsers);

            txtDomain.Text   = info.Host;
            IsActive.Checked = info.IsActive;

            li = SchemeList.Items.FindByValue(info.Scheme);
            if (li != null)
            {
                li.Selected = true;
            }

            PortValue.Text = info.Port;

            using (IDataReader reader = CManage.GetCompany(CompanyUid))
            {
                if (reader.Read())
                {
                    txtCompanyName.Text = reader["company_name"].ToString();
                    if (reader["contact_name"] != DBNull.Value)
                    {
                        txtContactName.Text = reader["contact_name"].ToString();
                    }
                    if (reader["contact_phone"] != DBNull.Value)
                    {
                        txtContactPhone.Text = reader["contact_phone"].ToString();
                    }
                    if (reader["contact_email"] != DBNull.Value)
                    {
                        txtContactEmail.Text = reader["contact_email"].ToString();
                    }

                    bool showTariffInfo = true;
                    if (config.GetCompanyPropertyValue(companyId, CManage.keyCompanyType) == ((byte)CompanyType.Trial).ToString())
                    {
                        TypeList.Items.FindByValue(((byte)CompanyType.Trial).ToString()).Selected = true;
                        txtDateFrom.Text = ((DateTime)reader["start_date"]).ToShortDateString();

                        string endDateString = config.GetCompanyPropertyValue(companyId, CManage.keyCompanyEndDate);
                        if (!String.IsNullOrEmpty(endDateString))
                        {
                            txtDateTo.Text = DateTime.Parse(endDateString, CultureInfo.InvariantCulture).ToShortDateString();
                        }

                        TariffRow.Visible = false;
                        showTariffInfo    = false;
                    }
                    else
                    {
                        TypeList.Items.FindByValue(((byte)CompanyType.Billable).ToString()).Selected = true;
                        txtDateFrom.Text = DateTime.Now.Date.ToShortDateString();
                        txtDateTo.Text   = DateTime.Now.Date.AddDays(settings.TrialPeriod).ToShortDateString();

                        DateFromRow.Visible = false;
                        DateToRow.Visible   = false;
                    }

                    SendSpamCheckBox.Checked = (bool)reader["send_spam"];

                    if (reader["tariffId"] != DBNull.Value)
                    {
                        li = TariffList.Items.FindByValue(reader["tariffId"].ToString());
                        if (li != null)
                        {
                            li.Selected = true;
                        }
                    }
                    else
                    {
                        showTariffInfo = false;
                    }

                    BalanceValue.Text        = ((decimal)reader["Balance"]).ToString("f");
                    DiscountValue.Text       = reader["Discount"].ToString();
                    CreditLimitValue.Text    = ((decimal)reader["CreditLimit"]).ToString("f");
                    AlertThresholdValue.Text = ((decimal)reader["AlertThreshold"]).ToString("f");

                    if (!showTariffInfo)
                    {
                        BalanceRow.Visible        = false;
                        DiscountRow.Visible       = false;
                        CreditLimitRow.Visible    = false;
                        AlertThresholdRow.Visible = false;
                    }
                }
            }
        }
Example #17
0
        public static void AddPayment(Guid companyUid, DateTime dt, decimal amount, decimal bonus, string orderNo, bool checkUnicity)
        {
            if (amount + bonus <= 0)
            {
                throw new ArgumentException("Wrong value", "amount");
            }

            IConfigurator config  = Configurator.Create();
            ICompanyInfo  company = config.GetCompanyInfo(companyUid.ToString());

            if (company == null)
            {
                throw new ArgumentException(String.Concat("CompanyUid = ", companyUid, " doesn't exist."));
            }

            if (checkUnicity && !string.IsNullOrEmpty(orderNo) && CheckPaymentOrderNo(companyUid, orderNo) > 0)
            {
                throw new Exception(String.Concat("Order # ", orderNo, " already registered."));
            }

            bool newTran = DBHelper.BeginTransaction();

            try
            {
                DBHelper.RunSP("ASP_PAYMENT_ADD",
                               DBHelper.mp("@companyUid", SqlDbType.UniqueIdentifier, companyUid),
                               DBHelper.mp("@dt", SqlDbType.DateTime, dt),
                               DBHelper.mp("@amount", SqlDbType.Money, amount),
                               DBHelper.mp("@bonus", SqlDbType.Money, bonus),
                               DBHelper.mp("@orderNo", SqlDbType.NVarChar, 50, orderNo));

                UpdateBalance(companyUid, amount + bonus);

                // Activate inactive company
                if (!company.IsActive)
                {
                    DBHelper.RunSP("ASP_COMPANY_UPDATE_IS_ACTIVE",
                                   DBHelper.mp("@company_uid", SqlDbType.UniqueIdentifier, companyUid),
                                   DBHelper.mp("@is_active", SqlDbType.Bit, true));

                    config.ActivateCompany(companyUid.ToString(), true, false);
                }

                #region Change company type from trial to billable
                if (int.Parse(config.GetCompanyPropertyValue(companyUid.ToString(), CManage.keyCompanyType)) == (int)CompanyType.Trial)
                {
                    bool tariffIsValid    = false;
                    int  maxUsers         = -1;
                    int  maxExternalUsers = -1;
                    int  maxDiskSpace     = -1;

                    AspSettings settings = AspSettings.Load();
                    if (settings.UseTariffs && settings.DefaultTariff > 0)
                    {
                        using (IDataReader reader = GetTariff(settings.DefaultTariff, 0))
                        {
                            if (reader.Read())
                            {
                                tariffIsValid    = true;
                                maxUsers         = (int)reader["maxUsers"];
                                maxExternalUsers = (int)reader["maxExternalUsers"];
                                maxDiskSpace     = (int)reader["maxHdd"];
                            }
                        }
                    }

                    if (tariffIsValid)
                    {
                        config.SetCompanyPropertyValue(companyUid.ToString(), CManage.keyCompanyMaxUsers, maxUsers.ToString());
                        config.SetCompanyPropertyValue(companyUid.ToString(), CManage.keyCompanyMaxExternalUsers, maxExternalUsers.ToString());
                        config.SetCompanyPropertyValue(companyUid.ToString(), CManage.keyCompanyDatabaseSize, maxDiskSpace.ToString());

                        DBHelper.RunSP("ASP_COMPANY_UPDATE_TARIFF",
                                       DBHelper.mp("@companyUid", SqlDbType.UniqueIdentifier, companyUid),
                                       DBHelper.mp("@tariffId", SqlDbType.Int, settings.DefaultTariff));
                    }

                    config.SetCompanyPropertyValue(companyUid.ToString(), CManage.keyCompanyType, ((int)CompanyType.Billable).ToString());
                    CManage.UpdateCompanyType(companyUid, (byte)CompanyType.Billable);
                }
                #endregion

                // Ensure, that the unpaid period is recalculated
                RecalculateBalance();

                TemplateVariables vars = CManage.CompanyGetVariables(companyUid);
                if (!string.IsNullOrEmpty(vars["ContactEmail"]))
                {
                    vars["Amount"] = amount.ToString("f");
                    vars["Bonus"]  = bonus.ToString("f");
                    vars["Total"]  = (amount + bonus).ToString("f");
                    CManage.SendEmail(vars["ContactEmail"], EmailType.ClientBalanceUp, vars);
                }

                DBHelper.Commit(newTran);
            }
            catch (Exception)
            {
                DBHelper.Rollback(newTran);
                throw;
            }
        }
Example #18
0
        /// <summary>
        /// Gets the company connection string.
        /// </summary>
        /// <param name="url">The URL.</param>
        /// <param name="company">The company.</param>
        /// <returns></returns>
        private string GetCompanyConnectionString(string url, ICompanyInfo company)
        {
            // Open Web Config
            try
            {
                string webConfigPath = Path.Combine(Path.Combine(InstallDir, company.CodePath), @"Web\Portal\Web.config");

                XmlDocument webConfig = new XmlDocument();
                webConfig.Load(webConfigPath);

                XmlNode connectionStringNode = webConfig.SelectSingleNode("configuration/appSettings/add[@key='ConnectionString']/@value");

                if (connectionStringNode == null)
                    throw new ScheduleServiceException("Cannot find database connection string in portal web.config.");

                return connectionStringNode.Value;

            }
            catch (Exception ex)
            {
                // Save Error
                string msg = string.Format("SchedulerService.CheckCompanyRequiredPush() failed.\r\nURL: {0}\r\nException: {1}",
                    url, ex);
                System.Diagnostics.Trace.WriteLine(msg);
                Log.WriteEntry(msg, EventLogEntryType.Error);
            }

            return string.Empty;
        }
Example #19
0
        private void BindData()
        {
            string        companyId = CompanyUid.ToString();
            IConfigurator config    = Configurator.Create();
            ICompanyInfo  company   = config.GetCompanyInfo(companyId);

            int dbSize    = company.DatabaseSize;
            int maxDbSize = int.Parse(config.GetCompanyPropertyValue(companyId, CManage.keyCompanyDatabaseSize));

            lblOccupiedDiskSpace.Text = dbSize.ToString();
            lblMaxDiskSpace.Text      = maxDbSize.ToString();
            if (maxDbSize == -1)
            {
                lblMaxDiskSpace.Text = LocRM.GetString("unlimited");
            }
            else if (dbSize >= maxDbSize)
            {
                lblOccupiedDiskSpace.CssClass = "ibn-error";
            }

            BindUsersCount(lblActiveUsers, lblAllowedUsers, company.InternalUsersCount, CManage.keyCompanyMaxUsers, companyId, config);
            BindUsersCount(lblActiveExternalUsers, lblAllowedExternalUsers, company.ExternalUsersCount, CManage.keyCompanyMaxExternalUsers, companyId, config);

            int        port       = (string.IsNullOrEmpty(company.Port) ? -1 : int.Parse(company.Port, CultureInfo.InvariantCulture));
            UriBuilder uriBuilder = new UriBuilder(company.Scheme, company.Host, port);

            PortalLink.Text        = uriBuilder.ToString();
            PortalLink.NavigateUrl = PortalLink.Text;

            if (company.IsActive)
            {
                lblIsActive.Text = string.Concat("<img alt='' src='../layouts/images/accept.gif'/> ", LocRM.GetString("Yes"));
            }
            else
            {
                lblIsActive.Text = LocRM.GetString("No");
            }

            DatabaseLabel.Text = company.Database;

            using (IDataReader reader = CManage.GetCompany(CompanyUid))
            {
                if (reader.Read())
                {
                    lblCompanyName.Text = reader["company_name"].ToString();

                    if (reader["contact_name"] != DBNull.Value)
                    {
                        ContactNameLabel.Text = reader["contact_name"].ToString();
                    }
                    if (reader["contact_phone"] != DBNull.Value)
                    {
                        ContactPhoneLabel.Text = reader["contact_phone"].ToString();
                    }
                    if (reader["contact_email"] != DBNull.Value && reader["contact_email"].ToString() != string.Empty)
                    {
                        ContactEmailLabel.Text = String.Format(CultureInfo.InvariantCulture,
                                                               "<a href=\"mailto:{0}\">{0}</a>", reader["contact_email"].ToString());
                    }

                    if ((bool)reader["send_spam"])
                    {
                        SendSpamLabel.Text = string.Concat("<img alt='' src='../layouts/images/accept.gif'/> ", LocRM.GetString("Yes"));
                    }
                    else
                    {
                        SendSpamLabel.Text = LocRM.GetString("No");
                    }

                    if (config.GetCompanyPropertyValue(companyId, CManage.keyCompanyType) == ((byte)CompanyType.Trial).ToString())
                    {
                        lblType.Text = "Trial";
                        string endDateString = config.GetCompanyPropertyValue(companyId, CManage.keyCompanyEndDate);
                        if (!String.IsNullOrEmpty(endDateString))
                        {
                            lblDateTo.Text = DateTime.Parse(endDateString, CultureInfo.InvariantCulture).ToShortDateString();
                        }

                        TariffDelimiterRow.Visible = false;
                        TariffRow.Visible          = false;
                        BalanceRow.Visible         = false;
                        DiscountRow.Visible        = false;
                        PaidTillRow.Visible        = false;
                        CreditLimitRow.Visible     = false;
                        AlertThresholdRow.Visible  = false;
                    }
                    else
                    {
                        lblType.Text    = "Billable";
                        trStart.Visible = false;
                        trEnd.Visible   = false;
                        lblDateTo.Text  = "";

                        if (reader["tariffName"] != DBNull.Value)
                        {
                            TariffValue.Text         = reader["tariffName"].ToString();
                            TariffValue.NavigateUrl  = "~/Pages/TariffEdit.aspx?TariffId=" + reader["tariffId"].ToString();
                            BalanceValue.Text        = ((decimal)reader["Balance"]).ToString("f");
                            DiscountValue.Text       = reader["Discount"].ToString();
                            CreditLimitValue.Text    = ((decimal)reader["CreditLimit"]).ToString("f");
                            AlertThresholdValue.Text = ((decimal)reader["AlertThreshold"]).ToString("f");

                            decimal credit    = (decimal)reader["CreditLimit"];
                            decimal balance   = (decimal)reader["balance"];
                            decimal dailyCost = (decimal)reader["dailyCost30"];
                            int     discount  = (int)reader["discount"];
                            try
                            {
                                int daysBeforeEnd = (int)((credit + balance) / (dailyCost - dailyCost * discount / 100m));
                                PaidTillValue.Text = DateTime.Now.AddDays(daysBeforeEnd).ToShortDateString();
                                if (daysBeforeEnd < 0)
                                {
                                    PaidTillValue.Text = String.Concat("<span class='ibn-alerttext'>", PaidTillValue.Text, "</span>");
                                }
                            }
                            catch (Exception)
                            {
                            }

                            if (reader["symbol"] != DBNull.Value)
                            {
                                BalanceValue.Text        = String.Concat(BalanceValue.Text, " ", reader["symbol"].ToString());
                                CreditLimitValue.Text    = String.Concat(CreditLimitValue.Text, " ", reader["symbol"].ToString());
                                AlertThresholdValue.Text = String.Concat(AlertThresholdValue.Text, " ", reader["symbol"].ToString());
                            }
                        }
                        else
                        {
                            TariffValue.Text          = LocRM.GetString("NoTariff");
                            BalanceRow.Visible        = false;
                            DiscountRow.Visible       = false;
                            PaidTillRow.Visible       = false;
                            CreditLimitRow.Visible    = false;
                            AlertThresholdRow.Visible = false;
                        }
                    }

                    if (reader["start_date"] != DBNull.Value)
                    {
                        lblDateFrom.Text = ((DateTime)reader["start_date"]).ToShortDateString();
                    }
                }
            }
        }
 private string GetOrderKey(DateTime date, ICompanyInfo company)
 {
     SharedUtility.ThrowIfNull(date, "date");
     SharedUtility.ThrowIfNull(company, "company");
     return date.ToShortDateString() + company.NickName + company.Id;
 }
        private void OnSwitchingCompany(ICompanyInfo originalCompany, ICompanyInfo newCompany)
        {
            SharedUtility.ThrowIfNull(newCompany, "newCompany");

            if (_selectedCompany == null) return;

            // store orders for original company
            string key = GetOrderKey(dateTimePicker1.Value, originalCompany);

            orders[key] = currentOrders;
            currentOrders = null;

            // Clear the list view
            orderListView.Items.Clear();

            // retrieve orders for new company
            key = GetOrderKey(dateTimePicker1.Value, newCompany);
            if (orders.ContainsKey(key) && orders[key] != null)
            {
               foreach(ProductOrderInfo orderInfo in orders[key])
               {
                   orderListView.Items.Add(this.GetListViewItem(orderInfo.ProductItem, orderInfo.Quantity));
               }

               currentOrders = orders[key];
            }
        }
Example #22
0
 public CompanyInfoController(ICompanyInfo companyInfo)
 {
     _companyInfo = companyInfo;
 }