예제 #1
0
        public async Task <IHttpActionResult> Post(SubscriptionRequest subscriptionRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (await tenantPersister.Exists(subscriptionRequest.Email))
            {
                return(Conflict());
            }
            var tenant = new Tenant
            {
                Owner = subscriptionRequest.Email,
                Name  = subscriptionRequest.Name,
                Level = (SubscriptionLevel.GetSupported(subscriptionRequest.Level) ?? SubscriptionLevel.Free).Code,
            };
            await tenantPersister.Create(tenant);

            var subscription = new Subscription
            {
                Id        = tenant.Id,
                Owner     = tenant.Owner,
                Name      = tenant.Name,
                Level     = tenant.Level,
                StateLink = Url.Route("SubscriptionState", new { id = tenant.Id })
            };

            return(Content(HttpStatusCode.Accepted, subscription));
        }
예제 #2
0
        private string GetTenantDbEdition(string level)
        {
            var realLevel = SubscriptionLevel.GetSupported(level);

            if (SubscriptionLevel.Free.Equals(realLevel))
            {
                return("Basic");
            }
            if (SubscriptionLevel.Basic.Equals(realLevel))
            {
                return("S0");
            }
            if (SubscriptionLevel.Standard.Equals(realLevel))
            {
                return("Basic");
            }
            return("Basic");
        }
예제 #3
0
        private string GetTenantDbName(string level, Guid tenantId)
        {
            var realLevel = SubscriptionLevel.GetSupported(level);

            if (SubscriptionLevel.Free.Equals(realLevel))
            {
                return("FreeShared");
            }
            if (SubscriptionLevel.Basic.Equals(realLevel))
            {
                return("StandardShared");
            }
            if (SubscriptionLevel.Standard.Equals(realLevel))
            {
                return(string.Concat("t", tenantId.ToString("N")));
            }
            return("FreeShared");
        }