public IActionResult GetTariff(string portalName) { if (string.IsNullOrEmpty(portalName)) { return(BadRequest(new { errors = "portalName is required." })); } var tenant = HostedSolution.GetTenant(portalName.Trim()); if (tenant == null) { return(BadRequest(new { errors = "Tenant not found." })); } var tariff = HostedSolution.GetTariff(tenant.TenantId, false); var quota = HostedSolution.GetTenantQuota(tenant.TenantId); return(Ok(new { errors = "", tenant = ToTenantWrapper(tenant), tariff = ToTariffWrapper(tariff, quota) })); }
public IActionResult ChangeStatus(TenantModel model, bool active) { if (model == null) { return(BadRequest(new { errors = "PortalName is required." })); } var tenant = HostedSolution.GetTenant((model.PortalName ?? "").Trim()); if (tenant == null) { return(BadRequest(new { errors = "Tenant not found." })); } tenant.SetStatus(active ? TenantStatus.Active : TenantStatus.Suspended); HostedSolution.SaveTenant(tenant); return(Ok(new { errors = "", tenant = ToTenantWrapper(tenant) })); }
public IActionResult Remove(string portalName) { if (string.IsNullOrEmpty(portalName)) { return(BadRequest(new { errors = "portalName is required." })); } var tenant = HostedSolution.GetTenant(portalName.Trim()); if (tenant == null) { return(BadRequest(new { errors = "Tenant not found." })); } HostedSolution.RemoveTenant(tenant); return(Ok(new { errors = "", tenant = ToTenantWrapper(tenant) })); }
private string GetTenantDomain(int tenantId) { var domain = Cache.Get <string>(tenantId.ToString()); if (string.IsNullOrEmpty(domain)) { var tenant = HostedSolution.GetTenant(tenantId); domain = tenant.GetTenantDomain(CoreSettings); Cache.Insert(tenantId.ToString(), domain, TimeSpan.FromMinutes(10)); } return(domain); }
public bool GetTenant(IModel model, out Tenant tenant) { if (model != null && model.TenantId.HasValue) { tenant = HostedSolution.GetTenant(model.TenantId.Value); return(true); } if (model != null && !string.IsNullOrEmpty((model.PortalName ?? "").Trim())) { tenant = HostedSolution.GetTenant((model.PortalName ?? "").Trim()); return(true); } tenant = null; return(false); }
public IActionResult SetTariff(TariffModel model) { if (model == null) { return(BadRequest(new { errors = "PortalName is required." })); } if (!ModelState.IsValid) { var errors = new JArray(); foreach (var k in ModelState.Keys) { errors.Add(ModelState[k].Errors.FirstOrDefault().ErrorMessage); } return(BadRequest(new { errors })); } var tenant = HostedSolution.GetTenant((model.PortalName ?? "").Trim()); if (tenant == null) { return(BadRequest(new { errors = "Tenant not found." })); } var quota = new TenantQuota(tenant.TenantId) { ActiveUsers = 10000, Features = model.Features ?? "", MaxFileSize = 1024 * 1024 * 1024, MaxTotalSize = 1024L * 1024 * 1024 * 1024 - 1, Name = "api", }; if (model.ActiveUsers != default) { quota.ActiveUsers = model.ActiveUsers; } if (model.MaxTotalSize != default) { quota.MaxTotalSize = model.MaxTotalSize; } if (model.MaxFileSize != default) { quota.MaxFileSize = model.MaxFileSize; } HostedSolution.SaveTenantQuota(quota); var tariff = new Tariff { QuotaId = quota.Id, DueDate = model.DueDate != default ? model.DueDate : DateTime.MaxValue, }; HostedSolution.SetTariff(tenant.TenantId, tariff); tariff = HostedSolution.GetTariff(tenant.TenantId, false); quota = HostedSolution.GetTenantQuota(tenant.TenantId); return(Ok(new { errors = "", tenant = ToTenantWrapper(tenant), tariff = ToTariffWrapper(tariff, quota) })); }
public IActionResult GetPortals([FromQuery] TenantModel model) { try { var tenants = new List<Tenant>(); var empty = true; if (!string.IsNullOrEmpty((model.Email ?? "").Trim())) { empty = false; tenants.AddRange(HostedSolution.FindTenants((model.Email ?? "").Trim())); } if (!string.IsNullOrEmpty((model.PortalName ?? "").Trim())) { empty = false; var tenant = HostedSolution.GetTenant((model.PortalName ?? "").Trim()); if (tenant != null) { tenants.Add(tenant); } } if (model.TenantId.HasValue) { empty = false; var tenant = HostedSolution.GetTenant(model.TenantId.Value); if (tenant != null) { tenants.Add(tenant); } } if (empty) { tenants.AddRange(HostedSolution.GetTenants(DateTime.MinValue).OrderBy(t => t.TenantId).ToList()); } var tenantsWrapper = tenants .Distinct() .Where(t => t.Status == TenantStatus.Active) .OrderBy(t => t.TenantId) .Select(CommonMethods.ToTenantWrapper); return Ok(new { tenants = tenantsWrapper }); } catch (Exception ex) { Log.Error(ex); return StatusCode(StatusCodes.Status500InternalServerError, new { error = "error", message = ex.Message, stacktrace = ex.StackTrace }); } }